Claude Code 51 万行源码泄了,还是 Anthropic 自己搞的

今天刷推特,看到安全研究员 Chaofan Shou 发了一条推:
Claude code source code has been leaked via a map file in their npm registry!
Claude code源代码泄露了!
8000+ 个赞,269 万浏览,几个小时之内,GitHub 上就有人把源码整理成了完整仓库,6600+ star,10000+ fork。

怎么泄的
不是什么高端黑客攻击,是 Anthropic 自己把 source map 打包进了 npm 发布物。
Claude Code 最新版 v2.1.88,npm 包体积从 17MB 暴涨到 31MB。多出来的就是一个 57MB 的 .map 文件。
Source map 本来是开发调试用的,它里面有两个数组:sources(文件路径)和 sourcesContent(完整源码),索引一一对应。不需要反编译,不需要反混淆,JSON 打开就是完整的 TypeScript 原始代码。
提取脚本大概 10 行就搞定。
更尴尬的是,这不是第一次。2025 年 2 月 Claude Code 刚上 npm 的时候就出过一模一样的事,后来修了。一年过去,最新版又把 source map 打进去了。前一版 v2.1.87 还是干净的,大概率是构建配置改动意外引入的。
推特上 @0xLogicrw 总结得很准确:
不涉及模型权重和用户数据,对普通用户没有安全风险。但 Anthropic 的工程团队大概不太想让全世界读自己的源码。
源码里有什么
1906 个 TypeScript 源文件,51 万行代码。 整个 Claude Code CLI 的完整实现。
先说技术栈:
- • 运行时:Bun(不是 Node.js)
- • 终端 UI:React + Ink(没错,用 React 写命令行界面)
- • CLI 框架:Commander.js
- • 类型校验:Zod v4
- • 搜索:内置 ripgrep
- • 协议:MCP SDK、OpenTelemetry
- • 功能开关:GrowthBook
用 React 写 CLI 这个选择挺有意思的。Ink 这个库我之前就知道,但没想到 Anthropic 在生产级产品里用上了。终端里的那些交互效果,原来都是 React 组件渲染出来的。
39 个工具,全部暴露
Claude Code 的核心是一个 工具注册系统。src/tools/ 目录下有 39 个工具实现:
BashTool、FileReadTool、FileEditTool、FileWriteTool、GlobTool、GrepTool、AgentTool、WebFetchTool、WebSearchTool、MCPTool、SkillTool、TaskCreateTool…
每个工具的实现细节,包括权限控制逻辑、输入校验、错误处理,全都可以看到。
50+ 个 slash 命令也全在 src/commands/ 里,包括一些你可能没见过的:/doctor、/diff、/cost、/desktop、/mobile、/chrome、/bridge、甚至还有 /bughunter 和 /good-claude。
几个有意思的子系统
翻代码的过程中,几个目录让我停下来多看了一会儿:
coordinator/ 是多 Agent 协调系统,可以把 Claude 变成一个指挥官,同时管理多个并行的 worker agent。这个功能目前还没完全开放,但代码已经很完整了。
bridge/ 是 IDE 集成的通信层,VS Code 和 JetBrains 插件就是通过这个和 CLI 通信的。
voice/ 是语音输入模块,这个功能已经上线了,在 Claude Code 里可以直接用语音和 AI 对话。
services/ 里藏着最多东西:API 客户端、OAuth 认证、MCP 协议、LSP 支持、数据分析(GrowthBook feature flags)、上下文压缩(compact)、策略限制(policy limits)。
隐藏的功能开关
代码里暴露了一组 feature flags,这些是还没有正式发布的功能:
- • KAIROS:看代码描述是一个自主后台守护进程模式,可以持续运行、记忆合并
- • PROACTIVE:主动模式
- • BRIDGE_MODE:桥接模式(IDE 集成相关)
- • DAEMON:守护进程
- • VOICE_MODE:语音模式(已上线)
- • AGENT_TRIGGERS:Agent 触发器
- • MONITOR_TOOL:监控工具
其中 KAIROS 最值得关注。从代码结构看,它可能是 Claude Code 的下一个大更新方向:一个始终在后台运行的 AI Agent,不再需要你手动开启一个 session,它会持续监控你的项目状态。
当然,功能开关只是代码里存在,不代表一定会发布。Anthropic 完全可能砍掉其中任何一个。
中文互联网的反应
泄露仓库地址是 github.com/instructkr/claude-code
韩国开发者上传的,commit message 就一个字:asdf。
GitHub 仓库的 Issues 区已经变成了大型合影留念现场。342 个 issue,绝大部分是中文用户在打卡:

- • 笑死了全是国人
- • 终于可以一睹源码
- • 国产 agent 你崛起罢
- • 不久后国内:XXagent 震撼首发
最后一条是调侃,但也不是没道理。一份完整的、生产级的 AI Agent 架构参考代码,对整个行业都有学习价值。
推特上 @sanbuphy 的点评比较专业:
整体代码结构很成熟,主流程包括 REPL 启动、QueryEngine、工具注册、Slash 命令、权限系统、任务系统,以及多层状态管理,非常典型的生产级 AI agent harness 设计。
后续
Anthropic 反应很快,已经在 GitHub 上发起了 DMCA takedown。仓库应该很快会被删除。但 npm 的早期版本已经被存档,源码早就在社区流传了。这种事一旦泄出去,就收不回来了。
不过说句公道话,这次泄露的只是 CLI 客户端的前端代码,不涉及 Claude 模型本身的任何东西。没有模型权重,没有训练数据,没有用户数据。真正值钱的东西还是安全的。
对开发者来说,倒是多了一个很好的学习材料:一个价值几十亿美金的公司,是怎么用 TypeScript + React 构建一个企业级 AI Agent 框架的。工具注册、权限控制、上下文管理、多 Agent 协调,这些都是任何 AI Agent 产品都会遇到的问题。
给所有发 npm 包的开发者提个醒:发布前检查你的 .map 文件。 一行 sourcesContent 就能让你的所有代码公之于众。
写在最后
一家做 AI 安全的公司,因为构建配置没管好把自家源码全泄了,这个剧情多少有点讽刺。
但换个角度看,这 51 万行代码展示了一个事实:现在最好用的 AI 编程工具,技术栈并不神秘。React + Ink + Bun + 一套精心设计的工具注册系统。真正的壁垒还是在模型能力上。
源码已经泄了,但 Claude Code 不会因此变得更弱。该好用还是好用。
有些东西,藏不住也没必要藏。我是洞见,下次见。
夜雨聆风