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をインストールし、エージェント再開を有効にしておいてください。
常に戻るもの
通常の再起動後、cmuxはアプリレベルのセッションスナップショットを復元します。
- ウィンドウ、ワークスペース、ペインのレイアウト
- 作業ディレクトリ
- ターミナルのスクロールバック、ベストエフォート
- ブラウザURLとナビゲーション履歴
エージェントセッションにはhooksが必要です
Claude Code、Codex、Grok Build CLI、OpenCode、Pi、Amp、Cursor CLI、Gemini CLI、Antigravity CLI、Rovo Dev、Hermes Agent、Copilot、CodeBuddy、Factory、Qoderは、cmuxがネイティブのセッションIDを取得している場合に再開できます。ほとんどのエージェントでは、cmux hooks setupで連携をインストールします。
cmux hooks setupsetupコマンドはPATH上にある対応エージェントをインストールし、それ以外はスキップします。Claude CodeはSettingsでClaude連携が有効な場合、cmux Claudeラッパーで処理されます。
仕組み
cmuxはApplication Support内に、ウィンドウツリー、ワークスペースメタデータ、ペインレイアウト、ターミナルcwd、スクロールバック再生データ、ブラウザのナビゲーション状態を含むJSONセッションスナップショットを書き込みます。
エージェントhooksは~/.cmuxtermにセッション対応表を書き込みます。復元時、cmuxはまずUIを再構築します。自動エージェント再開が有効なら、保存されたセッションIDを使って各対応エージェントのネイティブ再開コマンドを起動します。
対象外のもの
tmux、vim、シェル、未対応ツールは、安全なネイティブ再開コマンドを記録するcmux連携がない限り、通常のターミナルとして再び開きます。これにより復元は予測可能になり、古いプロンプトやシークレットの再生を避けられます。
推奨セットアップ
- 使うエージェントCLIをインストールし、cmux hooks setupを実行してcmuxがネイティブのセッションIDを取得できるようにします。
- 通常のcmuxターミナルでエージェントを実行します。作業中にhookがセッションID、cwd、ワークスペース、サーフェスを記録します。
- 再起動後、cmuxは保存済みのエージェント復元コマンドを開始する前に、ウィンドウとペインのツリーを再構築します。
- 復元されたエージェントが同じ上流セッションを継続していることを確認し、同じワークスペースで作業を続けます。
FAQ
クラッシュ後にも復旧できますか?
最後に保存されたスナップショットから、アプリが管理するレイアウトと対応エージェントセッションを復元します。エージェントやシェルが復元APIとして公開していない任意のプロセスメモリは復元できません。
tmuxも使うべきですか?
リモートホスト上でtmuxのセマンティクスが必要な場合はtmuxを使います。アプリレイアウト、ブラウザ状態、対応エージェントの復元をまとめて戻したい場合はcmuxのセッション復元を使います。
設定コマンド、対応エージェント、トラブルシューティングはセッション復元ドキュメントを読んでください。