2026 年 3 月底,AI 圈迎来了一场堪称 “史诗级” 的意外泄露事件:Anthropic 旗下的明星 AI 编程助手 Claude Code,完整的客户端源代码意外通过 npm 公开发布包泄露,1900 余个文件、51 万行 TypeScript 代码、数十项未发布的核心功能,在短短数小时内传遍全网。更令人尴尬的是,这已经是 Anthropic 在 13 个月内,第二次因为完全相同的低级失误犯下大错。
一、事件完整时间线
整个事件的脉络清晰,从发布到曝光再到全网扩散,仅仅用了不到一天的时间:
| 时间 | 事件 |
|---|---|
| 2025-02-24 | 第一次泄露:Claude Code v0.2.8 版本因 inline-source-map 配置失误,首次泄露源码,Anthropic 紧急撤包修复 |
| 2026-03-26 | 前置事件:Anthropic CMS 配置失误,泄露未发布的 Mythos 模型内部草稿 |
| 2026-03-31 14:00 | Anthropic 发布@anthropic-ai/claude-code v2.1.88 版本 npm 包,误将包含完整源码的 Source Map 文件一同打包上传 |
| 2026-03-31 16:30 | 区块链安全公司 Fuzzland 研究员 Chaofan Shou 在 X(原 Twitter)平台率先曝光该漏洞,验证可完整提取全部源码 |
| 2026-03-31 晚间 | 泄露代码被归档至公共 GitHub 仓库,数小时内 Fork 量突破 4.1 万次,全网开始疯狂备份 |
| 2026-03-31 晚间 | Anthropic 紧急下架问题版本,将 npm 包回退至 v2.1.87,但已无法阻止已扩散的代码传播 |
| 2026-04-01 | 韩国开发者 Sigrid Jin 发布基于泄露代码净室重写的 Python 版claw-code,2 小时内收获 5 万 Star,成为 GitHub 历史上增长最快的仓库:github.com/ultraworker… |
二、泄露根源:一个.map文件引发的事故
这次泄露的原因,简单到让所有前端开发者都觉得离谱 —— 仅仅是一个不该出现在生产包中的 Source Map 文件。
什么是 Source Map?
Source Map 是前端开发中的标准调试工具:当 TypeScript 代码被编译、压缩、混淆成生产环境的 JavaScript 后,这个.map文件可以将压缩后的代码映射回原始的可读源码,方便开发者定位调试问题。
它的核心结构里,有两个致命的字段:
sources:所有原始源文件的路径列表sourcesContent:所有原始源文件的完整代码内容
换句话说,只要拿到这个.map文件,就等于直接拿到了全部的原始源码,没有任何保密可言。按照行业规范,这类调试文件绝对不应该被打包进生产环境的发布包中。
为什么会犯两次同样的错?
2025 年 2 月,Anthropic 就已经因为同样的 Source Map 问题泄露过一次 Claude Code 的早期版本源码,当时他们紧急修复了问题,删除了旧版本的 npm 包。但仅仅 13 个月后,同样的错误再次发生:
- 构建配置疏漏:Claude Code 基于 Anthropic 在 2025 年底收购的 Bun 构建工具打包,而 Bun 默认会生成 Source Map 文件,开发团队没有在生产环境的构建配置中手动关闭这个选项。
- 发布过滤缺失:
.npmignore文件中没有添加*.map的排除规则,同时package.json的files白名单也没有正确配置,导致这个 59.8MB 的巨大 map 文件被直接打包进了发布包。 - 多层防护失效:正常的发布流程中,构建配置、发布过滤、CI 检查、人工审核这多层防护只要有一层生效,就能避免这个问题,但 Anthropic 的团队居然让所有防护全部失效了。
甚至有开发者指出,提取这些源码的操作门槛极低,只需要三行命令就能完成:
# 下载npm包
npm pack @anthropic-ai/claude-code@2.1.88
# 解压
tar -xzf anthropic-ai-claude-code-2.1.88.tgz
# 直接从map文件中提取所有源码
cat package/cli.js.map | jq -r '.sourcesContent[]'
三、泄露了什么?51 万行代码里的秘密
这次泄露的并非 Claude 大模型的核心权重或训练代码(这部分 Anthropic 的核心竞争力没有受到影响),而是 Claude Code 这个 AI 编程助手的完整客户端代码,包括了所有的交互逻辑、产品功能、甚至还没发布的隐藏特性。
泄露内容的规模
- 1906 个独立的 TypeScript/TSX 源文件
- 总计 51.2 万行代码
- 59.8MB 的 Source Map 文件
- 44 个内部功能标志,20 余项未发布的功能
- 40 个工具模块、50 余个 Slash 命令的完整实现
八大隐藏的未发布功能
这些代码里,藏着 Anthropic 还没对外公布的产品路线图,其中不少功能引发了社区的巨大讨论:
1. KAIROS:自主守护进程模式
这是 Claude Code 最重磅的未发布功能,代码中被引用超过 150 次。它可以让 Claude 作为持久的后台 Agent 运行:
- 定期主动检查用户的工作状态
- 用户空闲时自动运行
autoDream子 Agent,整合观察、消除矛盾,将模糊的见解转化为可执行的任务 - 复杂任务可以调用
ULTRAPLAN,卸载到云端用 Opus 4.6 模型进行 30 分钟的深度思考 简单来说,当前的 Claude Code 是 “你说一步它做一步”,而 KAIROS 是 “它自己想着帮你做,你只需要审批就行”,是从 Copilot 到 Autopilot 的跃迁。
2. Undercover Mode:卧底模式(引发争议)
这是最具争议的功能,在undercover.ts中实现:
- 当 Anthropic 内部员工使用 Claude Code 向外部开源仓库提交代码时,会自动激活这个模式
- 自动注入系统提示,让 Claude 永远不要提及自己是 AI
- 自动剥离所有
Co-Authored-By的 AI 署名,隐藏 AI 参与的痕迹 - 禁止提及内部的模型代号、未发布功能
- 没有强制关闭开关,只要检测到不是内部仓库,就默认开启
这个功能引发了开源社区的巨大争议:Anthropic 的员工用 AI 写代码给开源项目贡献,却偷偷隐藏 AI 的痕迹,这违反了开源社区的透明度原则。
3. Anti-Distillation:反蒸馏机制
为了防止竞争对手通过 API 调用偷取他们的能力,代码里内置了反蒸馏机制:
- 向 API 请求中注入伪造的工具定义,用来毒化竞争对手的训练数据
- 对工具调用之间的思维链推理进行加密签名,让窃听者无法获取完整的推理过程
4. 内部模型代号与基准数据
代码里曝光了 Anthropic 的内部模型命名:
Capybara:对应 Claude 4.6 模型,也是未发布的 Mythos 模型的层级代号Fennec:对应 Opus 4.6 模型Numbat:尚未发布的新模型
更劲爆的是内部基准数据:Capybara v8 的虚假声明率达到了 29-30%,比之前的 v4 版本的 16.7% 反而出现了退步,这暴露了 Anthropic 模型迭代中的内部问题。
5. 其他隐藏功能
- 多 Agent 协调:支持多个独立 Agent 并行工作,每个 Agent 有自己的上下文和沙箱,通过 Prompt 而非框架实现编排
- 语音交互:完整的语音交互功能实现,此前一直处于黑箱状态
- 插件与技能系统:动态加载领域知识的可扩展架构,支持按需加载不同领域的专业能力
- Buddy 终端电子宠物:原本计划作为 4 月 1 日愚人节彩蛋的功能,有 18 个物种、属性系统,甚至还有类似宝可梦的闪光稀有变体,结果被这次泄露提前剧透了。
四、社区反应与传播
事件曝光后,整个开发者社区瞬间沸腾:
- 疯狂存档:泄露的代码在数小时内被上传到多个 GitHub 仓库,其中
openkedge/claude-code-source仓库的 Fork 量很快突破 4.1 万次,所有的内容都被全网永久备份,Anthropic 根本无法彻底删除。 - 净室重写:韩国开发者 Sigrid Jin 用 OpenAI Codex 对泄露代码进行了 “净室重写”,用 Python 重新实现了 Claude Code 的功能,规避了直接使用泄露代码的版权风险,这个名为
claw-code的项目,发布仅仅 2 小时就收获了 5 万 Star,成为 GitHub 历史上增长最快的仓库。 - 技术拆解:全球的开发者开始疯狂拆解这些代码,分析 Anthropic 的 AI Agent 实现思路,大量的分析文章在 CSDN、知乎、Hacker News 等平台涌现。
五、事件的影响
对 Anthropic:尴尬但不致命
这次泄露并没有动摇 Anthropic 的核心竞争力:Claude Code 的护城河是底层的 Claude 大模型能力,而非客户端的代码,代码可以重构,但模型能力无法复制。
但这次事件的打击更多是声誉上的:
- 作为一家以 “AI Safety(AI 安全)” 为核心招牌的公司,连最基础的软件发布流程安全都做不好,5 天内连续发生两次泄露事件,让外界对其工程能力和安全能力产生了巨大质疑。
- 产品的完整路线图被彻底暴露,所有未发布的功能、内部的战略意图都公之于众,竞争对手可以轻松跟进。
对行业:免费的 SOTA 技术范本
这次泄露意外给整个 AI Agent 行业送了一份大礼:
- 这是第一个公开的生产级 AI 编程 Agent 的完整实现,展示了 Anthropic 是如何做提示词工程、多 Agent 编排、终端 UI、状态管理的,给所有开发者提供了现成的参考范本。
- 2025 年第一次泄露就直接催化了 Coding Agent 赛道的爆发,这次的泄露会进一步加速整个行业的发展,很快就会有大量的开源平替产品涌现。
六、官方回应
事件发生后,Anthropic 很快给出了官方回应:
“这是由人为错误引起的发布打包问题,而非安全漏洞。没有敏感客户数据或凭据被涉及或泄露。我们正在推出措施以防止此类事件再次发生。”
简单来说,就是承认了是自己的操作失误,不是被黑客攻击,同时强调没有用户数据泄露。Claude Code 的项目负责人 Boris Cherny 也在社交平台表示,泄露源于部署流程中手动步骤的失误,已经对流程进行了改进,会增加更多的健全性检查。
七、行业警示:给所有开发者的教训
这次事件给所有 npm 包的发布者都敲响了警钟:
- Source Map 就是源码:永远不要把 Source Map 文件打包进生产发布包,这不是最佳实践,是底线。
- 多层防护的发布流程:
-
- 构建配置中,生产环境必须禁用 Source Map 生成
.npmignore中要排除所有调试文件、map 文件- 用
files白名单明确指定要发布的文件,而不是靠排除 - CI/CD 流程中加入自动化检查,发布前扫描是否有 map 文件
- 发布前用
npm pack --dry-run检查要发布的文件列表
- 不要依赖单一的防护措施:Anthropic 就是因为所有的防护层同时失效,才导致了两次同样的错误,多层防护才能避免人为失误。
总结
这次 Claude Code 的泄露事件,本质上是一次极其低级的工程失误:一家估值超千亿的 AI 巨头,因为忘记在发布包中过滤一个调试文件,导致 51 万行代码全部泄露,还在同一个坑里摔了两次。
这个事件也给整个行业上了一课:再先进的 AI 能力,再宏大的 AI 安全叙事,最终都要靠扎实的工程基本功来守护。安全从来都不只是模型对齐,也包括你的.npmignore有没有写对。