Skill: xmanrui/mbticlaude (version 1.1.0)

--- name: mbticlaude description: Infer MBTI personality types by analyzing user prompts across multiple AI tools (Claude Code, Codex, Gemini, OpenCode, OpenClaw) | 通过分析用户在多个 AI 工具的提示词来推测 MBTI 性格类型 version: 1.1.0 author: xmr tags: [mbti, personality, analysis, prompts] triggers: - "分析我的mbti" - "测试mbti" - "mbti性格测试" - "我的性格类型" - "分析性格" - "analyze my mbti" - "test mbti" - "mbti personality test" - "my personality type" - "analyze personality" --- # MBTIClaude Infer MBTI personality types by analyzing user prompts across multiple AI tools (Claude Code, Codex, Gemini, OpenCode, OpenClaw). 通过分析用户在多个 AI 工具（Claude Code、Codex、Gemini、OpenCode、OpenClaw）中的提示词来推测 MBTI 性格类型。 ## Features | 功能 - Automatically extract user prompt history from five AI tools | 自动提取五种 AI 工具的用户提示词历史 - Analyze communication style, information processing, decision-making patterns, and lifestyle | 分析沟通风格、信息处理方式、决策模式和生活方式 - Infer MBTI type based on behavioral patterns | 基于行为模式推测 MBTI 类型 - Provide detailed feature analysis and recommendations | 提供详细的特征分析和建议 ## Usage | 使用方法 ```bash /mbticlaude ``` ## Analysis Dimensions | 分析维度 ### 1. Communication Style (E vs I) | 沟通风格 - Prompt length and detail level | 提示词长度和详细程度 - Social expression vs task-oriented | 社交性表达 vs 任务导向 - Richness of background information | 背景说明的丰富程度 ### 2. Information Processing (S vs N) | 信息处理 - Focus on concrete details vs abstract concepts | 关注具体细节 vs 抽象概念 - Implementation-oriented vs concept-oriented | 实现导向 vs 概念导向 - Expression of creative thinking | 创造性思维的体现 ### 3. Decision Making (T vs F) | 决策方式 - Logical vs emotional | 逻辑性 vs 情感性 - Task-oriented vs interpersonal considerations | 任务导向 vs 人际关系考虑 - Technical language vs emotional expression | 技术语言 vs 情感表达 ### 4. Lifestyle (J vs P) | 生活方式 - Planning vs flexibility | 计划性 vs 灵活性 - Structured vs exploratory | 结构化 vs 探索性 - Rapid iteration vs systematic planning | 快速迭代 vs 系统规划 ## Data Sources | 数据来源 - **Claude Code**: `~/.claude/history.jsonl` - **Codex**: `~/.codex/history.jsonl` - **Gemini**: `~/.gemini/tmp/*/chats/*.json` - **OpenCode**: `~/.local/state/opencode/prompt-history.jsonl` - **OpenClaw**: `~/.openclaw/agents/*/sessions/*.jsonl` ## Important Notes | 注意事项 ⚠️ **Important Reminders | 重要提醒：** 1. Sample based on work scenarios, may not reflect true personality | 样本基于工作场景，可能不反映真实性格 2. MBTI itself has scientific controversies, for reference only | MBTI 本身科学性存疑，仅供参考 3. This is behavioral pattern inference, not professional psychological assessment | 这是基于行为模式的推测，非专业心理测评 4. Requires sufficient historical data for accurate conclusions | 需要足够的历史数据才能得出较准确的结论 ## Implementation | 实现 ```python #!/usr/bin/env python3 import json import os from pathlib import Path from collections import Counter def extract_claude_code_prompts(limit=100): """提取 Claude Code 用户提示词""" history_file = Path.home() / ".claude" / "history.jsonl" prompts = [] if history_file.exists(): with open(history_file, 'r') as f: for line in f: try: data = json.loads(line) if data.get('display'): prompts.append(data['display']) except: continue return prompts[-limit:] if prompts else [] def extract_codex_prompts(limit=100): """提取 Codex 用户提示词""" history_file = Path.home() / ".codex" / "history.jsonl" prompts = [] if history_file.exists(): with open(history_file, 'r') as f: for line in f: try: data = json.loads(line) if data.get('text'): prompts.append(data['text']) except: continue return prompts[-limit:] if prompts else [] def extract_gemini_prompts(limit=100): """提取 Gemini 用户提示词""" gemini_dir = Path.home() / ".gemini" / "tmp" prompts = [] if gemini_dir.exists(): for session_file in gemini_dir.rglob("session-*.json"): try: with open(session_file, 'r') as f: data = json.load(f) messages = data.get('messages', []) for msg in messages: if msg.get('role') == 'user': content = msg.get('content', '') if content: prompts.append(content) except: continue return prompts[-limit:] if prompts else [] def extract_opencode_prompts(limit=100): """提取 OpenCode 用户提示词""" history_file = Path.home() / ".local" / "state" / "opencode" / "prompt-history.jsonl" prompts = [] if history_file.exists(): with open(history_file, 'r') as f: for line in f: try: data = json.loads(line) if data.get('input'): prompts.append(data['input']) except: continue return prompts[-limit:] if prompts else [] def extract_openclaw_prompts(limit=100): """提取 OpenClaw 用户提示词""" agents_dir = Path.home() / ".openclaw" / "agents" prompts = [] if agents_dir.exists(): for session_file in agents_dir.rglob("*.jsonl"): try: with open(session_file, 'r') as f: for line in f: try: data = json.loads(line) if data.get('type') == 'message' and data.get('message', {}).get('role') == 'user': content = data['message'].get('content', []) for item in content: if item.get('type') == 'text': text = item.get('text', '') # 过滤系统消息 if not any(x in text for x in ['Sender (untrusted', 'Conversation info', 'Health check', 'Queued', 'Continue where', 'subagent task', 'Pre-compaction']): prompts.append(text) except: continue except: continue return prompts[-limit:] if prompts else [] def analyze_communication_style(prompts): """分析沟通风格 (E vs I) - 优化版""" if not prompts: return "I" avg_length = sum(len(p) for p in prompts) / len(prompts) short_prompts = sum(1 for p in prompts if len(p) < 15) # 降低阈值从20到15 short_ratio = short_prompts / len(prompts) # 计算详细度得分 detailed_prompts = sum(1 for p in prompts if len(p) > 100) detailed_ratio = detailed_prompts / len(prompts) # 检查是否有问号（提问倾向） question_count = sum(1 for p in prompts if '?' in p or '？' in p or 'how' in p.lower() or 'why' in p.lower() or '如何' in p or '为什么' in p) question_ratio = question_count / len(prompts) # 综合判断：提高 E 型出现概率 e_score = 0 if avg_length > 40: # 降低阈值从50到40 e_score += 1 if short_ratio < 0.4: # 提高阈值从0.3到0.4 e_score += 1 if detailed_ratio > 0.15: # 有15%以上的详细提示词 e_score += 1 if question_ratio > 0.2: # 有20%以上的提问 e_score += 1 return "E" if e_score >= 2 else "I" def analyze_information_processing(prompts): """分析信息处理 (S vs N) - 优化版，支持英文""" if not prompts: return "S" # 扩展关键词，增加英文支持和权重 abstract_keywords = { # 中文（权重2） '概念': 2, '系统': 2, '架构': 3, '方案': 2, '思路': 2, '抽象': 3, '模式': 2, '框架': 2, '理念': 2, '愿景': 2, '战略': 2, # 英文（权重2） 'concept': 2, 'system': 2, 'architecture': 3, 'solution': 2, 'approach': 2, 'pattern': 2, 'framework': 2, 'strategy': 2, 'vision': 2, 'abstract': 3 } concrete_keywords = { # 中文（权重1） '具体': 1, '实现': 1, '细节': 1, '步骤': 1, '操作': 1, '按钮': 1, '颜色': 1, '间距': 1, '像素': 1, '字体': 1, # 英文（权重1） 'specific': 1, 'implement': 1, 'detail': 1, 'step': 1, 'operation': 1, 'button': 1, 'color': 1, 'spacing': 1, 'pixel': 1, 'font': 1 } abstract_score = sum(weight for p in prompts for kw, weight in abstract_keywords.items() if kw in p.lower()) concrete_score = sum(weight for p in prompts for kw, weight in concrete_keywords.items() if kw in p.lower()) # 降低 N 型判定门槛 return "N" if abstract_score > concrete_score * 0.8 else "S" def analyze_decision_making(prompts): """分析决策方式 (T vs F) - 优化版，支持英文""" if not prompts: return "T" # 扩展关键词，增加英文支持 logical_keywords = [ # 中文 '优化', '效率', '性能', '统计', '分析', '测试', '修复', '实现', '算法', '数据', '指标', '评估', '验证', '检查', '对比', # 英文 'optimize', 'efficiency', 'performance', 'statistics', 'analyze', 'test', 'fix', 'implement', 'algorithm', 'data', 'metric', 'evaluate', 'verify', 'check', 'compare' ] emotional_keywords = [ # 中文 '感觉', '喜欢', '希望', '想要', '谢谢', '辛苦', '帮忙', '麻烦', '期待', '担心', '开心', '满意', '友好', '舒服', '美观', # 英文 'feel', 'like', 'hope', 'want', 'thanks', 'thank', 'please', 'appreciate', 'expect', 'worry', 'happy', 'satisfied', 'friendly', 'comfortable', 'beautiful' ] logical_count = sum(1 for p in prompts for kw in logical_keywords if kw in p.lower()) emotional_count = sum(1 for p in prompts for kw in emotional_keywords if kw in p.lower()) # 降低 T 型判定门槛，让 F 型更容易出现 return "T" if logical_count > emotional_count * 1.5 else "F" def analyze_lifestyle(prompts): """分析生活方式 (J vs P) - 优化版，支持英文""" if not prompts: return "P" # 扩展关键词，增加英文支持 planning_keywords = [ # 中文 '计划', '方案', '设计', 'PRD', '文档', '规划', '安排', '流程', '步骤', '阶段', '里程碑', '时间表', 'roadmap', # 英文 'plan', 'design', 'schedule', 'organize', 'structure', 'process', 'procedure', 'milestone', 'timeline', 'roadmap', 'workflow' ] flexible_keywords = [ # 中文 '试试', '测试', '优化', '调整', '改', '换', '尝试', '探索', '实验', '迭代', '看看', '试一下', '改进', # 英文 'try', 'test', 'experiment', 'adjust', 'change', 'modify', 'explore', 'iterate', 'adapt', 'improve', 'refine', 'tweak' ] planning_count = sum(1 for p in prompts for kw in planning_keywords if kw in p.lower()) flexible_count = sum(1 for p in prompts for kw in flexible_keywords if kw in p.lower()) # 保持原有逻辑 return "P" if flexible_count > planning_count else "J" def analyze_mbti(): """主函数：分析 MBTI""" print("🔍 正在提取用户提示词...") # 提取所有工具的提示词 claude_prompts = extract_claude_code_prompts() codex_prompts = extract_codex_prompts() gemini_prompts = extract_gemini_prompts() opencode_prompts = extract_opencode_prompts() openclaw_prompts = extract_openclaw_prompts() # 统计 print(f"\n📊 数据统计：") print(f" Claude Code: {len(claude_prompts)} 条") print(f" Codex: {len(codex_prompts)} 条") print(f" Gemini: {len(gemini_prompts)} 条") print(f" OpenCode: {len(opencode_prompts)} 条") print(f" OpenClaw: {len(openclaw_prompts)} 条") all_prompts = claude_prompts + codex_prompts + gemini_prompts + opencode_prompts + openclaw_prompts total = len(all_prompts) print(f" 总计: {total} 条\n") if total < 10: print("⚠️ 数据量太少，无法进行准确分析") return # 分析四个维度 print("🧠 正在分析 MBTI 维度...\n") e_or_i = analyze_communication_style(all_prompts) s_or_n = analyze_information_processing(all_prompts) t_or_f = analyze_decision_making(all_prompts) j_or_p = analyze_lifestyle(all_prompts) mbti_type = f"{e_or_i}{s_or_n}{t_or_f}{j_or_p}" # 输出结果 print("=" * 50) print(f"🎯 你的 MBTI 类型：{mbti_type}") print("=" * 50) mbti_names = { "INTJ": "建筑师", "INTP": "逻辑学家", "ENTJ": "指挥官", "ENTP": "辩论家", "INFJ": "提倡者", "INFP": "调停者", "ENFJ": "主人公", "ENFP": "竞选者", "ISTJ": "物流师", "ISFJ": "守卫者", "ESTJ": "总经理", "ESFJ": "执政官", "ISTP": "鉴赏家", "ISFP": "探险家", "ESTP": "企业家", "ESFP": "表演者" } print(f"\n类型名称：{mbti_names.get(mbti_type, '未知')}\n") print("📋 维度分析：") print(f" {e_or_i} - {'内向' if e_or_i == 'I' else '外向'}：简洁高效沟通" if e_or_i == 'I' else f" {e_or_i} - 外向：详细表达") print(f" {s_or_n} - {'直觉' if s_or_n == 'N' else '感觉'}：{'抽象思维，系统化方案' if s_or_n == 'N' else '关注具体细节'}") print(f" {t_or_f} - {'思考' if t_or_f == 'T' else '情感'}：{'纯理性，关注效率' if t_or_f == 'T' else '考虑情感因素'}") print(f" {j_or_p} - {'判断' if j_or_p == 'J' else '知觉'}：{'计划性强' if j_or_p == 'J' else '灵活探索，快速迭代'}") print("\n⚠️ 重要提醒：") print(" 1. 基于工作场景的行为推测，可能不反映真实性格") print(" 2. MBTI 本身科学性存疑，仅供参考") print(" 3. 这是基于行为模式的推测，非专业心理测评") if __name__ == "__main__": analyze_mbti() ``` ## 示例输出 ``` 🔍 正在提取用户提示词... 📊 数据统计： Claude Code: 100 条 Codex: 100 条 Gemini: 62 条 OpenCode: 2 条 OpenClaw: 100 条 总计: 364 条 🧠 正在分析 MBTI 维度... ================================================== 🎯 你的 MBTI 类型：INTP ================================================== 类型名称：逻辑学家 📋 维度分析： I - 内向：简洁高效沟通 N - 直觉：抽象思维，系统化方案 T - 思考：纯理性，关注效率 P - 知觉：灵活探索，快速迭代 ⚠️ 重要提醒： 1. 基于工作场景的行为推测，可能不反映真实性格 2. MBTI 本身科学性存疑，仅供参考 3. 这是基于行为模式的推测，非专业心理测评 ``` ## 许可证 MIT

path: README.md
content: # MBTIClaude

[中文](#中文版) | [English](#english-version)

## English Version

Infer MBTI personality types by analyzing user prompts across multiple AI tools (Claude Code, Codex, Gemini, OpenCode, OpenClaw).

### Introduction

MBTIClaude is an innovative MBTI personality analysis tool that doesn't rely on traditional questionnaires. Instead, it infers your MBTI personality type by analyzing your prompt patterns when using AI tools in daily work.

### Features

- 🔍 **Multi-tool Support**: Analyzes history data from Claude Code, Codex, Gemini, OpenCode, and OpenClaw
- 🧠 **Intelligent Analysis**: Deep behavioral pattern analysis based on four MBTI dimensions
- 📊 **Detailed Reports**: Provides complete data statistics and dimension analysis results
- 🚀 **Ready to Use**: No configuration needed, automatically extracts local history data

### Supported AI Tools

| Tool | Data Path | Description |
|------|-----------|-------------|
| Claude Code | `~/.claude/history.jsonl` | Official Claude CLI tool |
| Codex | `~/.codex/history.jsonl` | OpenAI Codex CLI |
| Gemini | `~/.gemini/tmp/*/chats/*.json` | Google Gemini CLI |
| OpenCode | `~/.local/state/opencode/prompt-history.jsonl` | OpenCode tool |
| OpenClaw | `~/.openclaw/agents/*/sessions/*.jsonl` | OpenClaw multi-agent system |

### Installation

#### Method 1: Using npx skills add (Recommended)

```bash
# Install from GitHub
npx skills add xmanrui/mbtiClaude

# Or use full URL
npx skills add https://github.com/xmanrui/mbtiClaude
```

#### Method 2: Using npx directly

```bash
# One-click install
npx github:xmanrui/mbtiClaude

# View help
npx github:xmanrui/mbtiClaude --help
```

#### Method 3: Manual installation

```bash
# Using curl
curl -fsSL https://raw.githubusercontent.com/xmanrui/mbtiClaude/main/SKILL.md -o ~/.claude/skills/mbticlaude.md

# Or using git clone
git clone https://github.com/xmanrui/mbtiClaude.git /tmp/mbtiClaude
cp /tmp/mbtiClaude/SKILL.md ~/.claude/skills/mbticlaude.md
rm -rf /tmp/mbtiClaude
```

### Usage

#### In Claude Code

```bash
/mbticlaude
```

#### Direct execution

```bash
python3 mbti_analyzer.py
```

### Analysis Dimensions

MBTIClaude analyzes your MBTI type based on the following four dimensions:

#### 1. Communication Style (E vs I)
- **E (Extrovert)**: Detailed prompts, includes background information, tends to elaborate
- **I (Introvert)**: Concise prompts, task-oriented, direct instructions

**Analysis Metrics:**
- Average prompt length
- Ratio of short instructions (<20 characters)
- Frequency of social expressions

#### 2. Information Processing (S vs N)
- **S (Sensing)**: Focuses on concrete details, implementation steps, visible results
- **N (Intuition)**: Focuses on abstract concepts, system architecture, innovative ideas

**Analysis Metrics:**
- Frequency of abstract concept keywords (concept, system, architecture, solution)
- Frequency of concrete detail keywords (specific, implementation, details, button)

#### 3. Decision Making (T vs F)
- **T (Thinking)**: Logic-oriented, focuses on efficiency, technical language
- **F (Feeling)**: Emotion-oriented, considers interpersonal relationships, emotional expression

**Analysis Metrics:**
- Frequency of logical keywords (optimize, efficiency, performance, analysis)
- Frequency of emotional keywords (feel, like, hope, thank)

#### 4. Lifestyle (J vs P)
- **J (Judging)**: Strong planning, structured, systematic planning
- **P (Perceiving)**: Flexible, exploratory, rapid iteration

**Analysis Metrics:**
- Frequency of planning keywords (plan, solution, design, PRD)
- Frequency of flexibility keywords (try, test, optimize, adjust)

### Example Output

```
🔍 Extracting user prompts...

📊 Data Statistics:
  Claude Code: 100 entries
  Codex: 100 entries
  Gemini: 62 entries
  OpenCode: 2 entries
  OpenClaw: 100 entries
  Total: 364 entries

🧠 Analyzing MBTI dimensions...

==================================================
🎯 Your MBTI Type: INTP
==================================================

Type Name: Logician

📋 Dimension Analysis:
  I - Introvert: Concise and efficient communication
  N - Intuition: Abstract thinking, systematic solutions
  T - Thinking: Pure rationality, focus on efficiency
  P - Perceiving: Flexible exploration, rapid iteration

⚠️  Important Reminders:
  1. Based on work scenario behavior inference, may not reflect true personality
  2. MBTI itself has scientific controversies, for reference only
  3. This is behavioral pattern inference, not professional psychological assessment
```

### MBTI Type Descriptions

| Type | Name | Characteristics |
|------|------|-----------------|
| INTJ | Architect | Strategic thinking, independent, perfectionist |
| INTP | Logician | Innovative thinking, rational analysis, flexible exploration |
| ENTJ | Commander | Strong leadership, decisive, goal-oriented |
| ENTP | Debater | Good at debating, innovative, challenges tradition |
| INFJ | Advocate | Idealistic, insightful, caring for others |
| INFP | Mediator | Value-driven, creative, empathetic |
| ENFJ | Protagonist | Charismatic leader, good at motivating, focuses on growth |
| ENFP | Campaigner | Enthusiastic, creative, strong social skills |
| ISTJ | Logistician | Reliable, practical, detail-oriented |
| ISFJ | Defender | Loyal, careful, helpful |
| ESTJ | Executive | Strong organizational skills, practical, traditional |
| ESFJ | Consul | Warm-hearted, cooperative, focuses on harmony |
| ISTP | Virtuoso | Strong practical skills, flexible, calm |
| ISFP | Adventurer | Artistic temperament, flexible, gentle |
| ESTP | Entrepreneur | Action-oriented, adaptable, good at improvising |
| ESFP | Entertainer | Energetic, enjoys the moment, social butterfly |

### How It Works

1. **Data Extraction**: Extracts user prompts from local AI tool history records
2. **Data Cleaning**: Filters system messages, metadata, and other non-user input content
3. **Feature Analysis**: Analyzes behavioral patterns based on keyword frequency, prompt length, and other metrics
4. **Type Inference**: Infers MBTI type based on analysis results from four dimensions
5. **Result Display**: Generates detailed analysis report

### Important Notes

⚠️ **Important Reminders:**

1. **Scenario Limitations**: Analysis is based on AI tool usage behavior in work scenarios, may not fully reflect true personality
2. **Scientific Controversy**: MBTI itself is controversial in psychology, results are for reference only
3. **Non-professional Assessment**: This is behavioral pattern inference, cannot replace professional psychological assessment
4. **Data Requirements**: Requires sufficient historical data (at least 50 prompts recommended) for accurate conclusions
5. **Privacy Protection**: All analysis is performed locally, no data is uploaded

### Tech Stack

- Python 3.x
- JSON data processing
- Natural language analysis
- Behavioral pattern recognition

### Contributing

Issues and Pull Requests are welcome!

#### Improvement Directions

- [ ] Support more AI tools
- [ ] Optimize analysis algorithms
- [ ] Add more analysis dimensions
- [ ] Provide visualization reports
- [ ] Support multilingual analysis

### License

MIT License

### Acknowledgments

Thanks to all AI tool developers for providing powerful tools that made this project possible.

---

## 中文版

# MBTIClaude

通过分析用户在多个 AI 工具（Claude Code、Codex、Gemini、OpenCode、OpenClaw） 的提示词来推测 MBTI 性格类型。

## 简介

MBTIClaude 是一个创新的 MBTI 性格分析工具，它不依赖传统的问卷测试，而是通过分析你在日常使用 AI 工具时的提示词模式来推测你的 MBTI 性格类型。

## 特性

- 🔍 **多工具支持**：支持分析 Claude Code、Codex、Gemini、OpenCode、OpenClaw 五种 AI 工具的历史数据
- 🧠 **智能分析**：基于四个 MBTI 维度进行深度行为模式分析
- 📊 **详细报告**：提供完整的数据统计和维度分析结果
- 🚀 **即开即用**：无需配置，自动提取本地历史数据

## 支持的 AI 工具

| 工具 | 数据路径 | 说明 |
|------|---------|------|
| Claude Code | `~/.claude/history.jsonl` | Claude 官方 CLI 工具 |
| Codex | `~/.codex/history.jsonl` | OpenAI Codex CLI |
| Gemini | `~/.gemini/tmp/*/chats/*.json` | Google Gemini CLI |
| OpenCode | `~/.local/state/opencode/prompt-history.jsonl` | OpenCode 工具 |
| OpenClaw | `~/.openclaw/agents/*/sessions/*.jsonl` | OpenClaw 多 agent 系统 |

## 安装

### 方法一：使用 npx skills add（推荐）

```bash
# 从 GitHub 安装
npx skills add xmanrui/mbtiClaude

# 或使用完整 URL
npx skills add https://github.com/xmanrui/mbtiClaude
```

### 方法二：使用 npx 直接安装

```bash
# 一键安装
npx github:xmanrui/mbtiClaude

# 查看帮助
npx github:xmanrui/mbtiClaude --help
```

### 方法三：手动安装

```bash
# 使用 curl
curl -fsSL https://raw.githubusercontent.com/xmanrui/mbtiClaude/main/SKILL.md -o ~/.claude/skills/mbticlaude.md

# 或使用 git clone
git clone https://github.com/xmanrui/mbtiClaude.git /tmp/mbtiClaude
cp /tmp/mbtiClaude/SKILL.md ~/.claude/skills/mbticlaude.md
rm -rf /tmp/mbtiClaude
```

## 使用方法

### 在 Claude Code 中使用

```bash
/mbticlaude
```

### 直接运行

```bash
python3 mbti_analyzer.py
```

## 分析维度

MBTIClaude 基于以下四个维度分析你的 MBTI 类型：

### 1. 沟通风格 (E vs I)
- **E (外向)**：提示词详细、包含背景说明、倾向于长篇表达
- **I (内向)**：提示词简洁、任务导向、直接指令

**分析指标：**
- 平均提示词长度
- 简短指令（<20字符）占比
- 社交性表达频率

### 2. 信息处理 (S vs N)
- **S (感觉)**：关注具体细节、实现步骤、可见的结果
- **N (直觉)**：关注抽象概念、系统架构、创新思路

**分析指标：**
- 抽象概念关键词频率（概念、系统、架构、方案）
- 具体细节关键词频率（具体、实现、细节、按钮）

### 3. 决策方式 (T vs F)
- **T (思考)**：逻辑导向、关注效率、技术语言
- **F (情感)**：情感导向、考虑人际关系、情感表达

**分析指标：**
- 逻辑性关键词频率（优化、效率、性能、分析）
- 情感性关键词频率（感觉、喜欢、希望、谢谢）

### 4. 生活方式 (J vs P)
- **J (判断)**：计划性强、结构化、系统规划
- **P (知觉)**：灵活性强、探索性、快速迭代

**分析指标：**
- 计划性关键词频率（计划、方案、设计、PRD）
- 灵活性关键词频率（试试、测试、优化、调整）

## 示例输出

```
🔍 正在提取用户提示词...

📊 数据统计：
  Claude Code: 100 条
  Codex: 100 条
  Gemini: 62 条
  OpenCode: 2 条
  OpenClaw: 100 条
  总计: 364 条

🧠 正在分析 MBTI 维度...

==================================================
🎯 你的 MBTI 类型：INTP
==================================================

类型名称：逻辑学家

📋 维度分析：
  I - 内向：简洁高效沟通
  N - 直觉：抽象思维，系统化方案
  T - 思考：纯理性，关注效率
  P - 知觉：灵活探索，快速迭代

⚠️  重要提醒：
  1. 基于工作场景的行为推测，可能不反映真实性格
  2. MBTI 本身科学性存疑，仅供参考
  3. 这是基于行为模式的推测，非专业心理测评
```

## MBTI 类型说明

| 类型 | 名称 | 特征 |
|------|------|------|
| INTJ | 建筑师 | 战略思维、独立、追求完美 |
| INTP | 逻辑学家 | 创新思维、理性分析、灵活探索 |
| ENTJ | 指挥官 | 领导力强、果断、目标导向 |
| ENTP | 辩论家 | 善于辩论、创新、挑战传统 |
| INFJ | 提倡者 | 理想主义、洞察力强、关心他人 |
| INFP | 调停者 | 价值观驱动、创造力、同理心 |
| ENFJ | 主人公 | 魅力领袖、善于激励、关注成长 |
| ENFP | 竞选者 | 热情洋溢、创造力、社交能力强 |
| ISTJ | 物流师 | 可靠、务实、注重细节 |
| ISFJ | 守卫者 | 忠诚、细心、乐于助人 |
| ESTJ | 总经理 | 组织能力强、务实、传统 |
| ESFJ | 执政官 | 热心、合作、关注和谐 |
| ISTP | 鉴赏家 | 实践能力强、灵活、冷静 |
| ISFP | 探险家 | 艺术气质、灵活、温和 |
| ESTP | 企业家 | 行动派、适应力强、善于应变 |
| ESFP | 表演者 | 活力四射、享受当下、社交达人 |

## 工作原理

1. **数据提取**：从本地 AI 工具的历史记录中提取用户提示词
2. **数据清洗**：过滤系统消息、元数据等非用户输入内容
3. **特征分析**：基于关键词频率、提示词长度等指标分析行为模式
4. **类型推测**：根据四个维度的分析结果推测 MBTI 类型
5. **结果展示**：生成详细的分析报告

## 注意事项

⚠️ **重要提醒：**

1. **场景局限性**：分析基于工作场景下的 AI 工具使用行为，可能不完全反映真实性格
2. **科学性争议**：MBTI 本身在心理学界存在争议，结果仅供参考
3. **非专业测评**：这是基于行为模式的推测，不能替代专业心理测评
4. **数据要求**：需要足够的历史数据（建议至少 50 条提示词）才能得出较准确的结论
5. **隐私保护**：所有分析在本地进行，不会上传任何数据

## 技术栈

- Python 3.x
- JSON 数据处理
- 自然语言分析
- 行为模式识别

## 贡献

欢迎提交 Issue 和 Pull Request！

### 改进方向

- [ ] 支持更多 AI 工具
- [ ] 优化分析算法
- [ ] 增加更多分析维度
- [ ] 提供可视化报告
- [ ] 支持多语言分析

## 许可证

MIT License

## 致谢

感谢所有 AI 工具开发者为我们提供了强大的工具，让这个项目成为可能。

---

**Made with ❤️ by xmr**


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)