乐于分享
好东西不私藏

Claude Code 源码泄露全纪录

Claude Code 源码泄露全纪录

一次构建配置失误,51.2万行代码完整暴露——这是 Anthropic 近期最大的工程事故,也意外成为 AI 编程工具领域最深度的一次技术”开盒”。


一、起因:一个 .map 文件引发的血案

2026年3月31日,距离愚人节不到24小时,Anthropic 在 npm 官方仓库发布了 @anthropic-ai/claude-code 的 v2.1.88 版本。

然而有开发者在下载该包时,发现整个压缩包体积异常庞大——59.8MB,远超正常的 CLI 工具大小。

解压之后,一个名为 cli.js.map 的文件赫然出现,这是标准的 Source Map 文件。开发者只需三行命令,即可完整还原出背后隐藏的 TypeScript 源代码:

cat cli.js.map | jq -r '.sources[]' | head -20
# 输出:1906 个 .ts 源文件列表,共 51.2 万行代码

消息在 X(Twitter)上迅速扩散。数小时内,整个 AI 开发者圈子都知道了:Anthropic 把自己最核心的 AI 编程工具的完整源代码,一不小心打包进了生产版本。


二、雪上加霜:这不是第一次

让社区哗然的不仅是泄露本身,更是一个细节被人翻出来——

这是 Anthropic 第二次犯同样的错误。

2025年2月,同款 Source Map 失误已经发生过一次。彼时团队显然注意到了问题并进行了修复,但到了 2026 年 3 月,同样的疏漏再次出现在生产包中。

与此同时,距此事发生仅 5 天前(3月26日),Anthropic 的 CMS 刚刚因为配置错误泄露了约 3000 个内部资产,其中甚至包括一个代号 Capybara 的未发布模型——内部文档描述其能”以超人类速度利用漏洞”,消息一出直接带崩了数家网络安全公司的股价。

两起事故接连发生,外界对 Anthropic 工程管控能力的质疑声骤然升温。


三、7小时开盒:社区扒出了什么

Anthropic 的 DMCA 删除请求还没发出,全球开发者已经开始疯狂分析这 51.2 万行代码。以下是社区在短短 7 小时内扒出的主要内容:

3.1 核心架构一览

模块
代码量
主要内容
查询引擎
~4.6万行
LLM API 调用、流式传输、上下文管理
工具系统
~2.9万行
40+ 内置工具、权限管控逻辑
终端 UI
React + Ink 框架渲染
安全系统
6级权限验证 + 4层决策管道
记忆系统
三层自修复记忆架构

3.2 未发布的重磅功能(44个 Feature Flag)

KAIROS(恰当时机)
持久化 AI 守护进程。当用户空闲或系统闲置时,自动进行四阶段记忆整合:定向 → 收集 → 整合 → 修剪。换句话说,等你睡觉的时候,Claude 会在后台帮你把工作记忆整理好,第二天醒来上下文更完整。

Ultraplan
基于更强的 Opus 4.6 模型,支持最长 30分钟 的深度任务规划模式,专为大型工程项目设计。

多 Agent 协调模式
多个独立 Agent 实例并行分工,系统自动编排任务依赖关系,效率提升 3 倍以上。

守护进程模式
Claude Code 像系统服务一样后台常驻,跨会话保持上下文,多个 Claude 会话之间可以互相传递消息。

3.3 最大争议:Undercover Mode(卧底模式)

这是泄露内容中引发讨论最激烈的功能。

代码中明确写有一段逻辑:当 Claude 以代理身份向开源项目提交 Pull Request 时,系统会自动移除所有 Anthropic 标识,在 commit message 和代码注释中伪装成人类贡献者。注释原文写道:“不要暴露身份”

这引发开发者社区对 AI 透明度和开源信任机制的大量讨论:如果 AI 可以悄无声息地伪装成人类给项目贡献代码,那整个开源生态的贡献者信任机制还有意义吗?

3.4 意外有趣的工程细节

愚人节彩蛋 —— Buddy 电子宠物
代码里藏着一个完整的 Tamagotchi 风格 ASCII 电子宠物系统,18 种物种,6 级稀有度,传奇款概率 1%,由用户账户 ID 唯一生成。发布时间节点恰好接近愚人节,看来是个故意埋下的惊喜。

情绪感知用的是正则表达式
Claude Code 会检测用户是否在骂街(判断依据:ffsshitty 等关键词匹配),然后调整回复语气。没有调用大模型,就是朴实的 regex。

屎山代码真实存在
src/cli/print.ts 里有一个函数长达 3000+ 行、嵌套层级 12 层,圈复杂度爆表。即便是顶尖 AI 公司,工程债务也是一样的存在。


四、Anthropic 的应对与失败

发现泄露后,Anthropic 第一时间将问题版本从 npm 下架,并向 GitHub 批量发送 DMCA 版权投诉,要求删除所有镜像和 Fork。

封杀效果:近乎失败。

一名韩国开发者 Sigrid Jin 在事发后迅速将完整源码上传 GitHub,Fork 数在数小时内飙升至 6万+,完全碾压仓库 Star 数。面对 Anthropic 的 DMCA,他先将代码改写为 Python,再改写为 Rust,以规避版权追责——改写版本继续在网络上流传。

马斯克也转发了相关动态,顺手看了一眼热闹。

代码已经传开,封杀的意义从技术层面来说已经微乎其微。


五、这件事真正的价值在哪里

极客公园的分析说出了很多人的想法:直接 Fork 没有意义,因为你 Fork 的只是一个快照,Anthropic 每天都在迭代。

真正有价值的,是理解每个设计决策背后的逻辑:

工具描述即产品力
Claude Code 每个工具的 prompt 描述极其精细,详细说明”什么时候用、怎么用、出错了怎么重试”。这本身就是模型能力的放大器,也是很多同类工具真正的差距所在。

记忆分层设计
热数据常驻内存 → 温数据按需加载 → 冷数据只做索引,MEMORY.md 的每一行约束在 150 字符以内。这套设计对做长上下文 AI 应用的工程师有直接参考价值。

从工具到守护进程的产品进化
KAIROS 和守护进程模式指向同一个方向:AI 编程助手正在从”你问我答的响应式工具”,进化为”always-on 的后台协作者”。谁先把这个体验做顺,谁就定义下一代 AI 编程工具的形态。


六、时间线回顾

2025年2月         → Source Map 首次意外打包进生产包,被发现后修复
2026年3月26日      → Anthropic CMS 配置错误,~3000 个内部资产泄露
                    代号 Capybara 的未发布模型曝光
2026年3月31日      → v2.1.88 发布,cli.js.map(59.8MB)随包发布
                    开发者发现异常,7小时内社区完成深度分析
                    Sigrid Jin 将源码上传 GitHub,Fork 数飙至 6万+
                    Anthropic 发起 DMCA 封杀
2026年4月1日       → 代码已被改写为 Python / Rust 版本广泛流传
                    Anthropic 封杀行动宣告基本失败

尾声

这件事最讽刺的地方在于:一家以”安全、可信赖的 AI”为核心理念创立的公司,在同一个月内犯了两次信息安全事故,而第一次事故早在一年前就发生过了。

Source Map 不该出现在生产包里,这是每个前端工程师都知道的常识。但常识在流程缺失面前,往往不堪一击。

至于那 51.2 万行代码揭示的产品设计——那些精心设计的工具描述、分层记忆架构、以及尚未发布的守护进程模式——在某种程度上,这次意外开盒比任何一篇技术博客都更真实地展示了:顶尖 AI 工具公司究竟在认真做哪些事,以及他们离真正的”AI 协作者”还有多近。