Claude Code源码泄露后,官方 sourcemap 里包含了完整 TypeScript 源码。neural_avb 花时间整理出了最值得读的源码路径——不是盲目翻目录,是5条有目标的阅读路线。
核心文件架构
Claude Code 的主要源码组织:
src/
├── constants/prompts.ts ← 28个系统Prompt节
├── tools.ts ← 工具注册表
├── Tool.ts ← 工具基类
├── query.ts ← 主循环 + API调用组装
├── QueryEngine.ts ← QueryEngine实现
├── services/
│ ├── compact/ ← 上下文压缩
│ └── SessionMemory/ ← 会话记忆
├── tools/AgentTool/ ← Agent工具(含子agent)
└── utils/
├── forkedAgent.ts ← Forked agent编排
└── permissions/ ← 权限系统
5条阅读路径
路径1:Claude Code 基本是怎么工作的?
起点:src/constants/prompts.ts → src/tools.ts → src/Tool.ts → src/query.ts → src/QueryEngine.ts
这条路径覆盖了 Claude Code 的核心循环:从 Prompt 组装、工具注册、执行引擎到 API 调用的完整链路。
路径2:工具和权限系统是怎么运作的?
起点:src/tools.ts → src/Tool.ts → src/services/tools/toolExecution.ts → src/utils/permissions/permissions.ts → src/utils/hooks.ts
这条路径揭示了 Claude Code 如何决定哪些命令可以执行、哪些需要用户确认、以及工具调用失败时的降级策略。
路径3:子Agent是怎么工作的?
起点:src/tools/AgentTool/prompt.ts → src/tools/AgentTool/AgentTool.tsx → src/tools/AgentTool/runAgent.ts → src/utils/forkedAgent.ts → built-in/ 目录下的 agent 文件
包括 specialAgent.ts、specialAgent.ts、eAgent.ts、planAgent.ts、generalPurposeAgent.ts、verificationAgent.ts 等专门用途的 agent 实现。
路径4:长会话的上下文是怎么保持的?
起点:src/query.ts → src/services/compact/autoCompact.ts → src/services/compact/compact.ts → src/services/SessionMemory/sessionMemory.ts → src/services/compact/sessionMemoryCompact.ts
这条路径是整个 Claude Code 架构里最复杂的部分——当上下文窗口快满的时候,系统如何决定保留什么、压缩什么、以及何时触发压缩。
路径5:索引和文件搜索
起点:src/hooks/fileSuggestions.ts → src/native-ts/file-index/index.ts → src/utils/codeIndexing.ts → src/tools/LSPTool/LSPTool.ts
这部分处理 Claude Code 如何建立和维护代码库的索引,包括 LSP(Language Server Protocol)集成和外部索引工具的检测。
最佳单文件起点
如果只读一个文件:src/constants/prompts.ts
这是所有 Prompt 的源头。28个系统 Prompt 节全部在这里定义,Claude Code 的行为从这里开始。
如果读两个文件:src/constants/prompts.ts + src/query.ts
第一个文件告诉你 Claude Code 被告知了什么,第二个文件告诉你它实际上是怎么运转的。配合阅读,能建立对整个系统最完整的 mental model。
这份指南的价值在于它把512K行混乱的源码变成了有结构的路线图。选路径1+路径4配合阅读是最高效的组合——prompts.ts给行为模型,query.ts给执行模型,两者合一才能理解为什么Claude Code能在长时间会话里保持 coherence。