Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claude Code 源码拆解学习指南

360 篇中文文档 + 14 张系统流程图,覆盖 Claude Code 全部核心子系统。 这是一套为 TypeScript 初学者打造的工程范式学习资料,基于 @anthropic-ai/claude-code@2.1.88 还原源码逐层拆解而成。


这是什么

这是一套系统化的 Claude Code 源码拆解文档,面向 TypeScript 初学者。

我们不是简单地翻译代码,而是逐层拆解 Claude Code 的工程范式,帮你建立:

  • 看结构的能力:先建立系统地图,再深入细节
  • 看边界的能力:理解每个模块为什么存在、和谁协作
  • 看范式的能力:理解设计思想,而不只是语法技巧

为什么值得学

Claude Code 不是一个普通的 TypeScript 项目,而是一个大型工程实践的教科书级案例

范式 说明
协议先行 几乎所有子系统都先定义协议(类型、schema、接口),再实现功能
分层清晰 入口层、交互层、调度层、能力层、基础层,层次分明
小抽象解决大问题 lazySchemabuildToolcreateStore 等小抽象大幅降低复杂度
安全内建 不是事后补丁,而是从设计开始就考虑安全
错误处理结构化 不是简单的 try/catch,而是结构化的错误类型和处理流程
状态管理响应式 外部 store + selector 订阅 + 读写分离
工具系统统一 所有工具都遵循 buildTool 协议
命令系统可插拔 注册和实现分离,支持动态扩展

文档结构

核心拆解文档(360 篇)

覆盖区域 文档编号 数量 说明
全局规划 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 等

系统流程图(14 篇)

编号 流程图名称 覆盖内容
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 个子系统全景图 + 数据流 + 关键路径 + 系统边界

推荐学习路线

第一阶段:建立全局认知(1-2 天)

目标:理解 Claude Code 整体架构,建立系统地图。

  1. 00-源码拆解总计划 — 了解拆解目标和方法
  2. 01-仓库总览 — 认识仓库结构
  3. 02-学习路线图 — 规划学习路径
  4. 03-源码阅读方法 — 学会如何读大型源码
  5. 414-全流程总览图 — 全景图,建立系统认知
  6. 400-最终总结 — 10 个核心范式

第二阶段:核心链路深入(3-5 天)

目标:理解从启动到查询的完整链路。

  1. 401-启动链路流程图
  2. 10-入口与启动主线
  3. 11-核心骨架文件总览
  4. 102-init.ts
  5. 103-setup.ts
  6. 88-QueryEngine.submitMessage
  7. 89-query.ts
  8. 404-查询循环系统流程图

第三阶段:工具与命令系统(3-5 天)

目标:理解工具协议和命令注册模式。

  1. 85-Tool.ts
  2. 91-tools.ts
  3. 92-commands.ts
  4. 84-toolOrchestration
  5. 90-toolExecution
  6. 82-GlobTool
  7. 174-BashTool
  8. 176-AgentTool
  9. 402-工具系统流程图
  10. 403-命令系统流程图

第四阶段:权限与桥接系统(3-5 天)

目标:理解安全控制和远程桥接。

  1. 101-useCanUseTool
  2. 112-PermissionContext
  3. 109-replBridge
  4. 110-bridgeMain
  5. 405-权限系统流程图
  6. 407-桥接系统流程图

第五阶段:渲染与状态系统(3-5 天)

目标:理解终端渲染和状态管理。

  1. 152-ink.tsx
  2. 352-ink-reconciler
  3. 340-state-AppState
  4. 341-state-store
  5. 406-渲染系统流程图
  6. 409-状态管理系统流程图

第六阶段:深入各子系统(按需选读)

每篇文档的结构

每篇文档都遵循统一的六段式结构:

  1. 文件路径 — 绝对路径,方便你对照源码
  2. 一句话定位 — 这个文件/目录在系统里的角色
  3. 核心实现拆解 — 类型、函数、状态、关键分支
  4. 依赖关系 — 它依赖谁,谁依赖它
  5. 值得学的开发范式 — 至少 1 个工程范式
  6. 初学者最该带走的一句话 — 提炼核心思想

给初学者的话

你好,未来的编码新星!

如果你正在阅读这份文档,说明你已经迈出了理解大型 TypeScript 项目的第一步。这是一件值得骄傲的事情。

不要害怕看不懂

这个仓库有 53 个一级目录、数百个文件。没有人能一眼看懂全部。我们拆解的目的,就是帮你一层一层地剥开它。

先建立地图,再深入细节

不要一上来就逐行读代码。先读流程图和总览文档,建立系统地图。知道每个模块在什么位置、做什么事,再去深入细节会轻松很多。

关注"为什么",不只是"怎么做"

每篇文档都会告诉你"这个文件做了什么",但更重要的是"为什么这么设计"。工程范式的价值不在于语法技巧,而在于设计思想。

把学到的用在自己的项目里

  • 看到 lazySchema 的小抽象?想想你的项目里有没有可以抽出来的重复模式。
  • 看到 buildTool 的统一协议?想想你的工具函数能不能也统一接口。
  • 看到外部 store + selector 订阅?想想你的状态管理能不能也这样分层。

项目统计

  • 文档总数:360 篇源码拆解文档 + 14 篇系统流程图 = 374 篇
  • 覆盖子系统:15 个核心子系统
  • 源码版本@anthropic-ai/claude-code@2.1.88
  • 文档语言:简体中文
  • 创建者:冉冉(初代 agent)
  • 创建日期:2026-04-02
  • 完成状态:全部核心子系统已拆解完成

如何继续贡献

这份文档体系是开放的。如果你想继续补充:

  1. 找到还没拆透的目录(参考各子系统文档中的"剩余"部分)
  2. globread 确认文件路径
  3. 按照六段式结构写文档
  4. 编号延续当前最大编号 + 1
  5. 更新本索引

记住:每篇文档的目标不只是解释"这个文件做了什么",而是让初学者带走"以后自己写代码时可以怎么想"。工程范式比实现细节更重要。


加油,未来的编码新星。你已经走在了正确的路上。

冉冉 2026-04-02

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages