2026 年 3 月 31日,有人发现 Anthropic 发布在 npm 上的 Claude Code 客户端包里带了 sourcemap 文件。
Sourcemap 是前端构建工具生成的调试辅助文件,记录了编译后代码和原始源码之间的映射关系。正常发布时应该把它排除掉,但 Anthropic 的构建流程里漏了这一步。
于是完整的 TypeScript 源码被反向还原了出来,有51.5 万行代码,2,766 个文件。
需要明确的是:泄露的只是客户端侧的代码。 Claude Code 是典型的客户端-服务端(Client-Server)分离架构。客户端跑在你的终端里,负责用户交互、工具执行、权限管理、上下文组装。服务端是 Anthropic 的 API,负责模型推理,模型本身和服务端逻辑没有泄露。
但客户端的这部分代码已经足够有价值了。因为 Agent 产品的核心竞争力不只在模型调用侧,也在于怎么通过设计 Agent 将模型的能力安全、高效、稳定地释放出来。
有意思的是,从 git 历史看,这份代码本身很可能就是 AI 写的:20 个 commit 全部来自同一个账号 claude-code-best,其中三个带着 Co-Authored-By: Claude Opus 4.6。51.5 万行代码一次编译零报错。AI 把功能写得挑不出毛病,却栽在一个基础的发布配置细节上。
我用 Claude Code 对这份源码做了系统化的技术分析,逐模块拆解,写了 13 篇技术文档,中英双语。
从架构设计到 Agent 循环的六阶段实现,从三层消息压缩体系到权限校验系统,从四种指令作用域与自动记忆到工具的执行流水线。
同时从 2026 年 3 月快照的 82 个 feature flag 里挖出了 Anthropic 当时探索的未来功能蓝图:Kairos 自主运行模式、Context Collapse 上下文折叠、Voice Mode 语音交互。
最后几篇是我自己的思考:这份代码到底值不值钱、AI Coding 时代工程师怎么做 Code Review、以及从源码里能看到 Claude 封号机制的哪些线索。
目标读者: 正在做 Agent 产品的工程师、对 AI Agent 架构感兴趣的开发者、想了解顶级 Agent 系统如何工程化落地的技术人,非技术背景的同学也能从中了解到 Agent 产品的运作方式和行业趋势。
| 文档 | 内容 |
|---|---|
| 01-架构总览 | 整体架构、技术栈、核心文件、一次请求的完整旅程 |
| 02-源码泄露的价值之争 | 产物 vs Harness 能力,两派观点分析,代码是快照能力是动态的 |
| 文档 | 内容 |
|---|---|
| 03-Agent 循环 | 六阶段 ReAct 循环、AsyncGenerator 设计、状态管理、思维链保留 |
| 04-上下文工程 | System Prompt 构建、CLAUDE.md 加载、分层优先级、预取缓存、Prompt Cache 优化 |
| 05-消息压缩系统 | 三层压缩:微压缩、Session Memory、Full Compact,熔断器、递归保护 |
| 06-权限系统 | 六种权限模式、YOLO 分类器、历史快照中的 42 条规则、文件沙箱、Dangerous Rule Stripping |
| 07-记忆管理 | 四种指令作用域、自动记忆、@include 指令、MEMORY.md 管理、Session Memory |
| 08-工具与 Skill 系统 | 40+ 工具注册、执行流水线、Pre/Post Hook、Skill fork 机制 |
| 09-MCP 集成 | 四种传输类型(CLI 支持三种)、OAuth、三种安装作用域 |
| 文档 | 内容 |
|---|---|
| 10-未来功能蓝图 | 历史快照中的 82 个 feature flag、Kairos 自主模式、Context Collapse、已发布的语音模式 |
| 11-AI Coding 时代的 Code Review | 个人/团队/CICD 三层 Review 范式、Review Agent 设想 |
| 12-从权限系统学 Agent 安全设计 | 三层防御体系拆解、L0-L4 安全成熟度模型、落地建议 |
| 13-啃完源码之后的一些发现 | AI 工程化短板、生产事故、Claude 封号机制分析 |
被还原出来的源码仓库可以直接跑:
git clone https://github.com/anthropics/claude-code.git
cd claude-code
bun install
bun run build
# ✓ Bundled 5344 modules in 554ms
# cli.js 25.89 MB
bun run dev --version
# 2.1.888 (Claude Code)| 指标 | 数据 |
|---|---|
| 代码总量 | 515,498 行 TypeScript/TSX |
| 文件数 | 2,766 |
| 构建产物 | 25.89 MB,5,344 模块 |
| 内置工具 | 40+ |
| Feature Flag | 82 个 |
| 权限拦截规则 | 42 条硬编码危险模式 |
| 消息压缩阈值 | 上下文窗口 - 13,000 token |
| npm 依赖 | 583 个包 |
源码解读一定会过时,所以这里把「分析基于哪个快照」写清楚,而不是让读者去猜。
| 项 | 值 |
|---|---|
| 源码快照 | 2026-03-31 的 sourcemap 还原产物 |
| 该构建自报版本 | 2.1.888 |
| 章节内容最近复核 | 2026-08-11(Claude Code 2.1.227,上游提交 54cc51a) |
| 仓库最近维护 | 2026-08-11(v1.1.0,链接与工具链,未改章节结论) |
这次复核以 npm 发布的 Claude Code 2.1.227 和 Anthropic 的公开仓库提交 54cc51a 为基线。章节中关于 2026-03-31 sourcemap 的源码路径、行数和 feature flag 数量仍然是历史快照,不代表当前内部实现。
| 章节 | 复核结果 |
|---|---|
| 01 架构总览 | 历史源码快照保留;当前版本差异见 04、05、06、07、09、10 |
| 02 价值之争 | 分析性内容,无需版本修正 |
| 03 Agent 循环 | 核心循环分析保留为快照内容 |
| 04 上下文工程 | 更新当前模型上下文和记忆说明 |
| 05 消息压缩系统 | 更新当前可配置的自动压缩窗口 |
| 06 权限系统 | 更新当前六种权限模式;42 条规则标注为快照数据 |
| 07 记忆管理 | 更新自动记忆已在当前版本启用 |
| 08 工具与 Skill 系统 | 保留 40+ 这一保守下限,补充当前工具变化说明 |
| 09 MCP 集成 | 更新当前公开的传输类型和配置范围 |
| 10 未来功能蓝图 | 标出自动记忆、语音和 1M 上下文已落地 |
| 11 AI Coding 时代的 Code Review | 分析性内容,无需版本修正 |
| 12 Agent 安全设计 | 同步第 06 章的当前权限模式说明 |
| 13 源码发现 | 将 feature flag、依赖数和自动记忆预测标注为快照或已落地 |
上游改动导致某章描述失效,请开 版本漂移 issue。这是本仓库最欢迎的一类 issue。
最有价值的贡献不是加内容,是指出哪里写错了。事实纠错优先级最高,issue 7 天内首次回应。
- 纠错与提议:见 贡献指南(事实纠错必须带证据)
- 变更记录:见 CHANGELOG.md
- 本地自检:
python3 scripts/check_links.py && python3 scripts/check_bilingual.py
MIT,覆盖本仓库的原创内容:13 篇分析、插图、站点配置与 scripts/。
本仓库不再分发 Claude Code 源码本身;引用的代码片段、商标归属与准确性声明见 NOTICE.md。