近日,一个基于 Claude Code 源码的开源仓库在 GitHub 上迅速走红,其 Star 数已接近 1 万。该仓库地址为 https://github.com/instructkr/claude-code。有开发者迅速备份,认为该仓库可能很快会被处理。
这并非 Anthropic 官方主动开源,而是一场因打包疏忽引发的意外。Anthropic 在发布其 npm 包时,不慎将一份高达 57MB 的 cli.js.map 文件包含了进去。
通过这个 source map 文件,可以轻易还原出其中的 4756 个源文件。其中 1906 个是 Claude Code 自身的 TypeScript/TSX 源码,其余则为 node_modules 依赖。
上述热门的开源仓库,正是通过逆向解析此 source map 文件得到的,并非来自官方渠道。
从泄露的代码分析,Claude Code 使用 React + Ink 来构建命令行界面。其核心是一个支持自然语言输入和 Slash 命令的 REPL 循环,通过一套工具系统与大语言模型 API 交互。项目的系统提示词、整体架构设计以及工具调用逻辑等核心细节,在源码中一览无余。
目前,Anthropic 已经从其 npm 包中移除了 source map 文件,并向 GitHub 上由该文件逆向得到的仓库发出了 DMCA 删除通知。
因此,对于所有只计划发布编译后 npm 包 而非开源代码的开发者而言,这是一个重要的警示:在发布构建产物前,务必仔细检查并清理 .map 等调试文件。一个微小的疏忽,就可能导致整个项目的内部实现公之于众。
有观点猜测,这次意外可能是由 AI 自动提交流程导致的。如果属实,这倒是给“AI是否可靠”的话题增添了一些有趣的谈资。技术社区如云栈社区常讨论此类开发安全与最佳实践,值得开发者们关注。
|