OFFICIAL SOURCE ANALYSIS

语音模式 · Vim 状态机 · 快捷键

Claude Code 的三种输入模式:Voice 语音交互、Vim 十态状态机、Keybindings 快捷键系统。

2. Voice 语音模式

Voice 模式让 Claude Code 从纯文本交互扩展到语音交互。用户可以通过 /voice 命令切换到语音模式,此时终端会开始录制麦克风音频,录制完成后通过 STT(Speech-to-Text,语音转文字)引擎将语音转换为文本输入,然后按照正常流程发送给模型处理。

语音模式的启用受到多重门控。首先,它需要对应的 Feature Flag 处于开启状态——这意味着它可能仍处于灰度发布阶段,并非所有用户都能看到。其次,它需要通过 OAuth 认证门控,确保用户有权限使用语音服务(可能涉及额外的服务端资源和成本)。

Voice 还支持 Voice Keywords——一组预定义的语音关键词或唤醒词,用于快速触发特定操作。例如,用户可以通过说出特定词语来停止录制、取消操作或切换回文本模式,而无需在键盘上操作。

Voice 模式的工作流程
用户说 /voice Feature Flag 检查 OAuth 验证 麦克风录制 STT 转写 文本输入处理
Voice Keywords 与语音控制

Voice Keywords 是一种辅助机制,允许用户在语音模式下通过特定词语与系统交互。它与主模型推理分离,更像是一个本地的关键词匹配层,用于控制录制状态和基础操作。这种设计确保了即使在模型响应延迟时,用户仍然可以通过语音控制系统行为。

3. Coordinator 多 Agent 协调模式

Coordinator 是 Claude Code 中的多 Agent 协调系统。当一个任务足够复杂时,单个 Agent 可能不足以高效完成——Coordinator 模式允许一个"Team Lead"角色的 Agent 将任务分解为子任务,并分配给多个"Worker"Agent 并行执行。

Coordinator 与 Agent Teams / Swarms 是相关但不同的概念。Swarms 更强调去中心化的自组织协作,多个 Agent 根据任务自主领取工作;而 Coordinator 更像一个层级化的管理模型——有一个明确的 Team Lead 负责任务分配、进度追踪和结果汇总。在实际实现中,Coordinator 可能是 Swarms 的一种特定配置模式。

Agent Summary 服务是 Coordinator 的关键组件。每个 Worker Agent 完成子任务后会生成一份摘要,Agent Summary 服务将这些摘要整合成一份统一的进度报告,供 Team Lead 进行下一步决策。这避免了 Team Lead 需要读取每个 Worker 的完整上下文,大幅降低了 token 消耗。

Coordinator 模式

层级化管理,Team Lead 分配任务,Worker 执行并汇报。适合有明确分工的复杂项目。

Team Lead任务分配进度汇总
Swarms 模式

去中心化协作,多个 Agent 自主认领任务。适合探索性或高度并行的工作。

自组织并行探索动态分工
Coordinator 任务分配流程
Team Lead 接收用户请求 │ ├─→ 任务分析与分解 │ 将复杂任务拆分为可独立执行的子任务 │ ├─→ Worker 分配 │ 每个子任务指定一个 Worker Agent │ Worker 拥有独立的上下文和工具访问 │ ├─→ 并行执行 │ 多个 Worker 同时工作 │ 各自在隔离的沙箱中运行 │ ├─→ Agent Summary 汇总 │ 收集各 Worker 的完成摘要 │ 整合为统一进度视图 │ └─→ Team Lead 决策 基于汇总结果决定下一步 可能继续分配、合并或报告给用户

12. Vim 模式

Claude Code 内置了完整的 Vim 键位映射实现,为习惯 Vim 操作方式的开发者提供无缝体验。通过 /vim 命令可以在 Vim 模式和普通模式之间切换。

Vim 模式支持标准的 Motion(光标移动命令,如 wbe0$)和 Command(操作命令,如 dcy)的组合。这不是一个简化版本——它实现了足够多的 Vim 操作,让 Vim 用户感觉输入区域就像一个迷你 Vim 编辑器。

Vim 模式的实现与输入框的文本编辑引擎深度集成。它维护了一个独立的模式状态机(Normal / Insert / Visual),并在 Ink 的 TextInput 组件上拦截键盘事件来实现对应的行为。

支持的 Vim 操作一览
类别操作说明
模式切换i, a, o, Esc, v进入/退出 Insert、Visual 模式
Motionh/j/k/l, w/b/e, 0/$, gg/G光标移动
编辑d, c, x, p, u删除、修改、粘贴、撤销
搜索/, n, N前向搜索和重复

13. Ink 终端 UI 框架

Claude Code 的整个终端界面基于 React + Ink 构建。Ink 是一个将 React 的组件模型带到终端的框架——开发者可以用 JSX 编写终端 UI 组件,React 的虚拟 DOM diffing 确保只有变化的部分被重新渲染到终端。

Claude Code 的代码库中包含了 390+ 个 UI 组件,涵盖了从基础布局到复杂交互的所有需求。这些组件包括文本渲染、代码高亮、表格、进度条、确认对话框、文件选择器等。这种组件化架构使得 UI 的开发和维护与传统 Web 应用一样模块化。

Focus Manager 是 Ink UI 中的焦点管理系统。在终端中,同时只能有一个组件接收键盘输入。Focus Manager 负责追踪当前焦点组件,处理 Tab 切换和焦点转移,确保复杂布局中的键盘导航正确运作。

全屏布局模式

占据整个终端窗口,类似 TUI 应用。适用于需要复杂布局的场景,如文件浏览器、多面板视图等。

内联输出模式

在终端的正常滚动流中渲染内容。适用于对话式交互,输出与终端的其他内容自然混合。

关键交互组件
组件用途交互方式
TextInput文本输入框支持 Vim 模式、历史记录、自动补全
Select选择列表上下箭头选择,回车确认
Confirmation确认对话框Y/N 二选一
PermissionRequest权限请求显示操作详情,等待用户授权
FileViewer文件预览语法高亮、行号显示
ProgressBar进度指示显示操作进度百分比

14. Prompt Suggestion 提示建议

Prompt Suggestion 系统在用户输入之前或之后提供上下文相关的提示建议。它分析当前的对话状态、项目上下文和历史模式,推荐用户可能想要执行的下一步操作。这类似于搜索引擎的自动补全,但针对的是 AI 编程助手的使用场景。

建议的生成基于多种信号:当前工作目录中的文件结构(如检测到 package.json 会建议 npm 相关操作)、最近的对话上下文(如刚完成一个函数会建议编写测试)、以及用户的历史使用模式(如经常在提交前运行 lint 会自动建议这一步)。所有建议都经过相关性排序,最相关的排在最前面。

Speculation(推测性预生成)是一种激进的优化。在用户还在思考下一步时,系统会根据上下文预测用户最可能的输入,并提前开始生成模型回复。如果预测命中,用户会感受到近乎即时的响应;如果预测失败,预生成的结果会被静默丢弃,用户完全无感知。Speculation 的命中率是一个重要的产品指标,它直接影响用户感知到的响应速度。

在 Swarms 模式下,Prompt Suggestion 与多 Agent 协调有交互——它可以建议用户将任务分配给特定的 Agent 或建议启用/调整 Swarm 配置。这使得多 Agent 工作流的启动更加顺畅。

Speculation 的工作机制
用户完成上一轮对话 分析上下文生成 Top-K 预测 后台预生成 Top-1 回复 用户输入匹配?立即返回 / 丢弃

预生成有严格的资源限制:只会消耗少量 token(通常只生成前几个段落),并且在用户开始输入时立即取消。这确保 Speculation 的成本可控,即使命中率不高也不会显著增加费用。

15. Keybindings 快捷键系统

Claude Code 提供了一套完全可自定义的快捷键系统。所有键位映射存储在 ~/.claude/keybindings.json 中,用户可以根据个人习惯重新映射任何操作。配置文件使用 JSON 格式,键名遵循标准的修饰符+键名表示法(如 ctrl+shift+p)。

系统支持 Chord Bindings——连续按键组合。例如,你可以将 Ctrl+K 然后 Ctrl+S 这个两步组合绑定到一个操作。Chord Bindings 允许在不与现有单键快捷键冲突的情况下定义大量快捷键。系统内部维护一个按键序列缓冲区,当检测到 Chord 的第一个键被按下时,它会进入"等待模式",在短暂超时窗口内等待第二个键。

快捷键的解析与 Vim 模式是互斥的——当 Vim 模式处于 Normal 状态时,大多数快捷键会被 Vim 键位映射拦截。这种优先级机制确保了两套系统不会产生冲突。用户可以在 Vim 模式下通过 Chord Bindings 定义不与 Vim 操作冲突的自定义快捷键。

默认快捷键列表
快捷键操作说明
Ctrl+C中断停止当前操作
Ctrl+K搜索打开全局搜索
Ctrl+L清屏清除终端输出
Ctrl+D退出退出 Claude Code
Up/Down历史浏览输入历史
Tab补全触发自动补全
Escape取消取消当前输入/操作

16. Migrations 数据迁移

随着 Claude Code 版本的迭代,配置格式、数据结构和存储方案可能发生变化。Migrations 系统确保用户从旧版本升级时,其数据能够自动、无损地迁移到新格式。

每个 Migration 是一个编号的脚本,描述了从版本 N 到版本 N+1 的数据转换逻辑。系统在启动时检查当前数据版本与期望版本,如果不匹配则按顺序执行所有中间 Migration。这个过程是自动且幂等的——即使同一个 Migration 被意外执行多次,结果也是一致的。

Migration 覆盖的范围包括:配置文件格式变更(如 JSON schema 变化)、会话数据结构调整、缓存清理(当缓存格式不兼容时)和权限模型升级。用户通常不会感知到 Migration 的存在,除非迁移过程中出现错误需要手动干预。

Migration 执行流程
Claude Code 启动 │ ├─→ 读取本地数据版本号 (stored_version) ├─→ 比较期望版本号 (expected_version) │ ├─ 如果 stored_version == expected_version → 跳过,正常启动 │ ├─ 如果 stored_version < expected_version → │ ├─→ 创建备份快照 │ ├─→ 按顺序执行 migration_N+1, migration_N+2, ... │ ├─→ 验证每步迁移结果 │ └─→ 更新 stored_version │ └─ 如果 stored_version > expected_version → 降级场景,发出警告但不回滚

每个 Migration 在执行前会先创建数据备份。如果迁移过程中出现错误,系统会自动回滚到备份状态,并在下次启动时重试。连续三次失败后,系统会要求用户手动干预。

17. Entrypoints 入口点

Claude Code 有多个入口点(Entrypoint),每个入口点针对不同的使用场景进行了优化。理解入口点的区别有助于理解 Claude Code 在不同环境下的行为差异。

CLI 入口

最常见的入口。用户在终端输入 claude 启动交互式会话,或使用 claude -p "prompt" 进行非交互式调用。CLI 入口会完整初始化终端 UI(Ink 框架)、加载所有 Skill 和 Plugin,并启动交互循环。

SDK 入口

面向程序化调用的入口。开发者可以在 Node.js/Bun 脚本中引入 Claude Code SDK,以编程方式调用其能力。SDK 入口跳过终端 UI 初始化,但保留完整的工具和权限系统。返回值是结构化数据(JSON),而非终端渲染的文本。

Bridge 入口

专为 IDE 集成设计的入口。Bridge 入口启动 Claude Code 为一个后台服务进程,通过 IPC 协议与 IDE 扩展通信。它不初始化终端 UI,但额外初始化 JWT 验证和 WebSocket 服务器。

入口点初始化差异
初始化步骤CLISDKBridge
终端 UI (Ink)
Skill / Plugin 加载
权限系统✓ + 回调
Feature Flags
JWT 验证
WebSocket Server
交互循环事件驱动

18. Schemas 验证

Claude Code 使用 Zod v4 作为运行时数据验证库。Zod 提供了 TypeScript-first 的 schema 声明方式,在运行时对数据进行类型安全的验证。这在一个需要处理大量动态数据(模型返回、工具输入、配置文件、用户输入)的系统中至关重要。

Schema 的应用范围覆盖了系统的几乎每一层。工具 Input Schema 定义了每个工具接受的参数格式——当模型生成的工具调用参数不符合 schema 时,系统会拒绝执行并告知模型错误原因。配置 Schema 验证用户配置文件的格式,防止配置错误导致运行时崩溃。消息类型 Schema 确保系统内部消息传递的类型安全。

Zod v4 相比 v3 在性能上有显著提升(解析速度提高约 2 倍),这对 Claude Code 这种每次工具调用都需要验证参数的系统来说非常重要。Schema 定义还被复用于生成模型可见的工具描述——模型看到的工具参数说明直接来源于 Zod schema,确保了文档和实现的一致性。

Schema 在各层的应用
Schema 对象验证内容
工具层Tool Input Schema模型生成的工具调用参数
配置层Config Schemasettings.json、CLAUDE.md 结构化部分
消息层Message Schema内部消息格式、API 请求/响应
插件层Plugin Manifest Schema插件元数据和接口声明
迁移层Migration Schema数据版本和迁移脚本声明

19. Cost Tracking 费用追踪

Claude Code 内置了详细的费用追踪系统。每次 API 调用的 token 消耗会被实时记录,并根据当前使用的模型和定价策略计算费用。这让用户对使用成本有清晰的认知,避免意外的高额账单。

通过 /cost 命令,用户可以随时查看当前会话的累计费用,包括输入 token 数、输出 token 数、缓存命中情况和对应的美元金额。系统支持多种模型(如 Claude Opus、Sonnet、Haiku),每种模型有不同的定价,费用计算会根据实际使用的模型自动调整。

费用追踪还与 Policy Limits 集成。当会话费用接近管理员设定的预算上限时,系统会发出警告;达到上限时会阻止进一步的 API 调用。这为企业用户提供了自动化的成本控制机制。

费用计算公式
会话总费用 = Σ (每次调用的 input_tokens × 模型输入单价 + 每次调用的 output_tokens × 模型输出单价 - cache_hit_tokens × 缓存折扣)
/cost 命令输出示例
╭─ Session Cost Summary ─────────────────────╮ │ Model: claude-sonnet-4-20250514 │ │ API Calls: 12 │ │ Input: 45,230 tokens ($0.135) │ │ Output: 12,840 tokens ($0.077) │ │ Cache Hits: 28,100 tokens (-$0.042) │ │ ─────────────────────────────────────────── │ │ Total: $0.170 │ │ Budget: $5.00 remaining (policy limit) │ ╰──────────────────────────────────────────────╯

费用数据在会话结束后也会被持久化,用户可以通过历史记录查看过去每次会话的费用明细。这些数据对于团队的成本分析和预算规划非常有价值。

Deep Link 功能允许外部应用通过 URL scheme 直接打开 Claude Code 并跳转到特定的状态或操作。例如,一个 CI/CD 系统可以在构建失败时生成一个 Deep Link,用户点击后 Claude Code 会自动打开并加载相关的错误上下文。

Deep Link 使用自定义的 URL scheme(如 claude-code://),操作系统会将匹配的 URL 路由到 Claude Code 进程。URL 中可以编码多种信息:要打开的项目路径、要执行的初始命令、要加载的会话 ID 等。

这个功能的一个重要应用场景是 IDE 和 Web 界面的联动。开发者在 Web 上的代码审查工具中看到一个问题时,可以点击"在 Claude Code 中打开"的链接,直接在终端中启动一个已经加载了相关上下文的 Claude Code 会话。这种无缝跳转减少了手动设置上下文的摩擦。

Deep Link URL 结构
claude-code://action?param1=value1&param2=value2 示例: claude-code://open?project=/path/to/repo&prompt=fix+the+build+error claude-code://session?id=abc123 claude-code://command?run=/review-pr+456

Deep Link 处理器在 Claude Code 启动时注册到操作系统。如果 Claude Code 已经在运行,新的 Deep Link 会被传递到现有进程;如果没有运行,系统会先启动 Claude Code 再处理链接内容。

总结:子系统间的协作网络

这 20 个子系统并非孤立运作——它们之间存在密切的协作关系。下面是一些关键的交叉点:

Voice + Ink
Skills + Plugin + Commands
Coordinator + Remote + DAEMON
Memory + Analytics + Policy
Schemas + Migrations + Entrypoints
核心洞察:Claude Code 的复杂度不在于任何单个子系统,而在于它们之间的组合爆炸。理解这些子系统各自的职责和边界,是深入理解整个系统的第一步。当你在源码中看到一个不认识的模块时,回到本页找到它的位置和上下文关系,会帮助你更快建立全局认知。
协作组参与子系统协作方式
扩展生态Plugin + Skills + MCPPlugin 注册 Skill,Skill 来源于 MCP Prompts
远程执行Remote + Bridge + CoordinatorBridge 传递远程上下文,Coordinator 编排远程 Agent
知识管理Memory + Skills + CLAUDE.md记忆补充 Skill 知识,CLAUDE.md 是显式记忆
合规体系Policy + Analytics + MDMPolicy 定义规则,Analytics 追踪执行,MDM 强制实施
输入体验Voice + Vim + Keybindings + Ink多种输入模态共享 Ink 渲染和焦点管理
性能优化Speculation + Cost Tracking + Schemas预生成控制成本,Schema 验证避免无效调用

15. Keybindings 快捷键系统

Claude Code 提供了一套完全可自定义的快捷键系统。所有键位映射存储在 ~/.claude/keybindings.json 中,用户可以根据个人习惯重新映射任何操作。配置文件使用 JSON 格式,键名遵循标准的修饰符+键名表示法(如 ctrl+shift+p)。

系统支持 Chord Bindings——连续按键组合。例如,你可以将 Ctrl+K 然后 Ctrl+S 这个两步组合绑定到一个操作。Chord Bindings 允许在不与现有单键快捷键冲突的情况下定义大量快捷键。系统内部维护一个按键序列缓冲区,当检测到 Chord 的第一个键被按下时,它会进入"等待模式",在短暂超时窗口内等待第二个键。

快捷键的解析与 Vim 模式是互斥的——当 Vim 模式处于 Normal 状态时,大多数快捷键会被 Vim 键位映射拦截。这种优先级机制确保了两套系统不会产生冲突。用户可以在 Vim 模式下通过 Chord Bindings 定义不与 Vim 操作冲突的自定义快捷键。

默认快捷键列表
快捷键操作说明
Ctrl+C中断停止当前操作
Ctrl+K搜索打开全局搜索
Ctrl+L清屏清除终端输出
Ctrl+D退出退出 Claude Code
Up/Down历史浏览输入历史
Tab补全触发自动补全
Escape取消取消当前输入/操作

16. Migrations 数据迁移

随着 Claude Code 版本的迭代,配置格式、数据结构和存储方案可能发生变化。Migrations 系统确保用户从旧版本升级时,其数据能够自动、无损地迁移到新格式。

每个 Migration 是一个编号的脚本,描述了从版本 N 到版本 N+1 的数据转换逻辑。系统在启动时检查当前数据版本与期望版本,如果不匹配则按顺序执行所有中间 Migration。这个过程是自动且幂等的——即使同一个 Migration 被意外执行多次,结果也是一致的。

Migration 覆盖的范围包括:配置文件格式变更(如 JSON schema 变化)、会话数据结构调整、缓存清理(当缓存格式不兼容时)和权限模型升级。用户通常不会感知到 Migration 的存在,除非迁移过程中出现错误需要手动干预。

Migration 执行流程
Claude Code 启动 │ ├─→ 读取本地数据版本号 (stored_version) ├─→ 比较期望版本号 (expected_version) │ ├─ 如果 stored_version == expected_version → 跳过,正常启动 │ ├─ 如果 stored_version < expected_version → │ ├─→ 创建备份快照 │ ├─→ 按顺序执行 migration_N+1, migration_N+2, ... │ ├─→ 验证每步迁移结果 │ └─→ 更新 stored_version │ └─ 如果 stored_version > expected_version → 降级场景,发出警告但不回滚

每个 Migration 在执行前会先创建数据备份。如果迁移过程中出现错误,系统会自动回滚到备份状态,并在下次启动时重试。连续三次失败后,系统会要求用户手动干预。

17. Entrypoints 入口点

Claude Code 有多个入口点(Entrypoint),每个入口点针对不同的使用场景进行了优化。理解入口点的区别有助于理解 Claude Code 在不同环境下的行为差异。

CLI 入口

最常见的入口。用户在终端输入 claude 启动交互式会话,或使用 claude -p "prompt" 进行非交互式调用。CLI 入口会完整初始化终端 UI(Ink 框架)、加载所有 Skill 和 Plugin,并启动交互循环。

SDK 入口

面向程序化调用的入口。开发者可以在 Node.js/Bun 脚本中引入 Claude Code SDK,以编程方式调用其能力。SDK 入口跳过终端 UI 初始化,但保留完整的工具和权限系统。返回值是结构化数据(JSON),而非终端渲染的文本。

Bridge 入口

专为 IDE 集成设计的入口。Bridge 入口启动 Claude Code 为一个后台服务进程,通过 IPC 协议与 IDE 扩展通信。它不初始化终端 UI,但额外初始化 JWT 验证和 WebSocket 服务器。

入口点初始化差异
初始化步骤CLISDKBridge
终端 UI (Ink)
Skill / Plugin 加载
权限系统✓ + 回调
Feature Flags
JWT 验证
WebSocket Server
交互循环事件驱动

18. Schemas 验证

Claude Code 使用 Zod v4 作为运行时数据验证库。Zod 提供了 TypeScript-first 的 schema 声明方式,在运行时对数据进行类型安全的验证。这在一个需要处理大量动态数据(模型返回、工具输入、配置文件、用户输入)的系统中至关重要。

Schema 的应用范围覆盖了系统的几乎每一层。工具 Input Schema 定义了每个工具接受的参数格式——当模型生成的工具调用参数不符合 schema 时,系统会拒绝执行并告知模型错误原因。配置 Schema 验证用户配置文件的格式,防止配置错误导致运行时崩溃。消息类型 Schema 确保系统内部消息传递的类型安全。

Zod v4 相比 v3 在性能上有显著提升(解析速度提高约 2 倍),这对 Claude Code 这种每次工具调用都需要验证参数的系统来说非常重要。Schema 定义还被复用于生成模型可见的工具描述——模型看到的工具参数说明直接来源于 Zod schema,确保了文档和实现的一致性。

Schema 在各层的应用
Schema 对象验证内容
工具层Tool Input Schema模型生成的工具调用参数
配置层Config Schemasettings.json、CLAUDE.md 结构化部分
消息层Message Schema内部消息格式、API 请求/响应
插件层Plugin Manifest Schema插件元数据和接口声明
迁移层Migration Schema数据版本和迁移脚本声明

19. Cost Tracking 费用追踪

Claude Code 内置了详细的费用追踪系统。每次 API 调用的 token 消耗会被实时记录,并根据当前使用的模型和定价策略计算费用。这让用户对使用成本有清晰的认知,避免意外的高额账单。

通过 /cost 命令,用户可以随时查看当前会话的累计费用,包括输入 token 数、输出 token 数、缓存命中情况和对应的美元金额。系统支持多种模型(如 Claude Opus、Sonnet、Haiku),每种模型有不同的定价,费用计算会根据实际使用的模型自动调整。

费用追踪还与 Policy Limits 集成。当会话费用接近管理员设定的预算上限时,系统会发出警告;达到上限时会阻止进一步的 API 调用。这为企业用户提供了自动化的成本控制机制。

费用计算公式
会话总费用 = Σ (每次调用的 input_tokens × 模型输入单价 + 每次调用的 output_tokens × 模型输出单价 - cache_hit_tokens × 缓存折扣)
/cost 命令输出示例
╭─ Session Cost Summary ─────────────────────╮ │ Model: claude-sonnet-4-20250514 │ │ API Calls: 12 │ │ Input: 45,230 tokens ($0.135) │ │ Output: 12,840 tokens ($0.077) │ │ Cache Hits: 28,100 tokens (-$0.042) │ │ ─────────────────────────────────────────── │ │ Total: $0.170 │ │ Budget: $5.00 remaining (policy limit) │ ╰──────────────────────────────────────────────╯

费用数据在会话结束后也会被持久化,用户可以通过历史记录查看过去每次会话的费用明细。这些数据对于团队的成本分析和预算规划非常有价值。

Deep Link 功能允许外部应用通过 URL scheme 直接打开 Claude Code 并跳转到特定的状态或操作。例如,一个 CI/CD 系统可以在构建失败时生成一个 Deep Link,用户点击后 Claude Code 会自动打开并加载相关的错误上下文。

Deep Link 使用自定义的 URL scheme(如 claude-code://),操作系统会将匹配的 URL 路由到 Claude Code 进程。URL 中可以编码多种信息:要打开的项目路径、要执行的初始命令、要加载的会话 ID 等。

这个功能的一个重要应用场景是 IDE 和 Web 界面的联动。开发者在 Web 上的代码审查工具中看到一个问题时,可以点击"在 Claude Code 中打开"的链接,直接在终端中启动一个已经加载了相关上下文的 Claude Code 会话。这种无缝跳转减少了手动设置上下文的摩擦。

Deep Link URL 结构
claude-code://action?param1=value1&param2=value2 示例: claude-code://open?project=/path/to/repo&prompt=fix+the+build+error claude-code://session?id=abc123 claude-code://command?run=/review-pr+456

Deep Link 处理器在 Claude Code 启动时注册到操作系统。如果 Claude Code 已经在运行,新的 Deep Link 会被传递到现有进程;如果没有运行,系统会先启动 Claude Code 再处理链接内容。

总结:子系统间的协作网络

这 20 个子系统并非孤立运作——它们之间存在密切的协作关系。下面是一些关键的交叉点:

Voice + Ink
Skills + Plugin + Commands
Coordinator + Remote + DAEMON
Memory + Analytics + Policy
Schemas + Migrations + Entrypoints
核心洞察:Claude Code 的复杂度不在于任何单个子系统,而在于它们之间的组合爆炸。理解这些子系统各自的职责和边界,是深入理解整个系统的第一步。当你在源码中看到一个不认识的模块时,回到本页找到它的位置和上下文关系,会帮助你更快建立全局认知。
协作组参与子系统协作方式
扩展生态Plugin + Skills + MCPPlugin 注册 Skill,Skill 来源于 MCP Prompts
远程执行Remote + Bridge + CoordinatorBridge 传递远程上下文,Coordinator 编排远程 Agent
知识管理Memory + Skills + CLAUDE.md记忆补充 Skill 知识,CLAUDE.md 是显式记忆
合规体系Policy + Analytics + MDMPolicy 定义规则,Analytics 追踪执行,MDM 强制实施
输入体验Voice + Vim + Keybindings + Ink多种输入模态共享 Ink 渲染和焦点管理
性能优化Speculation + Cost Tracking + Schemas预生成控制成本,Schema 验证避免无效调用