微信扫码
添加专属顾问
我要投稿
揭秘Claude Code源码泄露背后的隐藏功能,带你了解官方从未公开的内部系统。核心内容: 1. Claude Code公开版本仅为完整功能的60%,隐藏16个主要特性标志 2. 独家解析KAIROS等内部系统的工作机制与设计理念 3. 源码中发现的19个仅内部可见命令及其潜在用途
当全网都在转发"51万行代码泄露"的时候,我把1884个源文件逐一拆开读了。这篇文章不讲新闻,只讲别人没告诉你的东西。
今天的事你们应该都知道了。
Solayer实习生Chaofan Shou发现Anthropic在npm发布Claude Code时,把 cli.js.map 这个59.8MB的source map文件一起打包了进去。Source map本来是用于调试的——它能把压缩后的代码还原成原始源码。于是,Claude Code的全部TypeScript源码就这样被完整还原了出来。
Chaofan Shou在推特上公开了Claude Code源码泄露事件,推文获得78万次浏览,附带终端截图展示了还原出的完整源码目录结构
半小时内GitHub上的克隆仓库star破5k,到现在各种分析文章已经满天飞。量子位说"51万行代码,全网狂欢",36氪说"下一个王牌提前曝光",智东西说"全网疯传"。
但我翻了一圈,发现绝大多数文章都停留在架构概览的层面——"40多个工具"、"QueryEngine.ts有4.6万行"、"还有个电子宠物"。能让一个深度用户真正获得新认知的内容,几乎没有。
所以这篇文章的定位很明确:我不重复别人已经讲过的,只写我在源码中发现的、目前全网还没有人讲清楚的东西。
我逐文件审读了核心模块的1884个TypeScript文件(118,442行)。以下是调研结果。
Claude Code官方产品界面:macOS终端中运行的Claude Code,展示了像素风吉祥物、Opus模型标识和代码库分析能力
这是我认为整个源码中最重要的发现,但几乎没有文章讲清楚。
Claude Code的代码库里有一套基于Bun打包器的编译时特性标志系统(Feature Flags)。它的工作方式不是运行时的 if/else 判断,而是在编译阶段直接从产物中物理删除不需要的代码分支:
我在源码中一共找到了 16个主要特性标志:
这意味着什么?你从npm安装的Claude Code二进制文件中,上述所有功能的代码连一个字节都没有。你看到的、用到的,是一个被大幅裁剪的子集。
与此对应,源码中有 19个命令被标记为仅内部可见(isAntOnly: true),它们在你的 /help 列表里永远不会出现。
这不是Bug,这是设计。Anthropic把Claude Code做成了一个单一代码库、多产品形态的平台——同一份源码,通过编译时开关,生成面向不同用户群的不同版本。
冰山隐喻:水面上的CLI终端仅是"Public Version 60%",水面下隐藏着KAIROS、Coordinator、Swarm、Voice、Bridge、Dream等庞大的内部系统
各家媒体都提到了KAIROS,但几乎都只是一句话带过"一个持续运行的助手模式"。源码里的信息远比这丰富。
KAIROS在代码中被定义为 "Assistant Mode",它和你日常用的交互模式有本质区别:
交互模式:你提问 → Claude回答 → 等你下一个问题。这是一个"被动响应"的循环。
KAIROS模式:Claude持续运行,主动监控你的开发环境变化,在它认为有必要时主动介入。
从源码结构看,KAIROS集成了:
用人话说:KAIROS是一个7×24小时在线的AI开发伙伴。它不等你问问题——它自己发现问题、自己决定是否需要行动、自己执行。这已经不是"辅助编程"了,这是"自主编程"的起点。
而且更值得注意的是,KAIROS和另一个特性标志 PROACTIVE 经常一起出现。SleepTool——一个让AI主动"睡眠等待"的工具——也只在这两个标志下启用。这暗示了一个完整的"主动式Agent"产品形态正在内部测试。
Anthropic官方架构图:Claude Code自主Agent的系统管线——主Agent发起工具调用,经Transcript分类器(允许/拒绝)和注入探测器层层过滤,子Agent通过递归Handoff分类器评估
别人讲QueryEngine只说它"很大、很复杂"。我来告诉你它具体在做什么。
Claude Code面对的核心工程挑战是:在有限的上下文窗口里,塞进尽可能多的有效信息,同时花尽可能少的钱。
它的解决方案是一套我称之为"三层压缩+一层缓存"的Token管理体系。
Snip压缩(预防性):对话进行中,系统持续监控Token用量。当早期的工具输出(比如你20轮前读的一个文件)不再被近期对话引用时,它会被静默替换成一行摘要。关键点:近期上下文绝对不动,只压缩时间上远离当前对话焦点的内容。
自动压缩(阈值触发):当总Token用量达到 有效上下文窗口 - 13,000 这个魔法数字时,系统发起一次独立的LLM调用,将整段对话历史压缩成结构化摘要。这里有个精妙的工程细节——如果连续3次压缩每次只回收了不到500个Token,压缩器会自动禁用,避免陷入"压了又压,但压不出东西"的死循环。
响应式压缩(紧急兜底):如果API返回 prompt-too-long 错误,立刻执行紧急压缩,同时缩减 maxOutputTokens 预算。最多重试3次。
这是真正省钱的地方。源码中的成本计算公式:
× 0.1——缓存读取只需十分之一的价格。所以Claude Code会在消息序列中精确插入"缓存断点"(cache breakpoints),确保系统提示、早期上下文等稳定内容被API侧缓存。后续每轮对话复用这些缓存,输入成本直降90%。
还有一个"微压缩"机制:当你用FileEdit修改了某个文件,系统会精确定位之前FileRead读取该文件的工具结果,将其删除。不是粗暴地清理所有旧读取,而是只删除与被修改文件对应的那一条。这种精确度需要在工具结果上维护文件路径索引。
全网都在说"40多个工具",但没人给出完整清单。我数了,tools/ 目录下有 44个独立工具模块。以下是完整列表和分类:
BashTool, FileReadTool, FileWriteTool, FileEditTool, GlobTool, GrepTool, AgentTool, WebSearchTool, WebFetchTool, SendMessageTool, TodoWriteTool, AskUserQuestionTool, NotebookEditTool
MCPTool, LSPTool, SkillTool, ListMcpResourcesTool, ReadMcpResourceTool, McpAuthTool, ToolSearchTool, EnterPlanModeTool, ExitPlanModeTool, EnterWorktreeTool, ExitWorktreeTool, TaskCreateTool, TaskGetTool, TaskListTool, TaskOutputTool, TaskStopTool, TaskUpdateTool, TeamCreateTool, TeamDeleteTool, SyntheticOutputTool, BriefTool, ConfigTool, RemoteTriggerTool, ScheduleCronTool, PowerShellTool
SleepTool(PROACTIVE/KAIROS), REPLTool(ANT专用VM沙箱), 等
延迟加载的设计逻辑:如果把44个工具的JSON Schema全部塞进系统提示,光描述就要吃掉上万Token。所以模型初始只看到核心工具,当对话涉及特定场景时,由 ToolSearchTool 按关键词搜索并动态注入相关工具的Schema。工具的prompt描述会被缓存,避免重复加载。
BashTool的安全实现(bashSecurity.ts)是我在整个代码库中最佩服的工程。它不是用正则匹配危险命令那么粗暴——它实现了一个迭代固定点算法来解包嵌套命令:
除此之外,它还有:Zsh特定危险命令拦截(zmodload、ztcp、zpy),环境变量劫持检测(BINARY_HIJACK_VARS 列表防止PATH注入),以及用户可配置的命令排除名单。
这套安全体系的设计哲学是故障关闭(fail-closed)——任何检查环节出错,默认拒绝执行,而不是放行。
这是我在代码库中最意想不到的发现。各家媒体都没有覆盖到。
tasks/DreamTask/ + services/autoDream/ 实现了一套AI"做梦"系统。
机制:当你关掉Claude Code去睡觉时,如果满足以下条件——距离上次Dream超过24小时、累积至少5个对话Session、当前无活跃会话——Claude Code会在后台静默启动一个受限子Agent。
这个子Agent拥有只读权限。它的工作是回顾你近期的所有对话历史,提取关键信息——你的编码偏好、项目架构决策、反复出现的模式、你纠正Claude的地方——然后写入 ~/.claude/projects/<项目路径>/memory/ 下的Markdown文件。
下次你启动Claude Code,这些Dream产出的记忆会被自动加载进上下文。
这不是session持久化,这是知识蒸馏。 Claude Code在你不在的时候,主动从历史交互中提炼对你的理解。用得越久,它越懂你。
这个设计和人类的睡眠记忆巩固机制有异曲同工之妙——白天(使用时)积累经验,夜晚(空闲时)整理巩固。命名为"Dream"绝非偶然。
AI做梦:夜晚的房间里,一台终端屏幕微微发光,半透明的记忆碎片——代码片段、文件图标、抽象的记忆节点——像梦境中的烟雾般向上飘散,AI在你不在时默默整理和巩固记忆
Dream只是记忆系统的一部分。完整的记忆架构有四层:
第一层:Session Memory(会话内记忆)。对话过程中,后台周期性地fork一个子Agent,从当前对话中提取值得记住的信息。触发条件包括累积Token超阈值、工具调用次数超阈值等。这一层解决的是"长对话中不丢失关键上下文"的问题。
第二层:Memdir(项目记忆目录)。每个项目维护一个 MEMORY.md 入口文件(硬限200行/25KB),指向结构化的记忆目录。分个人记忆和团队记忆两类。源码中的指导注释写道:"两个目录都已存在——直接用Write工具写入,不要运行mkdir或检查是否存在。" 这种对Agent行为的预期管理很有意思。
第三层:Magic Docs(AI维护的活文档)。在任何Markdown文件开头写上 # MAGIC DOC: [标题],Claude Code就会在后台通过受限Agent(只有FileEdit权限)定期更新这个文件的内容。文档会随项目演进而自动演进——你不需要手动维护,AI替你做。
第四层:Team Memory Sync(团队知识同步)。通过REST API在团队成员间同步共享知识。技术实现上有几个精妙之处:Delta更新(只上传SHA-256哈希值变化的条目)、秘密扫描器(上传前检测API Key等敏感信息)、单条目250KB限制、PUT请求体200KB限制(保持网关容限以下)、服务器优先的冲突解决策略。
这四层从短期到长期、从个人到团队,构成了一套完整的AI知识管理系统。这在当前所有AI编程工具中是独一无二的。
bridge/ 目录33个文件,核心文件 bridgeMain.ts 有115KB,replBridge.ts 有100KB。这不是一个"远程查看"功能,这是一套企业级的远程控制系统。
从代码结构看,Bridge经历了三代架构:
第一代(轮询式):客户端定期调用 Environment API 查询CLI端状态。简单可靠,但延迟高。
第二代(WebSocket REPL):建立持久WebSocket连接,实现双向实时通信。replBridge.ts 实现了完整的REPL桥接协议——不是简单的消息转发,而是把远程终端的完整交互状态同步到客户端。
第三代(直连模式):通过 cc:// URL Scheme 直接建立端到端连接,跳过中间服务器。最低延迟。
认证使用JWT,配有自动刷新调度器——Token过期前5分钟主动刷新,失败重试3次。这套认证逻辑的鲁棒性是生产级别的。
源码中还有 commands/mobile/ 目录。一个独立的移动端应用正在开发中。
这是另一个被严重低估的发现。Claude Code不是在做"一种"多Agent方案,而是同时在推进三条不同的技术路线:
coordinator/ 目录实现的经典Leader-Worker模式。Leader理解全局任务、拆分子任务;Worker在独立的Git Worktree中并行执行。源码注释中有一条核心设计原则:
"Don't delegate understanding to workers"
不要把理解工作委托给工人。
Leader负责所有需要全局视角的决策。Worker只做边界清晰的执行工作。完成后Leader审核合并。
utils/swarm/ 实现了一个完全不同的模型——Agent之间是对等关系,可以互相发消息、共享发现、协同决策。它甚至支持通过tmux分屏来可视化多个Agent的并行工作,并实现了权限状态的跨Agent同步。
tasks/InProcessTeammateTask/ 是最轻量的方案——在同一个Node进程内运行多个"队友"Agent,通过Mailbox(邮箱)机制实现隔离通信。为防止内存溢出,硬限每个队友最多50条消息。
三条路线覆盖了从重量级(Coordinator,跨进程、跨分支)到中量级(Swarm,跨终端)到轻量级(InProcessTeammate,进程内)的全部场景。Claude Code的终极形态不是一个AI助手,而是一个可弹性伸缩的AI团队。
Anthropic官方多Agent研究系统架构图:Lead Agent(编排器)居中,配备搜索工具、MCP工具和记忆模块,并行派发多个Search子Agent各自迭代搜索,Citations子Agent收集引用,最终汇总为完整报告
Anthropic的"安全优先"不只是公关话术。在源码中,安全是一个贯穿所有模块的系统性工程。
第一层:权限三级制。每个工具操作经过 Allow / Deny / Ask 三级判断。规则来源有四个优先级:settings配置 > CLI参数 > 命令参数 > 会话状态。
第二层:拒绝追踪。连续拒绝3次或累计拒绝20次同一工具,系统自动触发"策略回退"——让Claude换一种方式完成任务,而不是反复申请。
第三层:Hook拦截。PreToolUse / PostToolUse 钩子允许在工具执行前后注入自定义逻辑。企业可以用这个实现私有安全策略。
第四层:AI分类器辅助。TRANSCRIPT_CLASSIFIER 标志暗示一个独立的AI分类器参与权限决策。设计原则:分类器不确定时,默认回退到用户确认(故障关闭)。
第五层:Bash沙箱。25项安全检查 + 迭代固定点算法 + Zsh防御 + 环境变量劫持检测(前文已详述)。
第六层:文件系统防护。路径遍历检查(防 ../../ 攻击),符号链接防护(O_NOFOLLOW | O_EXCL 标志),内置技能文件提取时的0o700/0o600权限设置。
第七层:秘密扫描。Team Memory上传前的秘密检测(API Key、密码、Token),防止通过团队同步泄露敏感信息。
在 commands/ 目录中,我找到了所有内部命令和未公开功能:
/thinkback —— 53KB的年度回顾动画。展示你过去一年在Claude Code中的使用统计,以动画可视化呈现。
/ultraplan —— 将复杂规划任务卸载到远程浏览器会话。支持30分钟异步轮询。这说明Anthropic在探索"用浏览器增强AI规划能力"的方向。
/voice —— 语音交互模式。需Anthropic OAuth认证,调用 voice_stream 端点。你可以对着终端说话让Claude Code写代码。
/fast —— Opus 4.6专用的快速模式,自动切换模型配置。
/effort —— 动态调整AI的"思考力度"。简单任务用低effort加速响应。
/bughunter —— 自动化Bug搜索工具。
/ctx_viz —— 上下文窗口的Token分配可视化(已禁用)。
/vim —— 在终端AI工具里实现Vim键绑定。
/stickers —— 链接到Claude Code实体贴纸商店。
/passes —— 朋友推荐奖励系统。
/good-claude —— 完全禁用的空命令。isEnabled: () => false, isHidden: true。没有人知道它曾经做什么。
/teleport —— 禁用但代码仍在。从命名推测涉及跨设备的会话传送。
各家媒体都提到了这个,但我补充几个源码中的细节。
buddy/ 目录实现了一套完整的虚拟宠物系统,由两部分组成:
Bones(骨架):确定性生成的外观属性。你的用户ID通过哈希映射到18种物种之一,稀有度从Common(60%)到Legendary(1%)不等。同一个用户永远生成同一只Buddy。
Soul(灵魂):学习形成的个性属性。随使用积累而逐渐形成独特性格。
这个功能零功能性贡献,纯粹是情感化设计。但它透露了Anthropic产品团队的一个信念:开发者工具不必冰冷。
终端里的电子宠物:一只圆滚滚的陶土色小生物安静地住在绿色终端文字之间,屏幕上显示着"Hello! I am your friendly terminal pet"——开发者工具里藏着的一点温度
Claude Code当前有18个内置技能(bundled skills),包括 remember(记忆管理)、verify(代码验证)、debug(调试)、stuck(卡顿恢复)、batch(批处理)、claudeInChrome(浏览器集成)、skillify(操作转技能)、scheduleRemoteAgents(远程Agent调度)等。
插件命名空间为 {name}@{marketplace},支持多市场源。后台安装管理器实现了完整的生命周期:安装进度追踪(pending → installing → installed → failed)、市场源自动reconcile、缓存刷新和MCP重建。
MCP集成支持 7种传输方式:stdio、SSE、HTTP、WebSocket、SDK、claudeai-proxy、IDE特定变体。配置作用域有7层:local、user、project、dynamic、enterprise、claudeai、managed。
这不是CLI工具该有的插件架构复杂度。这是一个平台的基础设施。
简单列几个数字:
components/ 目录:146个组件文件hooks/ 目录:87个自定义Hookprint.ts:212KB,单文件负责全部终端渲染design-system/)DeepImmutable<AppState> + 类Zustand的Store接口)Claude Code在终端里重新发明了一套前端应用框架。
Claude Code集成了GrowthBook做A/B测试和灰度发布。用户维度包括:用户ID、设备ID、平台、组织、订阅类型。
这意味着不同用户看到的Claude Code行为可能不同——某些功能在灰度中,某些交互模式只对特定用户群开放。
源码中有个函数名很诚实:getFeatureValue_CACHED_MAY_BE_STALE()——"获取特性值(缓存的,可能过期的)"。优先保证速度而非一致性。
读完11.8万行代码,几个核心判断:
Claude Code不是一个编程助手,它是一个AI操作系统的雏形。 10种运行模式、44个工具、三条多Agent技术路线、四层记忆系统、七层安全防护、平台级插件架构——这个复杂度远超一个"辅助写代码"的终端工具。
你用的版本只是冰山一角。 16个特性标志门控了大量内部功能。KAIROS、Coordinator、Swarm、UltraPlan、Voice——这些都不在你的安装包里。公开版大约只展现了完整能力的60%。
"AI做梦"是一个值得关注的范式。 DreamTask/AutoDream代表的不仅是一个功能特性,而是一种产品哲学的转变——从"你用时它才工作"到"你不用时它也在学习"。这是从工具到伙伴的临界点。
安全投入是真实的。 Bash沙箱的25项检查、迭代固定点算法、秘密扫描、故障关闭设计——这种程度的安全工程在同类产品中找不到第二家。Anthropic的"安全优先"至少在代码层面是言行一致的。
插件生态在爆发前夜。 7种MCP传输方式、7层配置作用域、多市场源支持——基础设施投入的规模意味着Anthropic对生态是非常认真的。
Claude Code架构全景图(逆向工程):外层Harness运行时Shell包含Skills层(工具/提示/文件系统)、Agent核心循环(思考→行动→观察)、增强模块(子Agent/钩子/记忆)、底层可插拔模型层——一个完整的AI操作系统雏形
最后说一点个人观感。
在读了1884个文件之后,让我记住最久的既不是精巧的Token优化,也不是雄心勃勃的多Agent架构——而是 buddy/ 目录。
一个CLI工具里藏着一套虚拟宠物系统。18种物种,从Common到Legendary。确定性生成,不可交易,纯装饰。
它对性能没有任何贡献,对功能也没有任何增益。它唯一的作用是让一个终端窗口里多了一点温度。
有人在写工程代码的时候,停下来想了想怎么让这个工具更可爱一点。我觉得这个细节说明的东西,比任何架构图都多。
本文基于Claude Code 0331版npm source map泄露的完整源码,所有结论均来自逐文件代码审读。如有技术细节偏差,欢迎评论区指正。
觉得有收获?点个「在看」,转发给你的开发者朋友。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-04-01
OpenCode,国内AI自主编程(Agentic Coding)的新选择
2026-03-31
全网疯传fork!刚刚,Claude Code源代码泄露被开源了
2026-03-31
刚刚,Claude Code开源了!51万行代码,全网狂欢
2026-03-31
开源 Claude Code 工程级开发插件 Superpowers 完整上手攻略
2026-03-31
CoPaw深度解析:源码架构和功能实践
2026-03-30
企业微信正式开源CLI ,AI可调用7大能力
2026-03-30
龙虾绝配:Qwen 3.5 27B!跑在家里,成本为 0
2026-03-30
Hermes Agent 出来了,聊聊它凭什么跟 OpenClaw 掰手腕
2026-01-30
2026-01-27
2026-01-12
2026-01-29
2026-01-27
2026-01-21
2026-01-28
2026-01-06
2026-01-23
2026-01-26
2026-03-17
2026-03-13
2026-03-02
2026-02-05
2026-01-28
2026-01-26
2026-01-21
2026-01-21