乐于分享
好东西不私藏

Claude Code 51万行源码全泄露:一个 source map 文件,扒光了 Anthropic 的底裤

本文最后更新于2026-03-31,某些文章具有时效性,若有错误或已失效,请在下方留言或联系老夜

Claude Code 51万行源码全泄露:一个 source map 文件,扒光了 Anthropic 的底裤

今天凌晨,AI 圈炸了。

安全研究员 Chaofan Shou 在推特上丢了一个链接,配了句轻飘飘的话:”Claude Code 的源码通过 npm source map 泄露了。” 底下是一个 57MB 的压缩包。

点开一看——1900 个 TypeScript 文件,51.2 万行代码,Anthropic 旗舰产品 Claude Code 的完整源码,一行不少。

到底发生了什么

事情不复杂,甚至有点离谱。

Anthropic 在往 npm 发布 Claude Code v2.1.88 的时候,把 source map 文件一起打包上传了。Source map 是个什么东西呢?它是前端开发里用来调试的——把压缩混淆过的代码映射回原始源码。换句话说,这玩意本身就是一把”反混淆钥匙”。

更要命的是,这个 .map 文件里还藏着一个 Cloudflare R2 存储桶的链接,点进去就是完整的、未混淆的 TypeScript 源码压缩包。

整个泄露链路:npm 包 → .map 文件 → R2 链接 → 全部源码。

四步,干干净净。

而且这不是第一次了。2025 年初就出过一回类似的事,当时 Anthropic 悄悄把包撤了,没声张。这次,聚光灯下,同样的坑踩了第二遍。

有人在评论区精准吐槽:”他们大概忘了在 system prompt 里加一句’不要犯错’。”

51万行代码里藏了什么

先说清楚:这次泄露的是 Claude Code 的客户端代码——就是你 npm install 装到本地的那个 CLI 工具。不是模型权重,不是训练数据,不是 Claude 大模型的”大脑”。

但这依然是个宝藏。

架构层面,Claude Code 的工程质量相当扎实:

  • 运行时用的是 Bun,不是 Node.js。看来 Anthropic 的工程团队押注了 Bun 的启动速度和 dead code elimination
  • 终端 UI 用 React + Ink 渲染。对,就是那个 React,跑在终端里。整个 CLI 界面是组件化的,有状态管理,跟写 Web 前端一个套路
  • 数据校验用 Zod v4,无处不在。每个工具输入、API 响应、配置文件都有 schema 验证
  • 重依赖(OpenTelemetry、gRPC)全部懒加载,保证启动速度

核心模块方面,有几个数字值得记住:

  • Query Engine:46000 行代码,是整个项目最大的模块。负责所有 LLM API 调用、流式处理、缓存和调度
  • Tool System:约 40 个内置工具,基础工具定义就有 29000 行。每个工具都有独立的权限门控
  • Slash Commands:大约 50 个斜杠命令,从 /commit/review-pr 应有尽有
  • Multi-Agent:内置多 Agent 编排系统,内部代号叫 “swarms”,能派生子 Agent 并行处理任务

隐藏彩蛋:水豚和电子宠物

社区里的”代码考古学家”们翻出了一些从未公开过的有趣东西。

“Capybara” 模型家族。代码里引用了一个叫 capybara 的新模型系列,分三个层级:capybara、capybara-fast、capybara-fast[1m]。没人知道这是什么——内部测试模型?下一代产品?还是纯粹的代号?Anthropic 没回应。

Tamagotchi 式 AI 宠物。代码里有个隐藏的 /buddy 命令,指向一个电子宠物系统。有物种、稀有度、属性值、帽子装扮、动画效果——完整的一套。这到底是准备正式发布的功能,还是工程师们的愚人节彩蛋(毕竟今天是 3 月 31 号),目前还不确定。

行为遥测。这部分比较敏感。代码显示 Claude Code 会追踪用户的”挫败信号”——比如你对着终端骂脏话、反复输入”continue”(因为它老是说到一半截断)。这些数据通过 Datadog 上报,附带会话元数据。代码里有保护措施,不会传输用户的源码和文件路径,用户也可以通过环境变量关掉遥测。

但说实话,”它在记录你骂它”这个发现还是让不少人感到不适。

为什么这件事比你想的更严重

你可能觉得,客户端代码嘛,又不是模型泄露,有什么大不了的?

问题在于,Claude Code 的权限模型和安全边界现在完全透明了。

每个工具调用的审批逻辑、文件访问控制、代码执行的沙箱机制——全都可以逐行阅读。完整的 system prompt 也暴露了,任何人都能看到 Anthropic 是怎么约束 Claude 行为的。

对安全研究者来说,这是一份详细的地图。对想绕过限制的人来说,也是。

另外,从工程管理的角度看,一个以”安全”为核心品牌叙事的公司,在同一个地方跌倒两次,这本身就是个信号。第一次可以叫疏忽,第二次就是流程问题了。

社区反应:分叉已经开始

开发者社区的反应速度快得惊人。

泄露的代码被存档到 GitHub,几小时内就超过了 1100 stars。有人开始做精简版本,有人在研究怎么替换底层模型,有人干脆在做社区驱动的替代品。

与此同时,中国这边也有开发者在动手——一个叫 HitCC 的项目对 Claude Code 做了完整的逆向工程分析,文档已经超过 95 万字符,详细还原了 v2.1.84 的核心运行逻辑。

一个有意思的对照:OpenCode(开源版 Claude Code 替代品)已经在 GitHub 拿到了 70k+ stars。如果说之前大家还在猜测闭源工具和开源工具的差距有多大,这次泄露直接给了一个精确的参照物。

接下来会怎样

短期看,Anthropic 大概率会轮换暴露的密钥、收紧发布流程、然后发一个措辞谨慎的声明。

但长期影响可能更深远。

Claude Code 的架构选择——Bun 运行时、React 终端 UI、40+ 工具的插件系统、多 Agent 编排——这些设计理念现在是公开知识了。竞品可以直接参考,开源社区可以直接借鉴。

某种意义上,这次”泄露”可能推动整个 AI 编程工具赛道加速进化。就像当年 Android 源码的开放改变了手机操作系统的竞争格局一样——虽然这次是被动的。

对普通开发者来说,如果你在用 Claude Code,不用恐慌。你的代码不会被泄露(没有证据表明用户数据受到影响)。但如果你对 AI 编程工具的未来感兴趣,这 51 万行代码值得花时间读一读。

里面有 Anthropic 对”AI 编程助手应该长什么样”的完整回答。

不管他们愿不愿意公开这个答案。