Claude Code 源码裸奔事件:我在里面找到了电子宠物、一条骂人正则和 44 个藏起来的功能
大家好,我是破晓。
2026 年 3 月 31 日凌晨,安全研究员 Chaofan Shou 在推特发了一条消息:
“Anthropic 把 Claude Code 的完整源码放在 npm 包里公开下载了。”
没有黑客入侵,没有内鬼泄密。是一个 .map 文件。
一个调试用的、本来应该被排除在发布包之外的、工程师随手落下的 .map 文件。
就这样,1900 多个文件、51 万行 TypeScript 代码,全网裸奔。
这是 Anthropic 在一周之内发生的第二次意外曝光。(上一次是模型规范文件泄露。)
这事有多离谱
Anthropic 是目前 AI 领域最强调”安全”的公司之一,没有之一。估值超过 600 亿美元,员工数百人,每天对外输出的关键词就是”安全、对齐、负责任”——然后发布新版本时,居然没有人检查一下 npm 包里到底打包了什么。草台班子这个词,跟规模真的没关系。
他们内部甚至有一套叫做 Undercover Mode(卧底模式) 的系统。作用是什么?——防止 Claude Code 在帮 Anthropic 员工提交开源代码时,不小心在 commit 里泄露内部代号。代号比如”Capybara”、”Tengu”。系统还会让 AI 主动隐瞒”Claude Code”这个名字本身。
不能强行关闭。设计成单向门。用他们代码里的原话:
“There is NO force-OFF. This guards against model codename leaks.”
我第一个想到的是:这帮人在系统层面死死防住了 AI 在 git 提交里说漏嘴,然后把整个源码以 60MB JSON 文件的形式,顺手上传到了 npm。
绷不住了。
社区开始争分夺秒
这件事的后续比泄露本身更好笑。
全球工程师立刻开始分析、镜像、存档,因为大家都知道 Anthropic 会马上删。但太晚了。 源码已经在 GitHub 上备份,Fork 超过 1900 个,社区有一个新 repo,直接叫 instructkr/claude-code,副标题是”Claude Code Snapshot for Research”。
然后,有趣的发现开始一个一个涌出来。我去翻了一下,挑几个最值得说的。
Buddy:终端里的电子宠物
有人在源码里找到了一个完整的电子宠物系统,叫 Buddy。
有物种设定:从普通级的 Pebblecrab、Dustbunny,到传说级的 Cosmoshale 和 Nebulynx。这些宠物有 1% 的闪光概率(SSR?),还有有 5 项属性:DEBUGGING、PATIENCE、CHAOS、WISDOM,还有……SNARK(毒舌值)。
每只宠物的物种由你的 userId 哈希决定,同一个用户永远刷出同一只宠物。宠物经过 ASCII 艺术渲染,坐在终端输入框旁边陪你写代码。
这个功能的解锁窗口:2026 年 4 月 1 日到 7 日。是的,今天。
检测你在骂 Claude 的方式:一条正则
一家把 LLM 推向世界的公司,用来检测用户是否在骂 Claude 的机制,是这个:
/\b(wtf|wth|ffs|omfg|shit|dumbass|horrible|awful|fucking broken|fuck you|screw this|so frustrating|this sucks)\b/不是情感模型。不是嵌入检索。是一条正则。
作者注释了一句:LLM 做这件事太贵了,regex 更快。
坦白说,我看到这条时笑了,还真是简单实用的一招。
print.ts:5594 行,一个函数 3167 行
print.ts 这个文件有 5594 行,其中一个函数 3167 行,嵌套 12 层 if/else,一口气写进去的。
没有注释,没有拆分,就那样杵在那儿。
世界上最顶级的 AI 公司,内部代码也长这样。这件事让我稍微释怀了一点。
KAIROS:那些做好了、但还没打开的功能
源码里有 44 个 feature flag,锁住了一堆已经写完但还没发布的功能:后台 24 小时运行的 agent(带 GitHub webhook)、一个叫 /dream 的技能用于”夜间记忆蒸馏”、语音命令模式、真浏览器控制(Playwright,不是 web_fetch 那种假装)、Cron 定时 agent……
他们每两周发一个新功能,不是因为开发很快——是因为东西已经做好了,在等时机一个一个打开。
看到这些待发布功能,ClaudeClaw 或许正在路上了。
防竞争对手训练的假工具
代码里有一个 ANTI_DISTILLATION_CC flag。开启后,Claude Code 会在 API 请求里塞入一批假工具定义,污染录制流量的竞争对手的训练数据。还有一个服务端摘要机制:把 Claude 的推理链压成摘要再返回,让外部抓包只能拿到摘要,拿不到完整推理。
逻辑清晰,防御严密,这显然是认真设计过的。
这件事真正值得关注的是什么
泄露本身没那么严重。这不是用户数据,不是密钥,不是什么真正意义上的安全漏洞。它只是源码。
这件事的结局很平淡:Anthropic 删了包,GitHub 镜像活着,社区继续分析。
在 AI 军备竞赛里,大家都在往前跑,跑得太快,有时候裤子就掉了。Anthropic 这次掉的是裤子,不是什么要命的东西。
顺便说一句:这件事也是个提醒。我们天天用 AI 写代码、发包、跑工作流,但 AI 生成的东西不会自动帮你把关——Anthropic 自己就是最好的例子,AI 干的活,人不看一眼,照样出事。以后要多一层意识:工具再强,审核不能省。
夜雨聆风