Claude Code 源码泄漏:有人把 1884 个 TypeScript 文件写成了一本书
上个月,Claude Code 源代码意外泄漏,引发了 AI 编程圈的一场”淘金热”。
很多人第一时间下载了源码,试图从中学习 Claude Code 的设计精髓。但面对 1332 个 TypeScript 文件和 552 个 TSX 组件——整整 1884 个代码文件——大多数人很快陷入迷茫:从哪里开始?每 个模块负责什么?为什么这样设计?
面对同样的困惑,我不直接啃源码,而是用 AI 把这些代码”分析”成了一个材料。
今天这篇文章,就结合我对泄漏源码的深度分析,来聊聊 Claude Code 到底是一个怎样的系统,以及它为什么值得花时间研究。
如果你以为 Claude Code 只是一个”AI 写代码的工具”,那你可能低估了它。
根据我对泄漏源码的完整梳理,Claude Code 绝不是普通的 CLI 工具,而是一套大型 TypeScript 终端智能体平台。
它的核心架构分为 8 层:
第一层:启动与运行模式分流
代码在最小 import 成本下解析 CLI 参数,对 –version、桥接、daemon、background、browser/MCP 等场景做 fast-path 分流。启动期大量使用动态 import 和 feature flag 做死代码消除,说明团队对线上启动耗时做了精细优化。
第二层:命令系统
Claude Code 的命令不是写死的列表,而是一个”统一分发总线”。内建命令覆盖 config、mcp、memory、review、plan、upgrade、plugin、session、bridge、theme、usage、stats 等,还支持动态合并 skills、plugins、workflow commands,依据 auth/provider/feature flag 控制命令可见性。
第三层:工具系统
这是整个平台最核心的部分。工具池包含:文件读写编辑、Bash/PowerShell 执行、Web 搜索/抓取、Todo/Task/Plan/Worktree、Agent 委托、SendMessage、Team 管理、MCP 资源读取、LSP、REPL、Workflow、Sleep、Remote Trigger 等。
关键发现:工具不是孤立函数,而是整个 runtime 的一等公民。 ToolUseContext 很厚,包含 commands、mainLoopModel、tools、mcpClients、appState、权限上下文、通知、UI 注入等,说明工具执行与会话状态、UI、权限系统深度耦合。
第四层:输入处理与消息建模
用户输入到模型请求之间,有一个完整的”输入编译器”。支持多模态输入块、桥接消息、meta 消息、slash command 解析、IDE 选区读取、hooks 机制。slash command 并不一定触发模型调用,可能直接本地消费。
第五层:推理引擎与查询循环
query.ts 是”单轮查询状态机”,QueryEngine.ts 是”多轮会话容器”。支持流式输出、max_output_tokens 恢复、上下文压缩与 microcompact、tool use summary、API fallback/retry。这二者共同构成整个 agent runtime 的核心。
第六层:工具编排与执行控制
toolOrchestration.ts 使用 partitionToolCalls 把工具调用划分为并发安全批次和串行执行批次。项目已把”工具并发与上下文一致性”作为一级问题处理。 说明工具调用密度高,且真实运行中并发收益显著。
第七层:权限、沙箱与安全控制
这是我认为 Claude Code 真正有价值的部分之一。
permissionSetup.ts 显式识别危险 Bash 规则、危险 PowerShell 规则,阻止 Agent 自动授权绕过 classifier,按 plan mode / auto mode / bypass mode 区分行为。
这是企业级安全治理结构,而不是简单 yes/no prompt。 Bash、PowerShell、Agent delegation 都被视为高风险能力。权限系统是这个项目真正的护城河之一。
第八层:扩展生态与远程基础设施
包括 MCP 模块(建立、重连、启停 MCP server 连接)、插件与技能系统(支持 marketplace、session-only plugin 目录、manifest 校验、zip cache、dependency resolution)、Bridge/Remote Session(完整 bridge loop、工作心跳、backoff 策略、session spawner、多 session 支持)。
说了这么多,你可能会问:我一个普通开发者,为什么要关心 Claude Code 的架构?
我的理由很简单:Claude Code 代表了当前 AI Agent 工程实践的最高水平。
不是因为它是 Anthropic 做的,而是因为它是目前极少数真正经过大规模生产验证的终端智能体系统。它的每一层设计,都经历了真实用户场景的打磨。
比如它的权限系统。普通开发者在做 AI Agent 时,往往把权限控制当成”后面再补”的东西。但 Claude Code 从一开始就把 Bash、PowerShell、Agent 委托视为高风险能力,建立了完整的 allow/deny/ask 规则体系。
比如它的工具并发处理。很多 AI Agent 框架声称支持”工具并行调用”,但真正处理上下文一致性的很少。Claude Code 在 toolOrchestration.ts 里专门处理了这个问题:哪些工具可以并发、哪些必须串行、并发执行时如何保证上下文修改的正确性。
比如它的上下文压缩。当会话越来越长,token 消耗越来越大,如何在保证模型理解能力的前提下压缩上下文?Claude Code 有完整的 auto compact、reactive compact 机制。
这些工程细节,不是看一个简单的 demo 能学到的。
如果你正在做 AI Agent 相关的工作,或者打算进入这个领域,我的建议是:
把这个泄漏的源代码和分析材料找来,认真读一遍。
不是让你去抄代码,而是让你理解:当你需要做一个”能在终端里执行命令的 AI Agent”时,你需要考虑哪些问题?这些问题业界最成熟的方案是什么?为什么这样设计?
分析材料,已经帮你把 1884 个代码文件”翻译”成了人类可读的章节。你不需要自己啃源码,就能系统性地建立认知框架。
读完之后,你再看自己手头的项目,可能会有”原来这里还可以这样优化”的感觉。
关注后回复留言,可索取泄露源码及分析材料
作者:数字李逍遥
夜雨聆风