乐于分享
好东西不私藏

51万行源码泄露!我在 Claude Code 里发现了7个隐藏功能

51万行源码泄露!我在 Claude Code 里发现了7个隐藏功能

51万行源码泄露!我在 Claude Code 里发现了7个隐藏功能

有人从 npm 包的 source map 里,逆向还原了 Claude Code 的完整源码。 结果发现:我们平时用的,只是冰山一角。


先说结论

Claude Code 是 Anthropic 官方推出的终端 AI 编程助手,也是目前最火的 CLI AI 工具之一。

最近,有开发者从 @anthropic-ai/claude-code 这个 npm 包的 source map(源码映射文件)中,逆向还原了完整的 TypeScript 源码

还原出来的代码量:51.4 万行,1987 个文件

结果令人震惊——Claude Code 里面藏着大量从未公开的隐藏功能,通过编译开关和用户类型进行门控,普通用户根本看不到。

今天就带大家扒一扒,这 51 万行代码里到底藏着什么。


项目长什么样?

先给大家一个基本概念:

项目
数据
代码行数
513,681 行
源文件数
1,987 个

 TypeScript 文件
目录数
340 个
内置工具
53 个
斜杠命令
87 个
终端 UI 组件
148 个

(基于 React + Ink)
编译开关
50 个

 feature flag
内部专属命令
24+ 个

整个项目用 Bun 作为运行时,TypeScript 编写,UI 层用的是 Ink(一个基于 React 的终端 UI 框架)。

简单说就是:把 React 写到了终端里


7 大隐藏功能

下面是重头戏。通过阅读还原后的源码,一共发现了 7 大类隐藏功能


隐藏功能 1:BUDDY —— 你的 AI 电子宠物

源码位置:src/buddy/

是的你没看错,Claude Code 里面藏了一个完整的虚拟宠物系统

就像电子宠物的终端版——你在写代码的时候,有一只小宠物陪着你。

18 种物种,每种都有 ASCII 精灵动画:

鸭子、鹅、猫、龙、章鱼、猫头鹰、企鹅、
乌龟、蜗牛、幽灵、六角恐龙、水豚、仙人掌、
机器人、兔子、蘑菇、果冻、胖猫

稀有度系统(类似游戏抽卡):

稀有度
概率
星级
普通
60%
非凡
25%
★★
稀有
10%
★★★
史诗
4%
★★★★
传说
1%
★★★★★

还有 1% 概率出现”闪光”个体,跟宝可梦的闪光一个意思,完全独立于稀有度。

最离谱的是防作弊设计:

每个人的宠物是通过 用户ID + 固定盐值 → FNV-1a 哈希 → Mulberry32 伪随机数生成器 确定性生成的。也就是说——你注定只能得到那只特定的宠物,改配置也没用

宠物还有五维属性:DEBUGGING、PATIENCE、CHAOS、WISDOM、SNARK,以及 6 种眼睛样式和 8 种帽子装饰(皇冠、巫师帽、光环等)。

编译开关:feature('BUDDY')

image-20260407160633359
image-20260407160732903

隐藏功能 2:KAIROS —— 永不关机的 Claude

源码位置:src/assistant/src/proactive/src/services/autoDream/

这个功能让 Claude 变成一个持久化助手——关掉终端它还在运行。

核心能力包括:

  • 跨会话持久运行:关闭终端后 Claude 依然在后台待命
  • 每日日志:自动在指定目录记录工作日志(按年/月/日归档)
  • **自动”做梦”**:超过 24 小时且有 5 个以上新会话时,Claude 会在后台自动启动一个子代理,分四阶段整合记忆

“做梦”四阶段:

Orient(定位)→ Gather(收集)→ Consolidate(整合)→ Prune(修剪)
  • Orient:扫描记忆目录,读取现有索引
  • Gather:收集新会话中的信息
  • Consolidate:将新信息合并到主题文件中
  • Prune:更新索引,清理过期内容

还有主动模式:没人说话的时候 Claude 会自己找活干,没活干就调用 SleepTool 休眠等待。

激活需要通过五层检查:编译开关 → 配置开关 → 目录信任 → GrowthBook 远程开关 → 全局状态激活。

编译开关:feature('KAIROS')


隐藏功能 3:ULTRAPLAN —— 云端深度规划

源码位置:src/commands/ultraplan.tsx

遇到特别难的问题怎么办?把难题直接甩给云端的 Opus 模型,让它独立研究最长 30 分钟。

工作流程:

你输入 /ultraplan <问题>
        ↓
创建远程 CCR 会话
        ↓
Opus 模型独立研究(最长 30 分钟)
        ↓
本地后台轮询等待
        ↓
在浏览器中查看/修改方案
        ↓
批准执行 或 传送回本地实施

还可以通过 “传送”(Teleport)功能,在本地和远程会话之间传输上下文,甚至用 Git Bundle 打包代码上下文一起传过去。

但这个功能外部用户永远用不了——源码里写死了:

isEnabled: () =>"external" === 'ant'// 永远为 false

"external" 永远不可能等于 'ant',这个判断永远是 false。很直白的代码歧视。

编译开关:feature('ULTRAPLAN')


隐藏功能 4:Coordinator —— 多 Agent 编排模式

源码位置:src/coordinator/

这个功能让 Claude 从”一个人干所有事”变成”一个指挥官 + 多个执行者”的团队模式。

角色分工:

角色
职责
可用工具
Coordinator(指挥官)
理解需求、拆解任务、综合结果
只有 3 个工具:派活、通信、停工
Worker(执行者)
具体代码操作
完整工具集(53 个)

指挥官自己不写代码,只负责拆任务和整合结果。Worker 在独立的子进程中运行,可以多个 Worker 并行。

标准工作流分四个阶段:

  1. Research(调研):多个 Worker 并行调查代码库
  2. Synthesis(综合):Coordinator 自己阅读发现,编写规格
  3. Implementation(实施):Worker 按规格做改动
  4. Verification(验证):Worker 测试改动

有一条核心铁律:禁止甩锅式委派。

系统提示中明确规定——指挥官不能写 “based on your findings, fix the bug” 这种模糊指令。每个给 Worker 的 prompt 必须包含具体的文件路径、行号、要做什么改动

因为 Worker 看不到指挥官的对话,每个 prompt 必须完全自包含。

编译开关:feature('COORDINATOR_MODE')


隐藏功能 5:26+ 隐藏命令

源码位置:src/commands.tssrc/commands/

源码中发现了大量从未在公开文档中出现的命令,分为两类:

被 feature flag 门控的命令:

命令
功能
开关
/buddy
宠物系统
BUDDY
/proactive
主动自主模式
PROACTIVE
/voice
语音交互模式
VOICE_MODE
/ultraplan
云端深度规划
ULTRAPLAN
/bridge
远程控制桥接
BRIDGE_MODE
/fork
子代理分叉
FORK_SUBAGENT
/workflows
工作流脚本
WORKFLOW_SCRIPTS

仅 Anthropic 内部员工可用的命令:

/teleport/bughunter/mock-limits/debug-tool-call/autofix-pr/perf-issue/share/subscribe-pr/commit-push-pr/agents-platform 等 24+ 个

这些命令通过 USER_TYPE === 'ant' 检查——只有 Anthropic 内部员工的账号才会被识别为 'ant' 类型。


隐藏功能 6:Bridge —— 远程遥控你的终端

源码位置:src/bridge/(33 个文件)

这个功能允许你从 claude.ai 网页或手机 直接操控本地终端里的 Claude Code。

核心能力:

  • WebSocket 实时双向通道
  • 远程发送消息、批准权限请求、查看输出
  • 支持中断操作、切换模型、设置思考 token 上限

两种运行模式:

  1. 独立模式claude remote-control):启动一个长运行的服务器
  2. REPL 内嵌模式/remote-control):在交互式会话中启动

安全方面使用了多层认证:OAuth 主令牌 + Worker 短期 JWT + 设备信任令牌,JWT 到期前 5 分钟还会主动刷新。

编译开关:feature('BRIDGE_MODE')


隐藏功能 7:50 个编译开关 + 远程门控

源码位置: 散布在整个代码库中(960 处调用)

这是最底层的控制机制。整个 Claude Code 使用了三层门控架构来精确控制功能可见性:

┌─────────────────────────────────────────┐
│  第一层:编译时开关 feature()              │
│  代码直接包含 or 完全移除                  │
├─────────────────────────────────────────┤
│  第二层:运行时用户类型检查                  │
│  'ant'(内部) vs 'external'(外部)       │
├─────────────────────────────────────────┤
│  第三层:GrowthBook 远程 A/B 测试          │
│  tengu_ 前缀开关,可动态开关功能            │
└─────────────────────────────────────────┘

第一层(编译时):通过 feature() 函数,在构建时决定某段代码是否被包含进最终产物。未启用的 feature,相关代码会被 Dead Code Elimination(死代码消除)完全移除,运行时连痕迹都没有。

第二层(运行时):通过 USER_TYPE 检查,区分内部员工('ant')和外部用户('external')。源码中有 372 处这样的检查点。

第三层(远程):通过 GrowthBook 平台的 tengu_ 前缀开关,可以远程动态控制功能开关。内部员工每 20 分钟刷新一次配置,外部用户每 6 小时刷新一次。

常见的 GrowthBook 开关包括:

开关名
功能
tengu_kairos
KAIROS 助手模式总开关
tengu_ultraplan_model
Ultraplan 使用的模型
tengu_ccr_bridge
Bridge 远程控制
tengu_session_memory
会话记忆功能
tengu_max_version_config
自动更新 Kill Switch

还有一些隐藏的 CLI 参数和环境变量可以覆盖默认行为。比如:

# 覆盖使用的模型
ANTHROPIC_MODEL=claude-opus-4-6 claude

# 禁用思考模式
CLAUDE_CODE_DISABLE_THINKING=1 claude

# 使用 AWS Bedrock 而非 Anthropic 直连
CLAUDE_CODE_USE_BEDROCK=1 claude

技术架构一览

给感兴趣的同学画一张架构全景图:

┌──────────────────────────────────────────────────────┐
│                    Claude Code 架构                    │
├──────────────────────────────────────────────────────┤
│                                                      │
│  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐ │
│  │  CLI 入口    │  │  REPL 循环   │  │  命令系统     │ │
│  │  main.tsx   │  │  replLauncher│  │  87 个命令    │ │
│  └──────┬──────┘  └──────┬──────┘  └──────┬───────┘ │
│         │                │                 │          │
│  ┌──────┴────────────────┴─────────────────┴───────┐ │
│  │              核心查询引擎 (QueryEngine)           │ │
│  │         工具调度 · 上下文管理 · 权限控制           │ │
│  └──────┬──────────────────────┬───────────────────┘ │
│         │                      │                      │
│  ┌──────┴──────┐      ┌───────┴────────┐            │
│  │  53 个工具   │      │   UI 层         │            │
│  │  Agent · Bash│      │   React + Ink   │            │
│  │  Read · Edit │      │   148 个组件     │            │
│  │  Search · ...│      │   终端渲染       │            │
│  └──────┬──────┘      └────────────────┘            │
│         │                                             │
│  ┌──────┴──────────────────────────────────────┐      │
│  │              服务层                           │      │
│  │  API · MCP 协议 · Analytics · AutoDream     │      │
│  │  Bridge · Scheduler · Memory · Telemetry    │      │
│  └─────────────────────────────────────────────┘      │
│                                                      │
│  ┌─────────────────────────────────────────────┐      │
│  │         隐藏系统(feature flag 门控)          │      │
│  │  Buddy · Kairos · Ultraplan · Coordinator   │      │
│  │  Bridge · Voice · Proactive · Workflows     │      │
│  └─────────────────────────────────────────────┘      │
└──────────────────────────────────────────────────────┘

对普通开发者意味着什么?

1. Claude Code 比表面看到的复杂得多

外部用户使用的基础功能,可能只是全部功能的 30% 以下。Anthropic 在内部测试了大量前沿功能——多 Agent 编排、持久化助手、深度规划、语音交互等。

2. “功能开关” 是 SaaS 产品的标配玩法

三层门控(编译时 + 用户类型 + 远程 A/B 测试)是成熟 SaaS 产品的标准做法。可以让内部员工先用起来,灰度发布,随时关闭出问题的功能。

3. 终端 UI 可以做得很精致

用 React + Ink 构建终端 UI,这个技术选型值得学习。Claude Code 的终端界面不仅有语法高亮、Markdown 渲染,还有 ASCII 动画(宠物精灵)、进度条、交互式选择器等复杂组件。

4. AI 编程助手的进化方向

从源码可以看出几个明显的进化趋势:

  • 单 Agent → 多 Agent 协作(Coordinator 模式)
  • 被动响应 → 主动执行(Proactive 模式)
  • 短期会话 → 持久化记忆(Kairos + AutoDream)
  • 本地 CLI → 云端协同(Ultraplan + Bridge)

如何运行还原后的源码?

如果你想自己玩一玩,项目已经支持本地运行:

# 需要安装 Bun >= 1.3.5 和 Node.js >= 24
git clone https://github.com/xianyu110/Claude-Code-Source.git
cd claude-code-source
bun install
bun run dev        # 启动 CLI
bun run version    # 验证版本

不过要注意——这是从 source map 逆向还原的代码,不是 Anthropic 官方开源。仅供学习研究,源码版权归 Anthropic 所有。


写在最后

Claude Code 是目前最强大的终端 AI 编程助手之一。通过这次源码还原,我们得以窥见它完整的技术面貌。

外部用户看到的: 基础 CLI、公开命令、简单的工具系统

冰山之下隐藏的: AI 电子宠物、永不关机的助手、云端深度规划、多 Agent 编排、远程遥控终端、语音交互、50 个功能开关…

这 51 万行代码告诉我们:现代 AI 工具远比表面看到的复杂,而真正的创新往往藏在那些尚未发布的功能里。


本文基于公开 npm 包的 source map 还原分析,仅供技术学习交流。

源码版权归原作者 Anthropic 所有。

推荐中转API

一站式接入各种AI服务,注册即送0.2刀 10万+客户的选择,18个月稳定运营! https://apipro.maynor1024.live