Claude Code 源码泄露后,Anthropic 到底暴露了什么
3 月 31 日,Claude Code 源码泄露突然刷屏了。
X、GitHub、Reddit、YouTube 很快跟着炸开,中文技术圈也迅速接上讨论。原因并不复杂。Anthropic 发布到 npm 的 @anthropic-ai/claude-code@2.1.88 包里,误带了一个 59.8MB 的 cli.js.map。source map 可以理解成“打包代码和原始源码的对照表”,原本是给开发者调试用的。这个文件一旦跟正式安装包一起发出去,外界就能顺着它把压缩后的代码大段还原出来。
于是,一款顶级 AI 编程工具的内部结构,突然被推到了聚光灯下。
先回答四个大家最关心的问题
1. 这次到底泄露了什么?
流出来的主体,是 Claude Code 的 CLI 和 agent runtime。CLI 就是命令行版应用本体,agent runtime 可以理解成 AI 在后台调度命令、工具、界面、任务、权限和记忆的执行系统。
拿到这些内容,已经足够看清它的产品骨架。source map 里一共能对上的 source 有 4756 个,单看 Claude Code 自己的 ../src/ 就有 1902 个文件,规模已经远超一个轻薄的小工具。暴露出来的也不只是几段函数,而是命令系统、终端界面、工具调用、权限规则、任务分工和后台状态一起露了出来。
2. 普通用户需要担心自己的数据吗?
目前能确认的范围里,没有看到模型权重外流,也没有证据显示用户数据跟着这次事故一起泄露。
这不代表 Anthropic 可以轻松过关。source map 出现在线上发布包里,本身就是工程治理问题,已经足够难看。只是从影响层级看,它和“数据库泄露”不是一类事故。
3. 只要拿到源码,就能复刻一个 Claude Code 吗?
还差得很远。
外界这次看到的,是本地客户端和运行逻辑。后面还有几层关键能力没有暴露出来,包括模型本身、Anthropic 后端服务、远程 session 控制面、计费体系、灰度系统、线上反馈数据。这些东西叠在一起,才构成今天的 Claude Code。
所以,行业会抄作业,会学得更快,但不会因为一份 source map,立刻拿到一个等价替代品。
4. 开发者为什么会对这次泄露这么兴奋?
因为这次露出来的内容,刚好暴露了 Claude Code 最核心的竞争力,也就是它到底怎么把 agent 真正 harness 起来,变成一个能持续干活的系统。
模型会写代码,这件事大家已经知道。难点在后面这一层:怎么让它连续工作几十分钟、调用一堆工具还不失控、在公共仓库里别乱说话、聊久了还能把上下文收拾干净。Claude Code 的源码,恰好把这些问题的工程答案摊开了一大块。
大家关心的也是这三点:它怎么分工、怎么防失控、怎么把长任务执行好。这三个问题,源码里都能看到非常具体的实现痕迹。

从源码里能确认的六件事
1. Claude Code 已经像一个会工作的操作台
把 source map 里的 ../src/ 单独拎出来看,目录规模很夸张:
-
• 564个utils -
• 389个components -
• 207个commands -
• 184个tools -
• 130个services -
• 104个hooks -
• 96个ink相关终端 UI 文件 -
• 31个bridge相关文件
这些数字背后的意思并不抽象。Claude Code 里面有命令系统,有终端界面,有工具层,有服务层,也有桥接远程能力的部件。它要处理的事情,已经包括读文件、改文件、跑命令、展示状态、切换任务、接远端结果。
components 和 ink 更接近终端里的界面层,负责菜单、进度条、状态卡片这些东西;commands 是用户能直接输入的命令;tools 是 Claude Code 真能调用的手脚,比如读文件、搜代码、执行 shell;services 像后勤系统,负责状态和流程;bridge 则像连接本地与远端能力的桥。
看到这套结构时,很容易明白 Claude Code 为什么用起来不像单纯聊天。它更像一个把 AI 塞进工作台里的产品:你在里面提需求,它在里面拆任务、翻文件、调工具、汇报进度。
2. 它在内部把 AI 拆成了一组分工小助手
这里的 agent,可以理解成能独立接任务的小助手。源码里的 builtInAgents 和 runAgent 很清楚地显示,Claude Code 内部已经有成体系的 agent 角色,至少包括 general purpose、explore、plan、verification、guide。
general purpose 像是一个通用助手,负责处理用户需求,调用其他 agent 去完成任务。explore 像去摸清现场的侦查员,plan 负责把事情拆开,verification 盯结果有没有跑偏,guide 则承担引导和收束的角色。拆开来看,几乎就是一支小型协作队伍。
工具调度层也配好了对应的执行方式。读文件、搜索、抓网页这类动作可以并发跑,默认并发上限是 10。几件互不冲突的事可以同时做,不必一件做完再做下一件。这样一来,Claude Code 在处理复杂任务时,就能同时去看项目入口、报错日志和相关文件,再把结果汇总回来。
这个设计对用户体验影响很大。你看到的表面现象,是它“反应快了一些”;背后的原因,是它把原本需要排队的一串动作,变成了可并行的多条线。
3. 它知道聊天会越聊越乱,所以专门做了“收纳系统”
这一部分是源码里很有产品味的一层。microCompact 用来压缩长对话和大段工具输出,SessionMemory 用来提炼阶段性记忆,toolResultStorage 会把过大的工具结果落盘,autoDream 会在满足阈值后做后台整理。
SessionMemory 里的 session,就是一次连续工作过程;toolResultStorage 的意思,是把测试日志、搜索结果、命令输出这些大块内容单独存起来,不全塞进聊天上下文里;autoDream 则更像一个“会自己做梦”的模式。用户停下来之后,它会把前面零散的对话、文件改动、命令结果重新收拢、压缩、归档,像人睡觉时把白天的信息重新整理进记忆里。
autoDream 的默认门槛写得很具体:至少间隔 24 小时,并累计 5 个 session 之后才会触发。界面里还有 DreamTask 这样的状态提示,说明“记忆整理”在 Claude Code 里已经是一个明确的产品功能,不是藏在后台的隐形动作。

这套机制读起来很像“工作到一半先睡一觉,醒来脑子更清楚”。聊天框里留摘要,超长材料放到外面,隔一段时间做一次归档。
4. 它已经在往“人走开了,活还继续干”那个方向走
源码里另一个很重要的部分,是远程任务和异步工作。/ultraplan 会拉起远程 session,超时时间写成了 30 * 60 * 1000,也就是 30 分钟级别。这里的 session 可以理解成一次完整工作回合。/ultrareview 也走远程路线。还有 /bridge、/remote-setup、push notification、cron 调度、GitHub webhook 订阅这些拼图。
push notification 是推送提醒,cron 是定时任务,webhook 是外部事件触发的自动通知。把这些能力连起来看,Claude Code 已经不只是盯着你当前这个终端窗口工作,它在往“后台也能继续跑”的方向发展。
把这些东西放到一起,Claude Code 想去的地方就很清楚了:本地终端只负责一部分即时协作,后台还要能接长耗时任务,远程 session 还要能接力,最后再通过通知把结果送回来。
对用户来说,这类变化最实际的意义,是你不必一直守在黑底白字的界面前。你交代一个大任务,它可以先在后台做计划、做检查、做整理,等关键节点再回来叫你。
Claude Code 想去的位置,已经超过了“你敲一下,它回一句”的命令行伙伴。它在往一名能排队处理任务、能接力推进流程、能异步带着结果回来的 AI 工作者靠近。
5. 它对权限和“说错话”这件事管得非常细
泄露源码里信息密度最高的一部分,是权限治理。规则解析、bash 分类、危险模式、路径验证、managed policy、project settings、local settings、user settings,都有独立实现。
这些词可以简单理解成三层规矩叠在一起:项目级设置、当前环境设置、用户级设置,再加上一层统一管理策略。什么命令危险、哪些路径能碰、谁的设置优先级更高、项目和个人的边界在哪里,代码里都做了拆分。
最耐人寻味的是 Undercover Mode。可以把它理解成“公开场合自动收口模式”。从代码逻辑看,当内部用户在公开仓库或开源仓库里工作时,系统会额外约束提交信息和 PR 描述,也就是代码平台上的合并请求。它要避免写出内部模型代号、内部项目名、内部工具线索,也避免直接暴露 AI 身份。代码里还看不到一个醒目的强制关闭入口。
这段实现很能说明 Anthropic 在防什么。它防的是模型参与公共协作时,把组织内部信息顺手带出去。这已经是企业级 AI 工具才会遇到的麻烦。对企业用户来说,这一层甚至比“会不会写代码”还关键,因为写得再好,一旦边界收不住,工具就不敢放进正式流程。
6. 它连宠物系统都做了,而且做得很认真
社区里最出圈的隐藏内容,基本就是 /buddy。从源码规模看,它已经长成一套完整的电子宠物系统。它有 18 个 species,也就是 18 种形象类型;有 5 个 rarity,也就是 5 档稀有度;还有 1% 的 shiny 概率,可以理解成闪光特别款。再往下,还有帽子、眼睛、性格、详细属性统计这些配置,完整度已经很高。
更有意思的是,它不是每次随机胡来。buddy/companion.ts 里的实现显示,这只“宠物”会根据用户 ID 做固定映射。换句话说,你拿到的 buddy 更像专属于你自己的那一只,带点长期陪伴的意思。useBuddyNotification.tsx 里还写了 2026-04-01 到 2026-04-07 的 teaser 窗口,发布时间点和愚人节卡得很准。
这一设计让 Claude Code 这件产品忽然有了表情。一个还在高速迭代的 CLI 工具,已经开始认真经营彩蛋、稀有款、身份感和分享欲。旁边还有 /stickers 命令,点进去就是 Claude Code 的贴纸周边页面。
它和编码效率没有直接关系,却很能说明团队已经把它当成长线产品在做。宠物系统的作用,也不只是卖萌。它会降低工具的冷硬感,让用户更愿意截图、分享、比较稀有度,慢慢长出一层社区气质。当一个产品开始认真设计“我和它之间的关系”,团队的视野往往已经从开发者圈层往外走,开始考虑更广泛的普通用户。

这件事最后会留下什么
1. 行业会学到一整套现成思路
这次泄露把一批原本只能靠猜的设计细节公开了:分工 agent 怎么接进 CLI,工具怎么分并发和串行,长上下文怎么整理,权限怎么做成系统,远程任务怎么接上来。这些答案会直接流进下一波 AI 编程产品里。
无论是对创业团队、中腰部产品,还是互联网大厂,这份样本都很难得。你不需要从零猜一遍“顶级产品大概会怎么做”,现在已经有一套最先进的参考答案摆在眼前。
2. Anthropic 不会因为这一次就被“抄空”
源码能教会别人架子,教不会别人整套线上系统。模型能力、远程服务、计费、反馈数据、灰度策略、产品细节,仍然是高门槛。Claude Code 的护城河会变薄一层,但远没有薄到一戳就穿。
换句话说,别人现在更容易学会“怎么搭一台像样的机器”,离“把这台机器跑得一样顺”还有不短距离。
3. 最需要吸取教训的,是工程治理能力
最丢分的地方,就是 source map 进入线上发布包这件事本身。一个把 agent 权限、上下文整理、远程执行都做到这个复杂度的团队,最后栽在发包链路上,这会直接伤到它的工程信誉。
外界以后会更认真地追问:你连发布流程都没收好,企业级托管、权限控制和远程执行的安全边界,到底能不能持续守住?
写在最后
Claude Code 这次泄露,让外界第一次看清了一个顶级 AI 编程产品的内部骨架。热搜会过去,但是留下来的东西更实在:今天的 AI 编程竞争,已经进入系统工程阶段。
能长期跑任务、能管理权限、能整理记忆、能把人和远程执行连接起来的产品,才会慢慢拉开差距。
这件事不会只停在一场泄露新闻里。它更像一个倒计时信号: 当顶级产品的工程骨架被摊开之后,大批“自主研发”的 AI coding agent 和相关产品,接下来大概率会前仆后继的推出来,就看谁先来了
。
如果这篇文章对你有启发,欢迎关注,顺手点个赞👍、点个推荐💗,也欢迎转发给身边的朋友。
后面我还会继续写 AI 相关,如果你有什么想看的,欢迎下方留言。
今天就先写到这,我们下次再见~
夜雨聆风