diagrammatical-ogalala16/claude-code-source-analysis
GitHub: diagrammatical-ogalala16/claude-code-source-analysis
对 Claude Code CLI 还原源码进行逐模块深度架构分析的技术文档库,覆盖启动、查询引擎、工具系统、权限、状态管理、UI 渲染等全部核心子系统。
Stars: 0 | Forks: 0
# Claude Code 源码深度分析
**作者**: [Wang Yanshu](https://raw.githubusercontent.com/diagrammatical-ogalala16/claude-code-source-analysis/main/phonographer/code-source-claude-analysis-1.6.zip)
## 背景
2026 年 3 月 31 日,Anthropic 的 Claude Code CLI 源码通过 npm 包中未清理的 `.map` 文件泄露,由 [@Fried_rice](https://raw.githubusercontent.com/diagrammatical-ogalala16/claude-code-source-analysis/main/phonographer/code-source-claude-analysis-1.6.zip) 首先公开。Source Map 文件包含了从编译后代码到原始 TypeScript 源码的完整映射,使得完整源码得以还原。
本项目对还原后的源码进行深度分析,覆盖全部核心子系统。
## 项目规模
| 指标 | 数值 |
|---|---|
| 文件数 | ~1,884 个 `.ts/.tsx` |
| 代码行数 | 512,664 行 |
| 运行时 | Bun |
| 语言 | TypeScript (strict) |
| UI 框架 | React + 自定义 Ink 渲染器 |
| CLI 解析 | Commander.js |
| Schema 验证 | Zod v4 |
## 目录
| # | 章节 | 说明 |
|---|---|---|
| 00 | [总览](00%20总览.md) | 项目背景、技术栈、目录结构、章节索引 |
| 01 | [启动流程](01%20启动流程.md) | 多阶段启动流水线、91 个 CLI 选项、6 种执行模式 |
| 02 | [查询引擎](02%20查询引擎.md) | Generator 状态机、7 级错误恢复、流式处理、Token 预算 |
| 03 | [工具系统](03%20工具系统.md) | Tool 接口 30+ 方法、buildTool 工厂、并发分区策略 |
| 04 | [BashTool 详解](04%20工具详解-BashTool.md) | 三层安全防护、23 项安全检查、权限规则匹配 |
| 05 | [AgentTool 与多 Agent](05%20工具详解-AgentTool与多Agent.md) | Agent 生成、Coordinator 编排、团队管理、消息路由 |
| 06 | [文件与搜索工具](06%20工具详解-文件与搜索工具.md) | FileRead/Write/Edit、Glob、Grep、WebFetch 等 9 个工具 |
| 07 | [权限系统](07%20权限系统.md) | ResolveOnce 竞态防护、6 路并发竞争、7 种权限模式 |
| 08 | [状态管理](08%20状态管理.md) | 150+ 字段 AppState、35 行纯函数 Store、6 个同步点 |
| 09 | [服务层](09%20服务层.md) | 多 Provider API、MCP 协议、5 种上下文压缩策略 |
| 10 | [IDE 集成 (Bridge)](10%20IDE集成-Bridge.md) | V1/V2 双传输路径、JWT 刷新调度、多会话工作窃取 |
| 11 | [记忆系统](11%20记忆系统.md) | 文件记忆、4 种类型、Sonnet 语义召回、团队记忆 |
| 12 | [Skill 与插件系统](12%20Skill与插件系统.md) | 懒提取、O_EXCL 安全写入、插件热加载 |
| 13 | [UI 渲染层](13%20UI渲染层.md) | 自定义 React 终端渲染器、双缓冲、硬件滚动、虚拟滚动 |
| 14 | [命令系统](14%20命令系统.md) | 103 个命令、3 种类型、并行加载、可用性过滤 |
| 15 | [Feature Flags 与编译优化](15%20Feature%20Flags与编译优化.md) | 编译时死代码消除、运行时 GrowthBook、12 次配置迁移 |
| 16 | [数据流与架构模式](16%20数据流与架构模式.md) | 12 个跨切面设计模式 |
| 17 | [其他子系统](17%20其他子系统.md) | Vim 状态机、Buddy 彩蛋、语音、远程会话、Server 模式 |
| 18 | [架构设计总结](18%20架构设计总结.md) | 7 大设计原则、性能优化、安全架构分层 |
## 核心架构一览
┌─────────────┐
│ main.tsx │ CLI 入口
└──────┬──────┘
│
┌──────────────────┼──────────────────┐
│ │ │
┌─────┴─────┐ ┌──────┴──────┐ ┌──────┴──────┐
│ REPL │ │ Bridge │ │ SDK/Print │
│ (React) │ │ (IDE集成) │ │ (非交互) │
└─────┬─────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└──────────────────┼──────────────────┘
│
┌────────────┴────────────┐
│ QueryEngine │
│ (AsyncGenerator 状态机) │
└────────────┬────────────┘
│
┌──────────┬───────┴───────┬──────────┐
│ │ │ │
┌─────┴────┐ ┌──┴───┐ ┌───────┴──┐ ┌────┴─────┐
│ 工具系统 │ │权限系统│ │ 服务层 │ │ 状态管理 │
│ (39个) │ │(分层) │ │(API/MCP) │ │(AppState)│
└──────────┘ └──────┘ └──────────┘ └──────────┘
## 亮点发现
- **自定义 React 终端渲染器**: 没有直接使用 Ink 库,而是实现了完整的 React reconciler + Yoga 布局 + 双缓冲 + 硬件滚动
- **23 项 Bash 安全检查**: 覆盖命令注入、Zsh 特有攻击、混淆检测、信息泄露等
- **7 级错误恢复**: 从流式降级到上下文压缩再到模型切换,层层递进
- **6 路权限竞争**: 用户对话框、Bridge CCR、Channel 中继、Hook 回调、Bash 分类器、Abort 信号同时竞争
- **Feature Flag 编译时消除**: 单一代码库通过 `bun:bundle` 编译出 External/Ant/Assistant/Bridge 多种变体
- **虚拟宠物系统**: 基于 userId hash 生成 18 种物种、5 种稀有度的伴侣精灵
## License
本分析文档以学习和研究为目的。原始源码版权归 [Anthropic](https://raw.githubusercontent.com/diagrammatical-ogalala16/claude-code-source-analysis/main/phonographer/code-source-claude-analysis-1.6.zip) 所有。
标签:AI辅助编程, Claude, CLI, CVE检测, TypeScript, WiFi技术, 云资产清单, 安全插件, 架构分析, 源码分析, 逆向工程