刚刚,ClaudeCode源码疑似泄露!
大家好,我是轩辕。
就在刚刚,AI圈子里炸了个大瓜。
Claude Code 的源代码,疑似泄露了。
有人发现 Anthropic 发到 npm 上的安装包里,多了一个叫cli.js.map的文件。
这文件有多大呢?59.8 MB。

看到这个体积,稍微有点经验的开发者就知道不对劲了。
一个正常的 source map 文件,不会这么大。
除非它把所有源码的原文都塞进去了。
我赶紧把这个最新的2.1.88下载下来,打开这个cli.js.map文件,里面果然有sourcesContent字段。

这个字段什么意思呢?
简单说就是:原始源码的完整内容,一行不少地嵌在里面了。
经过简单的处理,直接可以从这个文件里还原出了 Claude Code 的源代码。
包括系统提示词、内部逻辑、各种常量定义,全都一览无余。

消息传开之后,网上立刻炸锅了。
有人说"Anthropic 被脱裤了",有人说"工程师一觉醒来家没了"。
但先别急着吃瓜,咱来拆解一下这事儿到底是怎么回事。
这个 .map 文件是个啥?
很多不写代码的朋友可能一脸懵。
我用大白话解释一下。
程序员写代码的时候,用的是人能看懂的语言。
但发布给用户的时候,代码会被压缩、混淆,变成一坨。
比如你写的是这样:
function hello(name: string) { console.log("Hello " + name)}
发出去就变成了这样:
function a(n){console.log("Hello "+n)}
机器很开心,人看着就头大了。
万一线上报错,你根本不知道对应源码哪一行。
所以就有了.map文件,也叫 source map。
它就像一张"翻译地图"。
告诉调试工具:这段压缩代码对应的是原始文件的第几行第几列。
这东西本身是个很正常的开发工具,没什么问题。
问题出在哪呢?
有些.map文件不光记映射关系,还顺手把源码原文也塞进去了。
这就好比你给别人一张楼层指引图。
结果不小心把整栋楼的建筑施工图纸也附上了。
对比一下新旧两个版本就很清楚了。
上一个版本 v2.1.87 的安装包里,没有cli.js.map这个文件。

而最新的 v2.1.88 里,突然多了这么个 59.8 MB 的大家伙。

说明这大概率是某次发版时配置没弄好。
用技术话来说就是:.npmignore或files字段没把这个文件排除掉。
.npmignore是什么?
你可以理解成一个"发货排除清单"。
告诉 npm:这些文件不要打包上传。
测试文件不要发,调试文件不要发,source map 不想公开也不要发。
结果这次,清单上可能漏了cli.js.map。
于是它就跟着安装包,一起发给了全世界所有装这个包的人。
泄露了些什么?
从网上已经流出的内容来看,被还原出来的代码量还不小。
能看到 Claude Code 的系统提示词是怎么组装的。
能看到它内部有哪些常量、配置项、功能模块。
甚至连代码风格和工程架构都能窥见一二。
对安全研究员和竞争对手来说,这些东西可太有价值了。
好了,不说了,今天就分享到这里,我先去研究这份源码去了,想要这份源码的同学可以戳下面卡片进公众号后台私信回复:Claude,自动领取。
路过的朋友欢迎点个关注,及时获取后续对Claude Code的源码分析文章。