基于 2026-03-31 泄露的 Anthropic Claude Code CLI 完整 TypeScript 源码的逐模块架构解读
作者: Wang Yanshu
2026 年 3 月 31 日,Anthropic 的 Claude Code CLI 源码通过 npm 包中未清理的 .map 文件泄露,由 @Fried_rice 首先公开。Source Map 文件包含了从编译后代码到原始 TypeScript 源码的完整映射,使得完整源码得以还原。
本项目对还原后的源码进行深度分析,覆盖全部核心子系统。
| 指标 | 数值 |
|---|---|
| 文件数 | ~1,884 个 .ts/.tsx |
| 代码行数 | 512,664 行 |
| 运行时 | Bun |
| 语言 | TypeScript (strict) |
| UI 框架 | React + 自定义 Ink 渲染器 |
| CLI 解析 | Commander.js |
| Schema 验证 | Zod v4 |
| # | 章节 | 说明 |
|---|---|---|
| 00 | 总览 | 项目背景、技术栈、目录结构、章节索引 |
| 01 | 启动流程 | 多阶段启动流水线、91 个 CLI 选项、6 种执行模式 |
| 02 | 查询引擎 | Generator 状态机、7 级错误恢复、流式处理、Token 预算 |
| 03 | 工具系统 | Tool 接口 30+ 方法、buildTool 工厂、并发分区策略 |
| 04 | BashTool 详解 | 三层安全防护、23 项安全检查、权限规则匹配 |
| 05 | AgentTool 与多 Agent | Agent 生成、Coordinator 编排、团队管理、消息路由 |
| 06 | 文件与搜索工具 | FileRead/Write/Edit、Glob、Grep、WebFetch 等 9 个工具 |
| 07 | 权限系统 | ResolveOnce 竞态防护、6 路并发竞争、7 种权限模式 |
| 08 | 状态管理 | 150+ 字段 AppState、35 行纯函数 Store、6 个同步点 |
| 09 | 服务层 | 多 Provider API、MCP 协议、5 种上下文压缩策略 |
| 10 | IDE 集成 (Bridge) | V1/V2 双传输路径、JWT 刷新调度、多会话工作窃取 |
| 11 | 记忆系统 | 文件记忆、4 种类型、Sonnet 语义召回、团队记忆 |
| 12 | Skill 与插件系统 | 懒提取、O_EXCL 安全写入、插件热加载 |
| 13 | UI 渲染层 | 自定义 React 终端渲染器、双缓冲、硬件滚动、虚拟滚动 |
| 14 | 命令系统 | 103 个命令、3 种类型、并行加载、可用性过滤 |
| 15 | Feature Flags 与编译优化 | 编译时死代码消除、运行时 GrowthBook、12 次配置迁移 |
| 16 | 数据流与架构模式 | 12 个跨切面设计模式 |
| 17 | 其他子系统 | Vim 状态机、Buddy 彩蛋、语音、远程会话、Server 模式 |
| 18 | 架构设计总结 | 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 种稀有度的伴侣精灵
本分析文档以学习和研究为目的。原始源码版权归 Anthropic 所有。