Thanks to visit codestin.com
Credit goes to cmux.com

セッション復元

cmuxは作業状態の形を保存し、アプリを再起動したときに同じウィンドウ、ワークスペース、ペイン、ターミナルコンテキスト、ブラウザ状態へ戻せるようにします。

cmuxが復元するもの

再起動後、cmuxはアプリが管理するレイアウトとメタデータを復元します:

  • ウィンドウ、ワークスペース、ペインのレイアウト
  • 作業ディレクトリ
  • ターミナルのスクロールバック(ベストエフォート)
  • ブラウザURLとナビゲーション履歴
cmuxは任意のライブプロセス状態をチェックポイントしません。tmux、vim、シェル、未対応のターミナルアプリは、独自のcmux復元連携がない限り通常のターミナルとして再度開きます。

エージェントセッションの復元

対応するAIコーディングエージェントは、cmuxがエージェント固有のセッションIDを取得している場合に復元できます。エージェントCLIをインストールし、そのバイナリがPATH上にある状態でフックをインストールしてください:

cmux hooks setup
cmux hooks setup codex
cmux hooks setup grok
cmux hooks setup antigravity
cmux hooks setup omp
cmux hooks setup --agent opencode

cmux hooks setupは見つかった対応連携をすべてインストールし、スキップしたエージェントの概要を表示します。1つの連携だけを設定したい場合はエージェント名を指定します。

カスタムサーフェス復元コマンド

上級ユーザーや連携機能は、任意のターミナルサーフェスに再起動用コマンドを紐づけられます。cmuxは公開CLIやsocketで作成された紐づけを、署名済みコマンドプレフィックスを承認するまでは確認と手動復元用に保存します。

cmux surface resume set --kind tmux --checkpoint work --shell "tmux attach -t work"
cmux surface resume show --json
cmux surface resume clear --checkpoint work

承認済みプレフィックスは 設定 > ターミナル > 復元コマンド で確認または編集できます。cmuxが自動実行するのは、実行中プロセスから検出したtmux紐づけやユーザー承認済みプレフィックスなど、信頼済みとして扱う復元紐づけだけです。cmuxは任意のプロセスメモリをチェックポイントするわけではありません。 トークン、パスワード、シークレット、APIキーなどの機密環境変数キーは、復元紐づけを保存する前に破棄されます。 承認済みプレフィックスは、存在する場合は作業ディレクトリと正確な環境変数値にも紐づきます。

対応エージェント

エージェントバイナリ復元コマンドフィード連携
Claude Codeclaudeclaude --resume <id>PermissionRequest
Codexcodexcodex resume <id>PreToolUse、PermissionRequest
Grok / Grok Build CLIgrokgrok -r <id>PreToolUse
OpenCodeopencodeopencode --session <id>プラグインイベントバス
Pipipi --session <id>なし
OMPompomp --session <id>なし
Ampampamp threads continue <id>なし
Cursor CLIcursor-agentcursor-agent --resume <id>beforeShellExecution
Geminigeminigemini --resume <id>PreToolUse
Antigravity CLIagyagy --conversation <id>PreToolUse, PostToolUse
Rovo Devacliacli rovodev run --restore <id>なし
Hermes Agenthermeshermes --resume <id>pre_tool_call, post_tool_call, pre_approval_request, post_approval_response
Copilotcopilotcopilot --resume <id>PreToolUse
CodeBuddycodebuddycodebuddy --resume <id>PreToolUse
Factorydroiddroid --resume <id>PreToolUse
Qoderqodercliqodercli --resume <id>PreToolUse

Claude Codeは、設定でClaude連携が有効な場合にcmux Claudeラッパーで処理されます。Antigravityはセットアップエイリアスとしてagyも受け付け、Rovo Devはrovoを受け付けます。

手動復元

cmuxは通常起動時に最後に保存したスナップショットを復元します。以前のスナップショットを手動で再適用することもできます:

  • 履歴 > 前回のアプリ起動を復元
  • ⌘ ⇧ O
  • cmux restore-session

エージェント自動復元を無効にする

保存されたエージェント復元コマンドを起動せずにペインだけを復元するには、設定 > ターミナル > 再オープン時にエージェントセッションを復元 をオフにするか、次を設定します:

~/.config/cmux/cmux.json
{
  "terminal": {
    "autoResumeAgentSessions": false
  }
}

これはエージェント復元コマンドだけを無効にします。cmuxはレイアウト、作業ディレクトリ、スクロールバック、ブラウザ履歴を引き続き復元します。

仕組み

  1. cmuxはバージョン付きJSONスナップショットを ~/Library/Application Support/cmux/session-<bundle-id>.json に書き込み、手動再オープン用の前回セッションキャッシュも保存します。
  2. ターミナルのスクロールバックは上限付きテキストとして保存され、復元時に一時ファイル経由で再生されます。ターミナルアプリが画面を再描画またはクリアできるため、これはベストエフォートです。
  3. エージェントフックは ~/.cmuxterm/<agent>-hook-sessions.json に、エージェントセッションID、cmuxワークスペースID、サーフェスID、cwd、利用可能な場合はプロセスID、サニタイズ済み起動コマンドを書き込みます。
  4. 復元時、cmuxはまずウィンドウとペインを再構築します。エージェント自動復元が有効な場合、保存されたセッションIDでエージェント固有の復元コマンドを実行する一度限りのシェルコマンドを起動します。

通常の設定ドキュメントではcmux.jsonを扱います。セッション復元は、アプリのレイアウトをGhosttyのターミナル描画設定とは別に保存します。