Claude Code 这款由 Anthropic 开发的 AI 编程助手,最近疑似经历了一次代码“意外公开”。
有人在 GitHub 上发现了一个项目地址为 https://github.com/instructkr/claude-code 的仓库。

核心问题出在其官方发布在 npm 上的一个包 @anthropic-ai/claude-code@2.1.88 里。根据官方更新日志,2.1.88 版本确实发布于 3 月 30 日,并且这个包目前在 npm 上依然存在。问题在于,这个版本的包中包含了一个通常用于调试的文件:cli.js.map,即 Sourcemap。

简单来说,Sourcemap 文件就像一个“翻译地图”,它记录了压缩、混淆后的生产环境代码(如 JavaScript 文件)与原始的、可读的源代码(如 TypeScript 文件)之间的对应关系。开发者在浏览器调试工具中能直接看到原始代码,正是依赖这个文件。而这次事件相当于,Anthropic 在打包发布时,不仅把“压缩后的成品”(编译后的 JS)发出去了,还把能追溯到所有原始设计和施工细节的“完整设计图”(Sourcemap)也一并打包了。
社区反应迅速,已经有人根据这个 cli.js.map 文件,逆向还原出了 Claude Code 的 TypeScript 源代码,并单独建立了一个非官方仓库。该仓库维护者在描述中直言不讳地表示,源码就是从 npm 包的 Sourcemap 中提取出来的。这使得大家开始评估此次泄漏的严重程度。
从目前已经能够窥见的内容来看,至少对于客户端这一层,很多以往需要靠猜测、逆向工程或经验推断的内部细节,现在变得一目了然。例如,各个功能模块是如何划分和组织的,复杂的业务逻辑是如何流转的,甚至系统层面的提示词(System Prompt)是如何构建和拼接的,都有了更清晰的参照。
但是,这距离“Claude 模型完全开源”还有很大差距。因为本次出问题的是 Claude Code 这个具体的客户端工具包,它主要涉及与 Anthropic API 交互的前端逻辑、用户界面集成等。这不等于其背后的核心 AI 模型权重被泄露,更不等于 Anthropic 整个复杂的服务端架构和训练代码被曝光,两者完全不是一个量级的事件。
然而,一个致力于打造顶级 AI 编程助手的团队,在最基础的软件发布流程和版本控制边界上“翻车”,这本身就是一个颇具讽刺意味的安全事件。用更直白的话说,这就像是自己打包、自己发布,结果不小心把不该带出门的“设计图纸”一起塞进了交付给用户的包裹里。
无论如何,此次事件再次为开发者社区敲响了警钟:在构建和分发项目时,对于 npm 等包管理器的发布配置、构建脚本的过滤规则必须格外谨慎。特别是像 Sourcemap 这类调试辅助文件,在生产环境发布前务必确认其已被正确排除或进行脱敏处理,以免造成不必要的代码泄露风险。
对于后续进展,我们保持关注。同时,如果你对这类开源项目构建、发布流程的安全实践感兴趣,或者想了解更多技术内幕,不妨多逛逛相关的开源实战讨论区,与其他开发者交流经验。

欢迎在 云栈社区 分享你的看法。
|