cmux 中的会话恢复

当应用可以重建你的工作结构时,终端工作流就更能承受中断。cmux 现在把工作区布局视为持久状态,而不是绑定到某个应用进程的临时状态。

关键边界是实时进程状态。cmux 会恢复它拥有的内容,以及受支持工具通过自身恢复 API 暴露的内容。它不会为任意终端进程做检查点。

如果你想知道终端崩溃后如何恢复 Claude Code、OpenCode、opencode、Codex、Gemini CLI、Antigravity CLI、Grok Build CLI、Amp、Cursor CLI、Rovo Dev、Copilot、CodeBuddy、Factory、Qoder 或 Hermes Agent 会话,请安装 cmux hooks,并保持 agent 恢复功能开启。

始终会恢复的内容

正常重新启动后,cmux 会恢复应用级会话快照:

  • 窗口、工作区和窗格布局
  • 工作目录
  • 终端回滚内容,尽力恢复
  • 浏览器 URL 和导航历史

代理会话需要 hooks

当 cmux 拥有原生会话 ID 时,Claude Code、Codex、Grok Build CLI、OpenCode、Pi、Amp、Cursor CLI、Gemini CLI、Antigravity CLI、Rovo Dev、Hermes Agent、Copilot、CodeBuddy、Factory 和 Qoder 都可以继续会话。对于大多数 agent,请用 cmux hooks setup 安装集成。

cmux hooks setup

setup 命令会安装 PATH 中可找到的受支持代理,并跳过其余代理。启用 Settings 中的 Claude 集成后,Claude Code 由 cmux Claude 包装器处理。

工作原理

cmux 会在 Application Support 下写入 JSON 会话快照,其中包含窗口树、工作区元数据、窗格布局、终端 cwd、回滚重放数据和浏览器导航状态。

代理 hooks 会把会话映射写入 ~/.cmuxterm。恢复时,cmux 先重建 UI。如果启用了自动代理恢复,它会用保存的会话 ID 启动每个受支持代理的原生恢复命令。

不在范围内的内容

tmux、vim、shell 和不受支持的工具会作为普通终端重新打开,除非它们有 cmux 集成来记录安全的原生恢复命令。这让恢复保持可预测,并避免重放过期提示或密钥。

阅读会话恢复文档,了解设置命令、受支持代理和故障排查。