Claude Code 源码泄漏事件深度调研报告

Claude Code 源码泄漏事件深度调研报告

⼀、事件始末

1.1 ⼀⾏命令,785KB源代码公之于众

2026年3⽉31⽇,X(原Twitter)⽤⼾ @chaofan_ 发布了⼀条令技术圈震动的推⽂:他发现 Anthropic 官⽅发布的 AI 编程CLI⼯具 Claude Code 的完整TypeScript源代码,正以明⽂形式躺 在 npm 注册表中⸺任何⼈都可以仅凭⼀⾏命令将其完整提取。 这条推⽂如同⼀颗深⽔炸弹,在短短数⼩时内引爆了整个AI开发社区。

Claude Code 源码泄漏事件深度调研报告

这不是⼀次⿊客攻击,不是内部⼈员泄密,也不是社会⼯程学成功。这是⼀起因⼯程疏忽导致 的、彻彻底底的"意外公开"⸺源头是⼀个⼏乎所有前端⼯程师都打过交道的东西:Source Map (源码映射⽂件)。

1.2 Source Map:从调试⼯具到泄密通道

Source Map(.map⽂件)是现代JavaScript/TypeScript构建⼯具链的标配产物。当开发者⽤ Webpack、Bun、esbuild等⼯具将源代码打包成⽣产环境的压缩代码时,Source Map在"压缩产 物"与"原始源代码"之间架起⼀座桥⸺它的设计⽬的是让⽣产环境崩溃时,开发者能看到堆栈追 踪指向的原始代码⾏号,⽽⾮压缩后那⼀⾏密密⿇⿇的乱码。

然⽽,Source Map⽂件的JSON结构中,有⼀个字段叫 sourcesContent,它以字符串形式完整存 储了每个源⽂件的原始代码。

Claude Code 源码泄漏事件深度调研报告

Claude Code 源码泄漏事件深度调研报告

换⾔之,Source Map ⽂件就是源代码的完整镜像。⽽ Claude Code 的发布流程中,没有⼈将 .map ⽂件从 npm 包中排除。

更讽刺的是:Anthropic很可能就是⽤Claude Code本⾝来构建和发布⾃⼰的 Claude Code⸺ ⽽Claude Code有⼀个专⻔的"Undercover Mode"(潜伏模式),防⽌AI在开源仓库中暴露 Anthropic内部信息。这个系统被写⼊了源码,⽽源码本⾝却通过 Source Map 向全世界公开。

1.3 泄漏规模:⽐任何⼈想象的都多

泄漏的不仅仅是"⼀些代码"。对 Claude Code 源码的初步分析揭⽰了⼀个远⽐公开版本复杂庞⼤的系统:

主⼊⼝⽂件:main.tsx,仅这⼀个⽂件就达 785KB(作为对⽐,⼤多数中等规模CLI⼯具的主⽂件不过⼏⼗KB)。

完整⼯具注册表:40+⼯具,包括⽂件系统操作、Shell执⾏、Web访问、⼦Agent管理、GIT ⼯作流、Cron调度等 。

完整系统提⽰词架构:由模块化、可缓存的组件在运⾏时动态组合⽽成,⽽⾮简单的单字符串 。

⼤量未发布功能:多个编译时特性⻔控(Feature Gates)将⼤量功能从公开版本中"剔除", 但源码中⼀应俱全 。

内部API端点与密钥配置结构

完整的内部模型代号体系

未来产品路线图的具体实现代码

1.4 发现者:Chaofan Shou

截⾄⽬前公开信息,事件由 X ⽤⼾ @chaofan_(Chaofan Shou)率先发现并公开。他在3⽉31 ⽇发布了那条引发轩然⼤波的推⽂,附上了截图,展⽰npm包中的 .map ⽂件列表以及暴露的源⽂件结构。

⼆、时间线(完整重建)

Claude Code 源码泄漏事件深度调研报告

三、技术细节:泄漏了什么?

3.1 核⼼架构发现 编译时特性⻔控系统 Claude Code 使⽤ Bun 打包器的 feature() 函数实现编译时特性⻔控⸺在构建阶段,特性⻔控 为false的代码分⽀会被"死码消除"(dead-code elimination),因此这些功能对外部⽤⼾完全不可⻅,但源码中⼀应俱全:

Claude Code 源码泄漏事件深度调研报告

多Agent协调系统(Coordinator Mode)

源码揭⽰了 Claude Code 内部存在⼀套完整的多Agent并⾏协调架构。当 CLAUDECODE_COORDINATOR_MODE=1 时,Claude Code 从单⼀Agent变⾝为协调者,并⾏⽣成多个⼯作Agent(Worker),各司其职:

研究阶段:Workers并⾏探索代码库

综合阶段:Coordinator阅读所有发现,构建规范

实现阶段:Workers按规范执⾏定向修改

验证阶段:Workers测试变更

Worker之间通过 <task-notification> XML消息格式通信,并通过⼀个共享的"临时便签⽬ 录"(Scratchpad Directory)持久化跨Worker的知识共享。

3.2 KAIROS:你的终端永不停歇的"观察者"

这是本次泄漏中最令⼈印象深刻的未发布功能之⼀。

KAIROS 是⼀个"常驻主动助⼿"系统⸺它不等你输⼊,⽽是主动观察、主动⾏动。当启⽤时,Claude Code 会:

维护按⽇追加的⽇志⽂件,记录整⽇的观察、决策和⾏动

定期接收 <tick> 信号,决定是否主动出击

拥有15秒的"阻塞预算"⸺任何超过15秒的主动操作都会被推迟,以避免⼲扰⽤⼾⼯作流,这套系统的设计哲学是:不打扰,只在有意义的时候开⼝。

3.3 ULTRAPLAN:30分钟的远程深度规划

对于需要深度规划的复杂任务,Claude Code 可以将任务转发⾄远程云容器运⾏时(CCR),使⽤ Opus 4.6 模型,⽤⻓达30分钟进⾏深度思考,然后⽤⼾可以从浏览器中观看规划过程并批准/拒 绝结果。

3.4 Dream系统:Claude真的会"做梦"

这是本次泄漏中最具想象⼒的发现。

Claude Code 拥有⼀个名为 autoDream(⾃动做梦)的后台记忆整合引擎,运⾏在分叉的⼦ Agent中。它的名字是刻意为之⸺让Claude"做梦"。

三⻔触发机制(必须同时满⾜):

时间⻔:距离上次做梦已满24⼩时

会话⻔:⾄少经过5个新会话

锁⻔:获取整合锁,防⽌并发做梦

做梦四阶段:

定向阶段(Orient):ls 记忆⽬录,阅读 MEMORY.md,浏览现有主题⽂件

收集近期信号(Signal):从近期⽇志漂移记忆中寻找值得持久化的信息

整合(Consolidate):撰写或更新记忆⽂件,将相对时间转换为绝对时间,删除被推翻的事实

修剪与索引(Prune & Index):将 MEMORY.md 保持在200⾏以内、约25KB以内

做梦的⼦Agent拥有只读bash权限⸺它可以审视你的项⽬,但不能修改任何内容。这是⼀个纯 粹的、反思性的记忆整理过程。

Prompt中有⼀段话直接揭⽰了Anthropic⼯程师的设计哲学:"You are performing a dream - a reflective pass over your memory files. Synthesize what you've learned recently into durable, well-organized memories so that future sessions can orient quickly."

3.5 Buddy电⼦宠物:Terminal⾥的Tamagotchi

这是最令⼈意想不到的泄漏内容。

Claude Code 包含⼀个完整的电⼦宠物系统⸺"Buddy"。这不是⼀个玩笑或彩蛋,⽽是⼀个精 ⼼设计的确定性抽卡系统:

18种宠物物种,按稀有度分布(普通60%、稀有10%、传说1%等)

包含闪光(Shiny)变种,独⽴于稀有度,1%概率

每只宠物拥有5个随机属性:DEBUGGING、PATIENCE、CHAOS、WISDOM、SNARK

6种眼睛样式、8种帽⼦选项

每只宠物有由Claude在⾸次孵化时⽣成的"灵魂描述"(Soul Description)

宠物的类型由 Mulberry32 PRNG(⼀种快速的32位伪随机数⽣成器)根据⽤⼾ID哈希和盐值 'friend-2026-401' 种⼦化⸺这意味着同⼀⽤⼾永远获得同⼀只宠物。

代码中还引⽤了2026年4⽉1-7⽇作为"预告窗⼝",暗⽰这可能是⼀个愚⼈节或复活节彩蛋功能。

3.6 Undercover Mode:Anthropic员⼯的"隐⾝⾐"

这是本次泄漏中最具争议性的发现。

源码揭⽰ Anthropic 员⼯(通过 USER_TYPE === 'ant' 标识)使⽤ Claude Code 在公共开源仓 库中⼯作时,会激活Undercover Mode(潜伏模式)。该系统会在系统提⽰词中注⼊:

Claude Code 源码泄漏事件深度调研报告

这套系统是强制开启且⽆法关闭的⸺"如果我们不能确信⾃⼰在内部仓库中,我们就保持潜伏状 态。"这意味着:

Anthropic员⼯确实在⽤Claude Code为开源项⽬贡献代码⸺⽽AI被指⽰隐藏⾃⼰是AI这⼀ 事实

内部模型代号是动物名称⸺Capyara(⽔豚)、Tengu(天狗)、Fennec(⽿廓狐)等

"Tengu" 是出现频率最⾼的内部项⽬前缀,遍布功能开关和数据分析事件⸺⼏乎可以确定 是Claude Code的内部代号

这在开源社区引发了关于透明性的严肃讨论。

3.7 未发布模型:Capybara、Opus 4.7、Sonnet 4.8

源码中发现了尚未正式发布的模型引⽤:

Claude "Capybara":全新模型家族,已进⼊v2版本,其中 capybara-v2-fast 正在准备 中,拥有100万token上下⽂窗⼝

Capybara存在"快速思考"和"常规思考"两个版本

Opus 4.7 和 Sonnet 4.8 也已在代码中被引⽤

代码注释还揭⽰了Anthropic观察到的Capybara的⼀个⽣产故障模式:当提⽰词形状在⼯具结果 后类似轮次边界时,模型会提前停⽌⽣成。Anthropic没有等待模型修复,⽽是通过提⽰词形状⼿ 术(prompt-shape surgery)来缓解⸺在边界处强制插⼊安全标记 "Tool loaded.",并将危险 的相邻块重新定位,防⽌过早停⽌。

3.8 模型代号历史(从迁移⽂件中推断)

通过 migrations/ ⽬录,可以推断Anthropic内部模型代号历史:

"Fennec"(⽿廓狐):曾是 Opus 的内部代号

migrateFennecToOpus:Fennec → Opus

migrateSonnet1mToSonnet45:100万上下⽂的Sonnet → Sonnet 4.5

migrateSonnet45ToSonnet46:Sonnet 4.5 → 4.6

resetProToOpusDefault:Pro⽤⼾曾被重置为默认使⽤Opus

3.9 System Prompt模块化架构

Claude Code的系统提⽰词并⾮⼀个简单的⼤字符串,⽽是由模块化、可缓存的组件在运⾏时动态组合⽽成。

架构中使⽤ SYSTEM_PROMPT_DYNAMIC_BOUNDARY 标记将提⽰词分为:

静态部分:可跨组织缓存(不随⽤⼾变化的内容)

动态部分:⽤⼾/会话特定内容(变化时打破缓存)

有⼀个函数叫DANGEROUS_uncachedSystemPromptSection()⸺仅从命名就可以看出,有⼈曾在这个地⽅吃过苦头。

3.10 Computer Use:"Chicago"项⽬

Claude Code 包含完整的 Computer Use 实现,内部代号为 "Chicago",基于 @ant/computer use-mcp。它提供截屏捕获、点击/键盘输⼊和坐标转换。该功能被限制在 Max/Pro 订阅⽤⼾ (Anthropic内部⽤⼾有bypass通道)。

四、事件原因分析

4.1 直接原因:npmignore配置缺失

Source Map 泄漏的直接原因是 Claude Code 的发布流程中,没有将 .map ⽂件排除在最终npm 包之外。

Bun 的打包器默认会⽣成 source map,且默认会将其包含在最终产物中。正确的做法是:

1. 在 .npmignore 或 files 字段中明确排除 *.map

2. 或者在构建配置中显式关闭 source map ⽣成:sourceMap: false

3. 或者在 npm prepare 脚本中于发布前删除 .map ⽂件

Anthropic 显然在某个版本遗漏了这⼀步。

4.2 根本原因:构建流程安全意识缺⼝

Source Map 泄漏源码并⾮孤例。过去已有多家科技公司犯过类似错误(GitHub、Vercel、AWS 等均有过类似事件)。这⼀问题的根本原因是:

1. DevOps与安全意识错位:负责CI/CD的⼯程师通常专注于功能交付和安全扫描(如依赖漏洞 扫描),但对"源码产物暴露"这⼀⻛险维度认知不⾜

2. 内部测试vs外部发布的差异:Source Map在内部测试环境中是标准配置,⼯程师可能习惯于 内部构建产物,发布前忘记清理

3. Bun⽣态的相对不成熟:相⽐Node.js⽣态中Webpack/Rollup的⼴泛实践,Bun的默认⾏为 对部分团队可能仍较陌⽣

4. AI代码⽣成⼯具的双刃剑效应:Anthropic可能使⽤Claude Code⾃⾝来构建和发布Claude Code⸺这个循环中,⼯具本⾝没有主动提醒开发者"不要在⽣产包中包含Source Map

4.3 深层讽刺:安全系统被⾃⾝泄漏

这是本次事件最具戏剧性的⼀⾯。

Claude Code 拥有 Undercover Mode,这是⼀个专⻔设计⽤来防⽌内部信息意外泄漏的系统 ⸺它的全部意义就是:当Anthropic员⼯⽤Claude Code参与开源项⽬时,防⽌AI⽆意中透露 Anthropic的内部信息。

Anthropic为了防⽌内部信息泄露到开源代码中,专⻔构建了⼀整套系统提⽰词级别的防护机制。 然后,他们把整个系统的源代码通过npm Source Map向全世界公开。

这套逻辑的反讽之处在于:如果Claude Code在Anthropic内部被⽤于编写开源项⽬代码,它本⾝ 需要Undercover Mode来隐藏⾝份⸺⽽现在,Claude Code的⽤⼾知道了这件事,并且可以分 析Undercover Mode的完整实现逻辑。

五、社区反应

5.1 GitHub镜像与克隆

截⾄2026年4⽉2⽇,GitHub上已出现数⼗个与此次泄漏相关的仓库:

Claude Code 源码泄漏事件深度调研报告

5.2 Clean-Room实现

Kuberwastaken的claurst项⽬尤其值得关注。它的⽅法论是:

第⼀阶段:⽤AI分析泄漏源码,产出详尽的⾏为规范(Specification),明确架构、数据流、⼯具 合约、系统设计⸺完全不复制源码。

第⼆阶段:⽤另⼀个AI Agent仅根据规范实现Rust版本⸺从不引⽤原始TypeScript。

产出的是符合Claude Code⾏为的Rust实现,⽽⾮原始代码的复制品。这借鉴了1984年Phoenix Technologies v. IBM案确⽴的**清洁房间⼯程(Clean Room Engineering)**法律先例,以及 1879年Baker v. Selden案确⽴的"版权保护表达,不保护思想"原则。

5.3 安全研究社区的反应

安全研究社区对此次泄漏的看法呈现两极:

担忧派:内部模型代号、未发布功能、Undercover Mode的完整逻辑⸺这些都是⾼价值的竞争情报。泄漏的速度之快(数⼩时内出现⼤量镜像)意味着这些信息已经⼴泛传播,任何竞争对⼿ 都可能在官⽅发布前数⽉就已掌握这些信息。

实操派:这类泄漏本质上是"安全通过隐匿实现"(Security through Obscurity)失效的⼜⼀次证明。如果Claude Code的核⼼竞争⼒能被⼀份Source Map⽂件彻底暴露,那说明产品护城河本⾝ 建⽴在不够坚固的基础上。

六、未来影响分析

6.1 对Anthropic的直接影响

已损失:

未来产品路线图提前曝光:竞争对⼿现在知道KAIROS、ULTRAPLAN、Buddy、Coordinator Mode等功能的存在和实现⽅向。

未发布模型信息暴露:Opus 4.7、Sonnet 4.8、Capybara的存在和部分技术细节已公开。

内部⼯程⽂化暴露:Undercover Mode的存在揭⽰了Anthropic⽤AI参与开源的策略,以及内部对信息泄露的⾼度关注。

品牌信誉受损:作为安全意识最强的AI公司之⼀,此类疏忽会被放⼤审视。

潜在⻛险:

如果泄漏的代码版本与Anthropic内部正在使⽤的版本存在差异,外部研究者可能发现 Anthropic内部版本中的更多未公开功能。

Source Map中还可能包含过期的或已被弃⽤的API密钥结构、内部⼯具链信息。

6.2 对AI⾏业DevOps实践的警醒

此次事件将成为AI⾏业DevOps实践的经典反⾯教材。预计将引发:

npm包发布前的强制Source Map审查:类似依赖安全扫描,团队将引⼊⾃动化检查确保⽣产 包中不包含Source Map。

AI代码⽣成⼯具的安全配置检查:类似Anthropic⾃⾝可以⽤Claude Code来构建Claude Code,业界需要防⽌这类⼯具在发布环节引⼊额外⻛险。

对"编译时⻔控"的重新认识:⼤量未发布功能存在于源码中但被feature gate剔除,这⼀模式 可能被重新审视⸺gate的存在本⾝就是信息泄露。

6.3 对开源社区的冲击:Undercover Mode争议

Undercover Mode引发了最深层的伦理讨论。

批评观点:Anthropic员⼯(或使⽤Claude Code的AI)以隐藏⾝份的⽅式向开源项⽬贡献代码 ⸺⽽开源项⽬的维护者并不知道他们接受的是AI贡献、是谁的AI⸺这破坏了开源社区的信任基础。开源软件的⽣命线是真实的⼈类贡献者和透明的协作关系。

辩护观点:Undercover Mode的存在恰恰说明Anthropic主动在防⽌AI⾝份暴露⸺这是在尊重开 源社区规范,⽽⾮欺骗。如果Claude Code明确表⽰"我是Anthropic的AI,请在PR描述中注明 Co-Authored-By",反⽽可能引发更强烈的社区反弹(部分开源项⽬明确禁⽌AI贡献)。

悬⽽未决的问题:Anthropic是否真的在⽤Claude Code进⾏实质性的开源代码贡献? Undercover Mode⽬前是仅供内部员⼯使⽤,还是也存在于公开版本中(但被dead-code elimination隐藏)?

6.4 Clean-Room实现浪潮

Kuberwastaken的Rust清洁房间实现可能只是⼀个开始。随着Claude Code源码的⼴泛传播,预计将出现:

Open Source竞品:基于Claude Code⾏为规范的开源实现(不侵权,因为仅复制思想/⾏ 为)。

Claude Code增强版:在泄漏源码基础上进⾏⼆次开发,添加⾃定义功能。

本地化Claude Code:将泄漏的源码适配为完全本地运⾏的版本(不依赖Anthropic API)。

6.5 对"AI编码⼯具"竞争格局的影响

Claude Code是当前最受欢迎的AI编程⼯具之⼀。此次泄漏揭⽰了其内部架构的复杂性⸺多Agent协调、KAIROS常驻模式、ULTRAPLAN远程规划⸺这些都表明Anthropic在AI编程⼯具上 的积累远超当前公开版本。

竞争对⼿现在可以确切知道Anthropic在做什么、以及他们认为什么是重要的产品⽅向。这对 Anthropic的竞争策略是⼀个实质性的情报损失。

七、总结与反思

7.1 这是⼀次教科书级别的"意外公开"

从技术⻆度看,这是⼀次纯粹的⼯程疏忽。Source Map是⾏业标准⼯具,npm是成熟平 台,.map排除是发布检查清单中的标准项⸺Anthropic在某次发布中遗漏了这⼀步,然后花了相 当⻓的时间(⾄少数⽉)才被发现。

讽刺的是,Source Map的设计初衷恰恰是为了提⾼软件质量和安全性⸺让⽣产问题的调试可追 溯。⽽正是这个"为了安全"的⼯具,制造了历史上最⼤规模的⼀次AI编程⼯具源码泄漏事件之⼀。

7.2 安全通过隐匿的终结

此次事件再次证明:将未发布功能隐藏在源码深处、通过编译时⻔控与外部隔绝,是⼀种脆弱的 安全模型。⼀旦源码泄漏,所有⻔控设计、隐藏代号、未发布功能的名称和路径⸺全部暴露。

对于Anthropic⽽⾔,KAIROS、ULTRAPLAN、Buddy、Undercover Mode这些精⼼设计的未发 布功能,在泄漏发⽣的那⼀刻,其存在本⾝就成了公开信息。

真正的问题在于:如果⼀个AI编程⼯具的核⼼竞争优势,能够被⼀份Source Map⽂件彻底暴露 ⸺那么这个优势究竟有多少是真实的?

7.3 最讽刺的细节

⼀个专⻔⽤来防⽌信息泄露的系统(Undercover Mode),其完整实现代码通过Source Map向全世界公开。

Claude Code⽤于为开源项⽬编写代码,它有⼀个系统提⽰词说"不要透露你是Anthropic的AI"。 Anthropic专⻔有⼀个Safeguards团队(成员包括David Forsythe、Kyla Guru)负责管理这些安全边界决策。

然后,他们把这⼀切连同完整的内部代号体系(动物命名法)、未发布模型路线图、以及所有 feature gate设计,都上传到了⼀个任何⼈都可以访问的npm注册表。

这不是⼀个技术漏洞。这是⼀⾯镜⼦。

7.4 未回答的问题

截⾄报告发布,以下问题仍有待Anthropic官⽅回应:

1. 泄漏持续了多⻓时间? Source Map何时被包含在npm包中、何时被移除(官⽅版本是4⽉1⽇ 后)?

2. 哪些版本的Claude Code受到影响?

3. Anthropic是否有任何内部检测机制本应发现这⼀问题?

4. Undercover Mode是否仅⽤于员⼯,还是也存在于公开版本中(通过编译时⻔控隐藏)?

5. Anthropic是否考虑对泄漏的GitHub镜像采取法律⾏动?

6. 此次泄漏是否会影响Anthropic对Source Map发布流程的重新审视?

参考资料 1. Chaofan Shou (@chaofan_), X (Twitter) — 原始发现推⽂ 2. Kuberwastaken/claurst — Claude Code泄漏技术分析报告(Kuber Mehta,2026年3⽉31 ⽇) 3. asgeirtj/system_prompts_leaks — GitHub仓库,35,717 stars 4. NanmiCoder/claude-code-haha — GitHub仓库,泄漏源码本地可运⾏版本 5. Ahmad-progr/claude-leaked-files — GitHub仓库,泄漏源码存档 6. npm注册表 @anthropic/claude-code 公开包数据 7. Anthropic官⽅⽂档 — Claude Code公开API与定价信息.

本报告基于公开可获取的源码镜像和技术分析⽂章撰写。所有技术细节均可通过公开渠道独⽴验 证。报告撰写时Anthropic尚未发布官⽅声明,部分分析基于源码推断。