项目: Claude Code CLI (Anthropic)
来源: npm 包 source map 暴露的 TypeScript 源码快照
分析日期: 2026-04-01
规模: ~1,900 文件 | 512,000+ 行 TypeScript
运行时: Bun | UI: React + Ink (自定义 fork)
Claude Code 是 Anthropic 开发的终端 AI 编程助手,TypeScript 编写,Bun 运行时,React + Ink 终端 UI。围绕三大核心引擎构建:Tool System(43 个工具)、QueryEngine(LLM 交互 + Agentic Loop)、Command System(101 个斜杠命令)。通过 MCP 协议连接外部工具,Bridge 系统实现远程控制(12K 行,最多 32 并发会话),Coordinator 模式实现多 Agent 编排,拥有 AST 级 Bash 命令安全分析、三层记忆模型、Skill/Prompt 注入式扩展等独特工程实现。启动时 Trust Dialog 作为安全边界,Keybinding 系统支持 18 个上下文优先级和弦序列。
| 报告 | 说明 |
|---|
| 架构总览 | 分层架构、核心数据流、技术栈、10 个关键设计决策 |
| 领域模型 | Tool/Command/Query/Message/AppState 实体关系、类图、状态机 |
| 关键洞察 | 10 大发现、深度亮点、独特设计模式、架构演进方向 |
并行多维度分析 + 价值驱动递归深挖 + 增量补充分析:
- 第一轮:10 个一级维度 + 3 个深挖专题(并行执行)
- 第二轮:扫描未覆盖区域,补充 4 个维度(多Agent/插件/基础设施/记忆)
- 第三轮:继续扫描,补充 3 个维度(Bridge深度/输入系统/启动流程)
- 第四轮:补充 1 个维度(Voice+Buddy),至此 src/ 下所有模块全覆盖
- 总计:14 个维度 + 3 个深挖 + 3 整合报告 + 1 索引 = 21 份分析文档 + 1 份索引 = 22 份文件
┌──────────────────────────────────────────────────────────────┐
│ CLI 入口层 │
│ entrypoints/cli.tsx → main.tsx (Commander.js) │
├──────────────────────────────────────────────────────────────┤
│ 表现层 (React + Ink) │
│ components/ (144) │ hooks/ (104) │ screens/ │
│ keybindings/ (14) │ vim/ (5) │ buddy/ │ outputStyles/ │
├──────────────────────────────────────────────────────────────┤
│ 业务逻辑层 │
│ commands/ (101) │ tools/ (43) │ QueryEngine + query() │
│ coordinator/ │ tasks/ (7 types) │ skills/ (21) │
├──────────────────────────────────────────────────────────────┤
│ 状态数据层 │
│ state/ (AppState ~90字段) │ bootstrap/ (全局单例 ~70字段) │
│ memdir/ (三层记忆) │ history/ │ context/ │
├──────────────────────────────────────────────────────────────┤
│ 服务层 │
│ services/api (4 providers) │ services/mcp (3传输) │
│ services/oauth │ services/lsp │ services/analytics │
├──────────────────────────────────────────────────────────────┤
│ 基础设施层 │
│ utils/ (180K行) │ native-ts/ │ plugins/ │ schemas/ │
├──────────────────────────────────────────────────────────────┤
│ 远程控制层 │
│ bridge/ (12.6K行) │ server/ │ remote/ │ upstreamproxy/ │
└──────────────────────────────────────────────────────────────┘
| 指标 | 数值 |
|---|
| 总文件数 | ~1,900 |
| 总代码行数 | 512,000+ |
| React 组件 | 144 |
| React Hooks | 85+ (104 个 .ts/.tsx 文件含子目录) |
| Agent 工具 | 43 |
| 斜杠命令 | 101 |
| Task 类型 | 7 |
| Skill 来源 | 4 种 |
| Feature Flags | 20+ |
| 服务模块 | 20+ |
| AppState 字段 | ~90 |
| Bootstrap 字段 | ~70 |
| Utils 文件 | 329 + 31 子目录 (180K 行) |
| Bridge 代码 | 12,613 行 (31 文件) |
| Keybinding 上下文 | 18 |
| Vim CommandState 变体 | 11 |
| 记忆层级 | 3 层 |
| Bridge 并发会话 | 最多 32 |
| Bridge REST 端点 | 9 |
~/dev/documents/claude-code/
├── index.md ← 本文件 (文档入口)
├── final/ # 整合报告
│ ├── architecture.md
│ ├── domain-model.md
│ └── key-insights.md
└── tasks/ # 分析产物 (17 份 + 1 日志 = 18 文件)
├── analysis_log.md # 分析日志
├── architecture-core.md # [T01]
├── tool-system.md # [T02]
├── command-system.md # [T03]
├── services-integration.md # [T04]
├── query-engine.md # [T05]
├── ui-components.md # [T06]
├── multi-agent-tasks.md # [T07]
├── plugins-skills.md # [T08]
├── infrastructure-layer.md # [T09]
├── memory-system.md # [T10]
├── bridge-remote-deep.md # [T11] Bridge远程控制深度
├── input-systems.md # [T12] 输入系统
├── startup-trust-boundary.md # [T13] 启动流程与信任边界
├── voice-buddy.md # [T14] Voice语音+Buddy伴侣
├── deep-dive-bash-permissions.md # [D01]
├── deep-dive-agentic-loop.md # [D02]
└── deep-dive-mcp-client.md # [D03]