乐于分享
好东西不私藏

Claude Code源码泄露深度解读:51万行TypeScript揭示AI编程工具的真实架构

Claude Code源码泄露深度解读:51万行TypeScript揭示AI编程工具的真实架构

上周有人在 X 上说 Claude Code 源码泄露了,我没当回事。AI 圈每天都有”大新闻”,大部分是标题党。

然后我去 npm 看了一眼。

2.1.88 版本的包里,确实有一个 59.8MB 的 source map 文件。顺着它指向的 Cloudflare 链接,能下载到完整的 TypeScript 源码——512,664 行,1906 个文件。Anthropic 的工程师在发布流程里漏掉了一步排除操作,把内部调试文件直接推到了公开的 npm 仓库。

几小时内 GitHub 上出现了 4 万个 fork。Anthropic 紧急发 DMCA 通知,结果 GitHub 的自动化系统把范围扩大到了整个 fork 网络,误删了 8100 个完全合法的仓库。项目负责人 Boris Cherny 出来道歉,说是”沟通失误”。

代码早就传到了美国 DMCA 管不到的地方。我把它克隆下来,花了两天时间读。

以下是我看到的东西。


它不是一个命令行工具

这是我读完源码之后最大的认知修正。

大多数人——包括之前的我——把 Claude Code 理解为”一个终端里的 AI 助手”。你打字,它回答,偶尔帮你改改文件。

源码告诉你的是:这是一个围绕大语言模型构建的完整运行时环境

1355 个 TypeScript 文件,按功能分成了十几个模块。`tools/` 下面有 40 个工具的完整实现。`coordinator/` 是一个协调器模式——Claude 不再直接干活,而是变成一个项目经理,把任务分配给多个 worker 智能体,自己只负责汇总结果和跟用户沟通。`utils/swarm/` 是多智能体的底层实现。`memdir/` 是跨会话记忆。`bridge/` 是远程连接层,支持从手机派发任务到桌面端执行。`vim/` 是一个完整的 vim 输入模式,有状态机、motion、operator、text object。`voice/` 是语音交互。

甚至还有一个虚拟宠物系统。

这不是一个 CLI 工具。这是一个操作系统级别的东西,只是碰巧跑在终端里。


协调器模式:AI 当项目经理

`coordinator/coordinatorMode.ts` 里有一段完整的系统提示词,开头是:

“You are Claude Code, an AI assistant that orchestrates software engineering tasks across multiple workers.”

在协调器模式下,Claude 的角色发生了根本性的变化。它不再自己读文件、写代码、跑命令。它变成了一个调度中心——接收用户需求,拆解成子任务,分配给多个 worker 智能体并行执行,然后汇总结果。

提示词里有一条规则很有意思:”不要用一个 worker 去检查另一个 worker 的工作。Worker 完成后会自己通知你。”——这说明他们踩过这个坑:AI 项目经理会过度微管理,派一个人去盯另一个人,造成无意义的资源浪费。

还有一条:”启动 agent 之后,简要告诉用户你启动了什么,然后结束你的回复。永远不要编造或预测 agent 的结果。”——防止 AI 在结果还没出来的时候就开始”脑补”。

这些规则不是凭空想出来的。每一条背后都是一个真实的失败案例。


Token 预算:用户可以直接”充值”思考量

`utils/tokenBudget.ts` 揭示了一个我之前完全不知道的功能。

用户可以在输入框里直接写 `+500k` 或者 `use 2M tokens`,Claude Code 会解析这段文字,把它转换成一个 token 预算。当模型的输出达到预算的某个百分比时,系统会注入一条消息:”已达到 token 目标的 X%,继续工作——不要总结。”

这个设计的精妙之处在于:它把”AI 应该思考多深”这个模糊的问题,变成了一个用户可以直接控制的数字。你觉得任务简单,给 50k;你觉得需要深度分析,给 2M。模型不会因为”觉得差不多了”就停下来——它会一直工作到预算用完。

代码里支持 k(千)、m(百万)、b(十亿)三个单位,可以放在输入的开头或结尾,也可以用自然语言写”use 500k tokens”。


Ultraplan 和 Ultrathink:隐藏的深度模式

源码里有两个”ultra”级别的功能。

`utils/thinking.ts` 里定义了 `ultrathink`——当用户在输入里写了这个关键词,系统会切换到一个更深度的思考模式。代码里有彩虹色高亮的 UI 处理,说明这个功能在界面上会有明显的视觉反馈。它通过 GrowthBook feature flag(`tengu_turtle_carbon`)控制灰度发布。

`utils/ultraplan/` 更有意思。当用户输入 `ultraplan`,Claude Code 会把任务发送到一个远程会话(通过 Anthropic 的 CCR 服务),在远程环境里进入 plan mode,等待计划被批准后再把结果拉回来。代码里有完整的轮询逻辑、超时处理、网络错误重试(最多连续失败 5 次)。

这意味着 ultraplan 不是在你本地跑的——它把规划任务卸载到了 Anthropic 的云端,可能用的是更强的模型或更大的上下文窗口。

代码里还有一个 `ultrareview`,看起来是类似的机制但用于代码审查。


信任设备:远程控制的安全层

`bridge/trustedDevice.ts` 揭示了 Claude Code 远程控制功能的安全架构。

当你从手机上给桌面端的 Claude Code 派发任务时(Anthropic 叫这个功能 Dispatch),这个连接的安全级别是 `ELEVATED`。服务端要求客户端发送一个 `X-Trusted-Device-Token`——这个 token 在你登录后 10 分钟内注册,存储在系统钥匙串里(macOS 用 `security` 命令访问),有效期 90 天滚动续期。

注释里引用了 5 个内部 PR 编号(#274559、#310375、#295987、#307150 等),说明这个功能经过了多轮安全审查。

这不是一个简单的”远程执行命令”功能。这是一个有完整信任链的远程控制系统——设备注册、token 管理、安全级别分层、钥匙串存储。


Vim 模式:一个完整的状态机

`vim/types.ts` 里有一张 ASCII 状态图,画出了完整的 vim 输入处理流程:

INSERT 模式和 NORMAL 模式。NORMAL 模式下有 idle、operator、count、find、replace、indent 六个子状态。支持 `d`/`c`/`y` 操作符、`f`/`F`/`t`/`T` 查找、`g` 前缀命令、`r` 替换、`><` 缩进。

`vim/motions.ts` 实现了 `h`/`j`/`k`/`l` 基础移动、`w`/`b`/`e` 词级移动、`gj`/`gk` 视觉行移动。`vim/textObjects.ts` 实现了文本对象。`vim/operators.ts` 实现了操作符。

这不是一个”支持几个 vim 快捷键”的简单映射。这是一个从零实现的 vim 子集,有完整的状态机和组合语法。

在一个 AI 编程工具里实现 vim 模式,说明 Anthropic 非常清楚他们的核心用户是谁——重度终端用户,那些把 `.vimrc` 当作个人信仰的人。


技能系统:可插拔的能力扩展

`skills/bundledSkills.ts` 定义了技能的数据结构:每个技能有名字、描述、别名、允许使用的工具列表、可选的模型覆盖、是否用户可调用、以及一个 `getPromptForCommand` 函数。

技能可以附带文件(`files` 字段),首次调用时会被解压到磁盘上,模型可以通过 Read/Grep 工具按需读取——和磁盘上的用户自定义技能用同一套机制。

这意味着 Claude Code 的能力不是硬编码的。它是一个可插拔的平台——Anthropic 可以通过添加技能来扩展功能,用户也可以写自己的技能。`/commit`、`/review` 这些命令,本质上都是技能。


51 万行代码的真正故事

读完这些代码,我最大的感受不是”哇 Anthropic 好厉害”,而是:原来造一个 AI 编程工具,90% 的工作和 AI 本身无关。

协调器模式是项目管理问题。Token 预算是资源调度问题。Vim 模式是用户体验问题。信任设备是安全工程问题。技能系统是平台架构问题。多智能体协调用的是 1987 年的 tmux。

模型是心脏,但心脏只占身体重量的 0.5%。剩下的 99.5%——骨骼、肌肉、神经、血管——才是让心脏的每一次跳动变成有意义的行动的东西。

这 51 万行代码,就是那 99.5%。


想体验 AI 编程工具的实际能力?试试「skill技能助手」小程序。skill技能助手