Skip to content

Claude Code 源码学习路线图

项目概况

  • 源码仓库: 777genius/claude-code-source-code-full
  • 技术栈: TypeScript + React/Ink (终端UI) + Bun runtime
  • 源码规模: 1894 个 .ts/.tsx 文件,约 51.5 万行代码
  • 核心文件: main.tsx (4684行)、QueryEngine.ts (1297行)、query.ts (1730行)

学习阶段划分

🟢 第一阶段:入口与骨架(先读懂程序怎么跑起来的)

序号章节核心文件优先级预计时间
1CLI入口与启动流程entrypoints/cli.tsxmain.tsx⭐⭐⭐⭐⭐2-3天
2QueryEngine核心循环QueryEngine.tsquery.ts⭐⭐⭐⭐⭐3-4天
3REPL交互循环screens/REPL.tsxink.ts⭐⭐⭐⭐2天

目标:理解程序从 claude 命令到开始对话的完整流程。

🟡 第二阶段:核心机制(理解 Agent 怎么工作的)

序号章节核心文件优先级预计时间
4Tool系统Tool.tstools.tstools/⭐⭐⭐⭐⭐3-4天
5Prompt系统context.tscontext/utils/systemPrompt*.ts⭐⭐⭐⭐⭐2-3天
6Context管理context/utils/attachments.ts⭐⭐⭐⭐2天
7Agent系统tools/AgentTool/tasks/⭐⭐⭐⭐⭐3-4天

目标:理解 Agent 如何接收指令、选择工具、执行任务。

🔴 第三阶段:高级机制(理解多Agent、通信、状态管理)

序号章节核心文件优先级预计时间
8多Agent协作coordinator/tasks/LocalAgentTask/⭐⭐⭐⭐⭐3-4天
9Session与状态管理state/utils/sessionStorage.ts⭐⭐⭐⭐2天
10Streaming与API通信services/api/query.ts⭐⭐⭐⭐2-3天
11命令系统commands/commands.ts⭐⭐⭐2天

目标:理解多Agent如何并行、通信、状态如何持久化。

⚫ 第四阶段:支撑系统(理解工程化细节)

序号章节核心文件优先级预计时间
12UI组件系统components/screens/⭐⭐⭐2天
13插件与扩展plugins/skills/services/mcp/⭐⭐⭐2天
14安全与权限hooks/toolPermission/utils/permissions/⭐⭐⭐⭐2天

目标:理解终端UI渲染、插件机制、权限控制。


推荐阅读顺序

entrypoints/cli.tsx

main.tsx (入口,最核心)

setup.ts (初始化)

QueryEngine.ts (LLM调用)

query.ts (agentic loop)

Tool.ts + tools.ts (工具系统)

tools/AgentTool/ (子Agent)

context.ts + context/ (上下文)

coordinator/ (多Agent)

tasks/LocalAgentTask/ (任务管理)

services/api/claude.ts (API通信)

state/ (状态管理)

关键概念速查

概念位置说明
Agentic Loopquery.ts核心循环:发请求→执行工具→再发请求
ToolTool.ts工具的类型定义和接口
AgentTooltools/AgentTool/子Agent的创建和管理
Coordinatorcoordinator/多Agent协调者模式
Fork Subagenttools/AgentTool/forkSubagent.ts缓存优化的分身机制
Contextcontext/系统提示词和用户上下文
Sessionutils/sessionStorage.ts对话历史持久化
Permissionhooks/toolPermission/工具权限控制
MCPservices/mcp/Model Context Protocol
Tasktasks/LocalAgentTask/后台任务管理
Streamingservices/api/claude.tsAPI流式响应处理

核心文件速览

文件行数职责
main.tsx4684CLI入口,参数解析,启动流程
query.ts1730Agentic loop 核心实现
QueryEngine.ts1297LLM API 调用封装
Tool.ts794工具类型系统定义
commands.ts754命令注册中心
setup.ts478环境初始化
context.ts190上下文收集
tasks.ts40任务系统入口
Task.ts127任务类型定义

学习建议

  1. 先跑通主流程:从 cli.tsxmain.tsxquery.ts 走一遍,理解程序怎么启动、怎么进入对话循环
  2. 再理解工具系统Tool.ts + tools/ 是整个 Agent 的核心,理解工具怎么注册、怎么调用
  3. 然后看Agent系统tools/AgentTool/ + tasks/ 理解子Agent怎么创建、怎么通信
  4. 最后看高级特性:Coordinator、Fork、Session、Memory 等

每章阅读方法

  1. 先看类型定义:理解数据结构
  2. 再看主函数:理解执行流程
  3. 追踪调用链:理解模块间关系
  4. 看边界处理:理解错误处理、边界情况
  5. 看设计模式:理解工程思想

基于 Claude Code 源码的深度逆向工程分析