Claude Code 51万行源码意外泄露,全网开发者第一反应竟然是——数「加载动词」?!
Claude Code 51万行源码意外泄露,全网开发者第一反应竟然是——数「加载动词」?!
【导读】Anthropic 的 Claude Code CLI 因 npm 打包事故泄露了全部 TypeScript 源码,51.2万行代码在几分钟内被镜像、被分析、被 fork。但最疯狂的是:面对这场堪称”科技史最离谱”的泄露事件,全网开发者最关心的既不是架构设计,也不是隐藏功能——而是去数加载动画里到底藏了多少个动词。答案是 187 个。
一个 .map 文件,炸开了 Anthropic 的底裤
2026年3月31日,一切始于一个本不该出现的文件。
Anthropic 在发布 `@anthropic-ai/claude-code` v2.1.88 到 npm 仓库时,不小心把一个 59.8MB 的 source map 文件(`cli.js.map`)打包进了发布产物。这个文件的用途本来是开发调试——它能把压缩混淆后的 JavaScript 映射回原始的 TypeScript 源码。
换句话说:谁下载了这个 npm 包,谁就能完整还原 Claude Code 的全部客户端源码。
研究员 Chaofan Shou(@Fried_rice)几乎在第一时间发现了这个问题,直接在 X 上甩出了下载链接:
“Claude code source code has been leaked via a map file in their npm registry!”
「Claude 的源代码通过其 npm 注册表中的一个映射文件泄露了!」
▲ @Fried_rice 的爆料推文——4.3万点赞,3026万次查看,3.8万人收藏
这条推文炸了。3000万人围观,将近4万人直接收藏了下载链接。
镜像速度比 Anthropic 反应还快
接下来发生的事情,用推特博主 Jeremy 的话说:
“What happened next is one of the most insane stories in tech history.”
「接下来发生的事情堪称科技史上最疯狂的故事之一。」
▲ @Jeremybtc 的复盘帖——4.5万点赞,235万次查看
代码被下载、被镜像的速度远超 Anthropic 的 DMCA 反应速度。GitHub 上瞬间冒出多个镜像仓库,有的两小时内就拿到了近万颗星。有人把目录结构全扒了出来,有人甚至直接用泄露代码生成了一整套 Mintlify 文档。
▲ @LukeberryPi:有人做了 GitHub 镜像,还有人直接生成了完整文档
▲ @Eljaboom:”赶紧收藏,马上要被下架了!”
更绝的是——有团队直接 fork 了泄露代码,改造成兼容任意大模型的开源版本,取名叫 OpenCode。GPT、DeepSeek、Gemini、Llama 全都能用。
“We forked the leaked Claude Code source and made it work with ANY LLM… The name is OpenCode”
「我们修改了泄露的 Claude Code 源代码,使其能够与任何 LLM 兼容。它的名字是 OpenCode。」
▲ @gitlawb 的 OpenCode 宣传——1.5万点赞,百万次查看,9100人收藏
Anthropic 紧急下架了包,开始发 DMCA 下架通知。但互联网的记忆比任何法律流程都快——代码已经在去中心化平台上永久存档了。
但是,全网最火的内容,跟这些都无关
你以为大家在讨论架构?在研究 system prompt?在分析 feature flag?
都不是。
全网开发者最关心的一件事是:Claude Code 加载动画里到底有多少个动词。
知名全栈开发者 Wes Bos 发了一条推文,直接封神:
“Claude Code leaked their source map, effectively giving you a look into the codebase. I immediately went for the one thing that mattered: spinner verbs
There are 187″
「Claude Code 泄露了源代码图,让你得以一窥代码库。我立刻着手处理最重要的那件事:旋转动词。共有187个。」
▲ @wesbos 的推文——2.4万点赞,177万次查看,这条推文定义了整个事件的梗
“I immediately went for the one thing that mattered”——我立刻去看了唯一重要的东西。
这句话成了全网模板。
187个动词,到底是什么?
所谓 spinner verbs,就是你在 Claude Code 里等待 AI 响应时,终端里旋转动画旁边显示的那些动词——”Pondering…”、”Musing…”、”Bloviating…”、”Schlepping…”、”Zesting…”
Anthropic 的工程师在这个加载文案里塞了 187 个不同的动词,从正经的”Computing”到搞笑的”Booping”,从文学范的”Elucidating”到只有程序员才懂的”Clauding”。
开发者 @icanvardar 直接录了个视频展示这些动词循环播放的效果:
“guys just found claude’s spinner verbs. 187 of them”
「伙计们刚刚找到了克劳德的旋转动词。一共187个。」
▲ @icanvardar 的视频——直接在编辑器里打开 spinner.tsx 逐个展示
还有人精准定位到了源码文件 `spinner.tsx`,连行号都标出来了:
“found spinner.tsx, 187 verbs — vocab maxxing with claude”
「找到 spinner.tsx,187个动词——跟 Claude 一起词汇量拉满。」
▲ @yogiwarps:找到了 spinner.tsx,并配上了动词列表截图——”vocab maxxing with claude”
为什么”数动词”比”看架构”更出圈?
这个梗的传播逻辑其实很典型:
第一,信息降维。51.2万行代码、1906个源文件、44个隐藏 feature flag——这些你听完就忘。但”加载动画有187种动词”?一秒钟就能理解,三秒钟就能笑出来。
第二,反差感。一个价值数十亿美元的 AI 公司的源码泄露——严肃、紧张、法务狂奔。然后全网开发者的第一反应是去数加载动画的文案。这种”严肃事件里的荒诞细节”,天生适合传播。
第三,共鸣感。每个用过 Claude Code 的人都见过那些旋转动词。当你发现它们不是随机生成的,而是有人精心挑选了187个——”Beboppin'”、”Boondoggling”、”Finagling”——你会觉得 Anthropic 的工程师真的在认真对待一件无关紧要的小事。
这种”对无用细节的执念”,恰恰是开发者文化里最受推崇的品质。
泄露的远不止动词
当然,除了 spinner verbs 这个最大的梗之外,社区也从泄露代码中发现了大量”正经”内容:
- 44个隐藏 feature flag
,其中超过20个是已开发但未发布的功能 - “Undercover Mode”(潜行模式)
——让 AI 贡献开源代码时不暴露 AI 身份 - “Kairos”(全自主模式)
——完全无人监督的自主运行 - “Frustration Regex”(沮丧检测)
——用正则表达式追踪用户骂人的频率 - CLI 内嵌的 System Prompt
——此前一直被认为只存在于服务端
Ars Technica 直接以《Entire Claude Code CLI source code leaks thanks to exposed map file》为标题进行了报道,确认泄露规模达51.2万行代码。Hacker News 上的讨论帖获得了近2000 点赞、943条评论。
但这些”严肃发现”在传播力上,全部加起来也打不过一句:”There are 187 spinner verbs.”
一个加载动画,定义了一次泄露事件
回看整个事件的传播链条:
爆料 → 镜像疯抢 → DMCA 追杀 → 开源 fork →然后,画风突变→ 全网开始数动词。
Anthropic 的工程师们大概没想到,他们花在加载动画文案上的那点小心思——从”Accomplishing”到”Zesting”的187个动词——会成为这次泄露事件里最持久的记忆点。
这件事给所有做产品的人上了一课:用户最终记住的,往往是你藏在角落里的那一点温度。51.2万行代码里真正出圈的,是187个加载动词。
至于那个不该被打包进去的 `.map` 文件?Anthropic 官方的说法是”release packaging issue caused by human error”——人为失误导致的发布打包问题。
讽刺的是,一家以 AI 安全闻名的公司,最终栽在了最基础的 npm 打包配置上。
— END —
夜雨聆风