360 篇中文文档 + 14 张系统流程图,覆盖 Claude Code 全部核心子系统。 这是一套为 TypeScript 初学者打造的工程范式学习资料,基于
@anthropic-ai/claude-code@2.1.88还原源码逐层拆解而成。
这是一套系统化的 Claude Code 源码拆解文档,面向 TypeScript 初学者。
我们不是简单地翻译代码,而是逐层拆解 Claude Code 的工程范式,帮你建立:
- 看结构的能力:先建立系统地图,再深入细节
- 看边界的能力:理解每个模块为什么存在、和谁协作
- 看范式的能力:理解设计思想,而不只是语法技巧
Claude Code 不是一个普通的 TypeScript 项目,而是一个大型工程实践的教科书级案例:
| 范式 | 说明 |
|---|---|
| 协议先行 | 几乎所有子系统都先定义协议(类型、schema、接口),再实现功能 |
| 分层清晰 | 入口层、交互层、调度层、能力层、基础层,层次分明 |
| 小抽象解决大问题 | lazySchema、buildTool、createStore 等小抽象大幅降低复杂度 |
| 安全内建 | 不是事后补丁,而是从设计开始就考虑安全 |
| 错误处理结构化 | 不是简单的 try/catch,而是结构化的错误类型和处理流程 |
| 状态管理响应式 | 外部 store + selector 订阅 + 读写分离 |
| 工具系统统一 | 所有工具都遵循 buildTool 协议 |
| 命令系统可插拔 | 注册和实现分离,支持动态扩展 |
| 覆盖区域 | 文档编号 | 数量 | 说明 |
|---|---|---|---|
| 全局规划 | 00-07 | 6 | 总计划、总览、路线、方法、外部依赖 |
| 启动与主链 | 10-11, 88-89, 102-103 | 7 | 入口主线、核心骨架、QueryEngine、query 循环、init/setup |
| 四层模型 | 20 | 1 | commands/tools/services/utils 总地图 |
| 交互/UI 地图 | 40 | 1 | 交互子系统地图 |
| 补充文档 | 012-019, 021-039, 041-079 | 66 | 核心子系统、辅助层、交互层、权限层、bridge 层、memdir 层补充 |
| 工具系统 | 80-85, 90-91, 136, 174-195, 309-325 | 50 | BashTool、AgentTool、FileRead/Write/Edit、Grep/Glob 等 |
| 命令系统 | 83, 92, 187, 189-190, 236, 300, 399 | 8 | plan、memory/config、mcp/auth、resume/review 等 |
| 任务系统 | 99, 342-346 | 6 | Task.ts、tasks.ts、LocalShellTask、LocalAgentTask、RemoteAgentTask |
| 权限系统 | 101, 112-113, 146, 163, 172, 206, 224, 254-257 | 11 | useCanUseTool、PermissionContext、interactive/coordinator handler 等 |
| SDK/bridge | 104-110, 114-116, 121, 124-126, 147-150, 274, 387 | 20 | agentSdkTypes、bridgeMessaging、directConnect、replBridge 等 |
| memdir | 107, 111, 117-118, 122-123, 127-128, 276, 389 | 12 | memdir.ts、memoryScan、paths、types、teamPaths 等 |
| MCP/LSP | 134-135, 137, 305-306, 326-327, 333, 336-338 | 13 | MCP client、LSP manager、MCP auth、MCP sampling/resources 等 |
| 协议/类型/常量 | 129-133, 156-173, 281-282, 394-395 | 26 | server types、bridge types、schemas/types/constants、prompts 等 |
| REPL/ink | 151-152, 183-186, 221, 285, 352-365, 398 | 22 | REPL.tsx、ink.tsx、ink reconciler、ink DOM/renderer 等 |
| vim 系统 | 139-141, 202-204, 240 | 7 | types、transitions、useVimInput、operators、textObjects/motions 等 |
| hooks | 201, 243-244, 260-264, 368-371, 373-374 | 16 | useVoiceIntegration、useKeyHandler、useAssistantHistory 等 |
| context | 196-199, 241-242 | 6 | voice.tsx、stats.tsx、overlayContext.tsx、mailbox.tsx 等 |
| utils | 205-259, 372 | 56 | bash/ast、permissions、git/cwd、model、settings、messages 等 |
| buddy | 207, 265, 375-378 | 6 | companion/prompt、types/sprites、CompanionSprite 等 |
| 其他子系统 | 266-397 | 50+ | voice、skills、plugins、coordinator、tasks、server 等 |
| 模式小结 | 133, 137, 145, 150, 169, 173, 179, 195 | 8 | 协议层、协议管理器、消息折叠器、bridge 边缘等 |
| 最终总结 | 272, 287, 400 | 3 | 10 个核心开发范式、阶段性总结、拆解任务完成报告 |
| 深度拆解 | 296-318 | 23 | QueryEngine、query.ts、Tool.ts、tools.ts、commands.ts 等 |
| 编号 | 流程图名称 | 覆盖内容 |
|---|---|---|
| 401 | 启动链路整体流程图 | cli.js → main.tsx → init.ts → setup.ts → REPL/print |
| 402 | 工具系统整体流程图 | 工具注册 → 工具编排 → 工具执行 → 权限检查 → 结果返回 |
| 403 | 命令系统整体流程图 | 命令解析 → 命令注册 → 命令执行 → 命令过滤 |
| 404 | 查询循环系统整体流程图 | QueryEngine.submitMessage → queryLoop → 消息预处理 → 模型调用 → 工具执行 |
| 405 | 权限系统整体流程图 | useCanUseTool → 规则匹配 → 分类器 → 交互处理 → 决策返回 |
| 406 | 渲染系统整体流程图 | React 组件 → reconciler → DOM → renderer → screen → frame → terminal |
| 407 | 桥接系统整体流程图 | initReplBridge → replBridge → bridgeMain → transport → API → messaging → WebSocket |
| 408 | 记忆系统整体流程图 | memdir → memoryScan → findRelevant → memoryTypes → paths → teamMemPaths |
| 409 | 状态管理系统整体流程图 | bootstrap/state → AppState → Store → 订阅 → UI 更新 |
| 410 | 任务系统整体流程图 | Task.ts → tasks.ts → LocalShell/Agent/Remote → 生命周期 |
| 411 | 插件与技能系统整体流程图 | plugins → skills → coordinator → voice → buddy → vim |
| 412 | 输入处理系统整体流程图 | PromptInput → 斜杠命令 → 输入预处理 → 语音/Vim 集成 → 自动补全 → 粘贴处理 |
| 413 | 消息折叠系统整体流程图 | collapseReadSearch → collapseHookSummaries → collapseBackgroundBash → collapseTeammateShutdowns |
| 414 | 全流程总览图 | 15 个子系统全景图 + 数据流 + 关键路径 + 系统边界 |
目标:理解 Claude Code 整体架构,建立系统地图。
- 00-源码拆解总计划 — 了解拆解目标和方法
- 01-仓库总览 — 认识仓库结构
- 02-学习路线图 — 规划学习路径
- 03-源码阅读方法 — 学会如何读大型源码
- 414-全流程总览图 — 全景图,建立系统认知
- 400-最终总结 — 10 个核心范式
目标:理解从启动到查询的完整链路。
- 401-启动链路流程图
- 10-入口与启动主线
- 11-核心骨架文件总览
- 102-init.ts
- 103-setup.ts
- 88-QueryEngine.submitMessage
- 89-query.ts
- 404-查询循环系统流程图
目标:理解工具协议和命令注册模式。
- 85-Tool.ts
- 91-tools.ts
- 92-commands.ts
- 84-toolOrchestration
- 90-toolExecution
- 82-GlobTool
- 174-BashTool
- 176-AgentTool
- 402-工具系统流程图
- 403-命令系统流程图
目标:理解安全控制和远程桥接。
目标:理解终端渲染和状态管理。
- 记忆系统:408-记忆系统流程图 + memdir 系列文档
- 任务系统:410-任务系统流程图 + tasks 系列文档
- 插件与技能:411-插件与技能系统流程图 + skills/plugins 系列文档
- Vim 系统:139-vim/types + 140-vim/transitions + 141-useVimInput
- 消息折叠:413-消息折叠系统流程图 + collapse 系列文档
- 输入处理:412-输入处理系统流程图 + PromptInput 系列文档
每篇文档都遵循统一的六段式结构:
- 文件路径 — 绝对路径,方便你对照源码
- 一句话定位 — 这个文件/目录在系统里的角色
- 核心实现拆解 — 类型、函数、状态、关键分支
- 依赖关系 — 它依赖谁,谁依赖它
- 值得学的开发范式 — 至少 1 个工程范式
- 初学者最该带走的一句话 — 提炼核心思想
你好,未来的编码新星!
如果你正在阅读这份文档,说明你已经迈出了理解大型 TypeScript 项目的第一步。这是一件值得骄傲的事情。
这个仓库有 53 个一级目录、数百个文件。没有人能一眼看懂全部。我们拆解的目的,就是帮你一层一层地剥开它。
不要一上来就逐行读代码。先读流程图和总览文档,建立系统地图。知道每个模块在什么位置、做什么事,再去深入细节会轻松很多。
每篇文档都会告诉你"这个文件做了什么",但更重要的是"为什么这么设计"。工程范式的价值不在于语法技巧,而在于设计思想。
- 看到
lazySchema的小抽象?想想你的项目里有没有可以抽出来的重复模式。 - 看到
buildTool的统一协议?想想你的工具函数能不能也统一接口。 - 看到外部 store + selector 订阅?想想你的状态管理能不能也这样分层。
- 文档总数:360 篇源码拆解文档 + 14 篇系统流程图 = 374 篇
- 覆盖子系统:15 个核心子系统
- 源码版本:
@anthropic-ai/claude-code@2.1.88 - 文档语言:简体中文
- 创建者:冉冉(初代 agent)
- 创建日期:2026-04-02
- 完成状态:全部核心子系统已拆解完成
这份文档体系是开放的。如果你想继续补充:
- 找到还没拆透的目录(参考各子系统文档中的"剩余"部分)
- 用
glob或read确认文件路径 - 按照六段式结构写文档
- 编号延续当前最大编号 + 1
- 更新本索引
记住:每篇文档的目标不只是解释"这个文件做了什么",而是让初学者带走"以后自己写代码时可以怎么想"。工程范式比实现细节更重要。
加油,未来的编码新星。你已经走在了正确的路上。
冉冉 2026-04-02