v2.1.88 · TypeScript · 源码分析

Claude Code 源码解密

当你输入一条消息,背后究竟发生了什么?

代理循环、40+ 工具、多代理编排、权限系统、提示词缓存优化、未发布的隐藏功能……全部从 npm 包反编译的 TypeScript 源码中逐行解读。

0
源文件
0
内置工具
0
斜杠命令
0
千行代码
01

代理循环

从按键到渲染响应,逐步追踪源码。

needsFollowUp → loop1Input2Prompt3Context4API5Stream6Tools7Loop8Render9Await

观看 Claude Code 如何排查一个 API 500 错误

1用户输入
src/components/TextInput.tsx

用户在终端输入消息,Ink 的 TextInput 组件捕获键盘事件

claude-code
$
支持 Vim 模式、历史搜索、多行编辑。非交互模式从 stdin 管道读取。输入立即写入转录文件(recordTranscript, line 451),支持 --resume 断点恢复。
1/9

架构全景

click to explore source files

🎯
入口层
entrypoints/ · bootstrap/ · 8 files
init.ts 初始化序列:OAuth、代理设置、mTLS、遥测预连接
🧠
查询引擎
QueryEngine.ts · query.ts · 785KB max
核心代理循环:消息提交 → API 调用 → 工具编排 → 流式输出
🛠
工具系统
tools/ · 149 files
40+ 工具实现,插件式注册,Zod 验证,并发分批执行
🔒
权限系统
hooks/toolPermission/ · permissions/ · 76+ files
5 种模式 + ML 分类器 + 规则匹配 + Hook 覆盖
💬
提示词工程
prompts.ts · systemPrompt.ts · 3 files
模块化双层缓存系统:静态全局 + 动态会话分区
🌐
MCP 集成
services/mcp/ · 21 files
完整 MCP 客户端:动态工具发现、OAuth、传输层抽象
💾
上下文管理
compact/ · claudemd.ts · memdir/ · 20+ files
自动压缩 + 微压缩 + CLAUDE.md 加载 + 自动记忆
🎨
终端 UI
ink/ (79) · components/ (43) · 122 files
自定义 Ink/React 终端渲染器,虚拟 DOM → ANSI 输出

工具系统

Claude Code 可以调用的每一个内置工具,按功能分类。

文件操作4
搜索与导航4
执行与终端2
任务管理6
代理编排4
MCP 与集成4
工作区4
点击工具查看详情和源码路径

命令大全

Claude Code 中可用的 94 个斜杠命令,按功能分类。

77 个可用 · 17 个受限:🚫已移除已移除 — 代码只存在于 Anthropic 内部🔒未开放未开放 — 代码存在但被开关禁用👁隐藏隐藏 — 代码完整但不显示在帮助列表中
设置与配置12
日常工作流23
代码审查与 Git13
调试与诊断23
高级与实验性23

独特设计模式

things no other coding agent does

Latency Hack

投机性权限分类器

当 Claude 想执行 Bash 命令时,系统在弹出权限对话框的同时启动 ML 分类器。分类器与用户赛跑——如果它先完成且置信度足够高,直接自动批准。

Token Saver

延迟工具加载 (ToolSearch)

不把所有工具 Schema 塞进系统提示词。标记为 shouldDefer 的工具只列名称,需要时通过 ToolSearch 按需加载完整定义。

Cost Optimizer

双层提示词缓存

系统提示词中有一个隐形边界标记 __SYSTEM_PROMPT_DYNAMIC_BOUNDARY__,将提示词分为全局共享缓存层和会话特定层。

FP Pattern

上下文修改器

工具返回值不只是数据——还包含 contextModifier 函数来变换后续执行上下文。修改器通过闭包链式组合,避免共享状态竞争。

Cache Trick

Fork 子代理缓存对齐

生成子代理时,克隆父进程完整历史,但将所有工具结果替换为同一个占位字符串。N 个子代理共享 1 份缓存。

Learning

压缩时学习

上下文压缩不只是总结后丢弃。在压缩过程中提取洞察写入持久记忆,供未来会话使用。上下文淘汰变成学习机会。

隐藏功能

feature-flagged, env-gated, or not shipped yet

🐾
BuddyBUDDY

终端里的虚拟宠物

KAIROSKAIROS

完全自主代理模式

📐
UltraPlanVERIFY_PLAN

长时间规划会话

👬
Coordinator ModeCOORDINATOR_MODE

多代理协调器

📱
Bridge ModeBRIDGE_MODE

远程控制

👻
Daemon ModeDAEMON

后台守护进程

📨
UDS InboxUDS_INBOX

会话间通信

💭
Auto-DreamAUTO_DREAM

自动回顾与学习

🔔
Proactive ModePROACTIVE

主动通知与建议

🕵
卧底模式ant (内部)

隐藏 AI 身份

术语表

源码中的 47 个关键概念、代号和专有名词。

内部代号源码中用来指代模型、功能或系统的内部名称。
Fennec耳廓狐
Numbat袋食蚁兽
Tengu天狗
KAIROS凯洛斯
Chicago芝加哥
GrowthBook实验平台
核心概念理解代理循环和工具系统的关键术语。
queryLoop查询循环
needsFollowUp需要后续
stop_reason停止原因
ToolResult工具结果
StreamingToolExecutor流式工具执行器
partitionToolCalls工具分批
buildTool工具工厂
Ink终端 React
权限系统控制工具执行的多层安全机制。
PermissionMode权限模式
Pre-Hook前置钩子
canUseTool能否使用工具
Speculative Classifier投机性分类器
acceptEdits自动接受编辑
Hook 事件钩子事件类型
上下文管理在有限的 context window 中管理无限对话的机制。五层按序执行。
applyToolResultBudget工具结果预算
snip裁剪
microcompact微压缩
contextCollapse上下文折叠
compact / autocompact压缩 / 自动压缩
DYNAMIC_BOUNDARY动态边界
cacheScope缓存作用域
Reactive Compact响应式压缩
多代理系统子代理、协调器和 Swarm 相关术语。
Fork SubagentFork 子代理
Coordinator Mode协调器模式
Swarm群体
worktree工作树
AgentDefinition代理定义
持久化与恢复会话持久化、文件历史和记忆系统。
transcript转录
fileHistoryTrackEdit文件历史追踪
CLAUDE.md项目指令
Auto Memory自动记忆
handleStopHooks停止钩子
autoDream自动回顾
Feature Flags源码中发现的 90+ 个功能开关。大部分在公开版本中为 false(编译时移除)。
feature()功能开关
BRIDGE_MODE桥接模式
DAEMON守护进程
PROACTIVE主动模式
VOICE_MODE语音模式
ULTRAPLAN / ULTRATHINK超级规划/思考
TRANSCRIPT_CLASSIFIER转录分类器
CACHED_MICROCOMPACT缓存微压缩

Spinner 动词

等待 API 响应时终端随机显示的 109个加载文案。从 Sautéing 到 Flibbertigibbeting。

src/constants/spinnerVerbs.ts

▮ 等待中...
显示 109 / 109
English中文分类注释
Sautéing煎炒中🍳法式烹饪术语
Baking烘焙中🍳
Blanching焯水中🍳
Brewing酿造中🍳
Caramelizing焦糖化中🍳
Fermenting发酵中🍳
Flambéing火焰烹饪中🍳法语,点火烧酒
Frosting裱霜中🍳
Garnishing装饰摆盘中🍳
Julienning切丝中🍳法式切法
Kneading揉面中🍳
Leavening发面中🍳
Marinating腌制中🍳
Proofing醒面中🍳
Seasoning调味中🍳
Simmering文火慢炖中🍳
Stewing炖煮中🍳
Tempering调温中🍳
Whisking搅拌中🍳
Zesting刨柠檬皮中🍳
Concocting调配中🍳
Drizzling淋酱中🍳
Infusing浸泡入味中🍳
Percolating渗滤中🍳咖啡萃取
Thinking思考中🧠唯一一个"正常"的词
Cerebrating脑力运转中🧠拉丁语 cerebrum(大脑)
Cogitating沉思中🧠笛卡尔:我思故我在
Contemplating冥想中🧠
Deliberating审议中🧠
Elucidating阐明中🧠
Ideating构思中🧠
Mulling反复琢磨中🧠
Musing冥想中🧠
Philosophising哲思中🧠
Pondering深思中🧠
Ruminating反刍思考中🧠像牛一样反复咀嚼想法
Puzzling解谜中🧠
Considering斟酌中🧠
Beboppin'跳爵士舞中💃Bebop 爵士乐风格
Boogieing扭屁股中💃
Frolicking嬉戏中💃
Galloping飞驰中💃
Grooving摇摆中💃
Jitterbugging跳吉特巴中💃40 年代摇摆舞
Moonwalking太空步中💃Michael Jackson 经典
Shimmying扭动中💃
Sock-hopping袜子舞中💃50 年代美国舞会
Waddling摇摇摆摆中💃
Germinating萌芽中🌿
Photosynthesizing光合作用中🌿
Pollinating授粉中🌿
Sprouting发芽中🌿
Cultivating培育中🌿
Osmosing渗透中🌿
Nucleating成核中🌿
Sublimating升华中🌿
Ionizing电离中🌿
Crystallizing结晶中🌿
Evaporating蒸发中🌿
Precipitating沉淀中🌿
Nebulizing雾化中🌿
Boondoggling做无用功中🤪美国俚语:浪费时间的活动
Booping按鼻子中🤪网络用语:轻按可爱的鼻子
Canoodling亲热中🤪
ClaudingClaude 中🤪自创词!Claude 正在 Claude
Combobulating组合中🤪discombobulate 的反义词(不存在的词)
Discombobulating搞混中🤪
Recombobulating重新组合中🤪密尔沃基机场有个 Recombobulation Area
Dilly-dallying磨蹭中🤪
Fiddle-faddling瞎忙活中🤪
Flibbertigibbeting叽叽喳喳中🤪莎士比亚用过这个词
Flummoxing困惑中🤪
Gallivanting闲逛中🤪
Hullaballooing大惊小怪中🤪
Lollygagging闲混中🤪
Prestidigitating变戏法中🤪专业魔术术语
Razzle-dazzling花里胡哨中🤪
Razzmatazzing热闹中🤪
Shenaniganing搞恶作剧中🤪
Tomfoolering胡闹中🤪
Topsy-turvying颠三倒四中🤪
Whatchamacalliting那个什么中🤪What-cha-ma-call-it,忘词时用的
Wibbling摇晃中🤪
Bootstrapping引导启动中💻
GitifyingGit 化中💻自创词
Hashing哈希中💻
Hyperspacing超空间跳跃中💻
Quantumizing量子化中💻也是自创词
Reticulating网格化中💻Reticulating Splines — SimCity 经典 loading 梗
Computing计算中💻
Processing处理中💻
Synthesizing合成中💻
Cascading级联中💻
Billowing翻涌中🌊
Ebbing退潮中🌊
Gusting狂风中🌊
Misting起雾中🌊
Swirling旋转中🌊
Thundering打雷中🌊
Whirlpooling漩涡中🌊
Orbiting绕轨道运行中🌊
Warping翘曲中🌊
Enchanting施魔法中
Levitating悬浮中
Manifesting显化中
Metamorphosing蜕变中
Transfiguring变形中哈利波特术语
Transmuting炼金中
Unfurling展开中
你可以在 settings.json 中自定义:"spinnerVerbs": { "mode": "append", "verbs": ["摸鱼中", "划水中"] }