所属专题簇:交互输入与运行形态
建议前读:03. 启动与主循环
Claude Code 除了默认 REPL 以外,还有哪些运行形态?assistant 和 voice 又代表什么?
Claude Code 不是单一模式程序,而是按入口、feature gate、auth 状态和产品面分成多种 runtime mode;assistant 和 voice 是其中最明显的两个特殊运行形态。
这一章解释 main.tsx 中出现的 assistant / remote / bridge / voice 等模式分支,以及 voice mode 的可见性与鉴权条件。
- Claude Code 从结构上就不是只有 REPL。
- 某些模式只在特定 feature、auth 和环境条件下才会显示。
- assistant / voice 体现了 Claude Code 在向更多交互形态扩张。
- 启动入口:src/main.tsx
- assistant 历史:src/assistant/sessionHistory.ts
- voice 开关:src/voice/voiceModeEnabled.ts
flowchart TD
A["main.tsx"] --> B["默认 REPL"]
A --> C["remote / bridge"]
A --> D["assistant mode"]
A --> E["voice mode"]
E --> F["VOICE_MODE feature"]
E --> G["GrowthBook kill switch"]
E --> H["Anthropic OAuth token"]
src/voice/voiceModeEnabled.ts 可以直接确认:
- 先受
VOICE_MODEfeature 控制 - 再受 GrowthBook kill switch 控制
- 还要求有效的 Anthropic OAuth token
这说明 Claude Code 的新运行形态不是“写进菜单就结束”,而是经过静态、动态和鉴权三层约束。
虽然当前快照下 src/assistant/ 目录可见内容不多,但结合 main.tsx 中的模式分流和 src/assistant/sessionHistory.ts,已经足以说明 assistant 是一个独立于默认 REPL 的运行分支,而不是文案命名。
这层告诉我们,Claude Code 不是一条单线产品,而是在尝试承载:
- 本地终端模式
- 远程模式
- assistant 分支
- voice 分支
这也解释了为什么它会需要 feature gate、structured IO、direct connect 和不同的 UI 组件路径。
- 运行形态是 Claude Code 产品设计的一部分,不是次要分支。
- assistant / voice 是研究“Anthropic 想把 Claude Code 扩展到哪里”的重要线索。
- 研究某个功能是否存在时,要先问它属于哪个 runtime mode。