# セッション復元

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

## cmuxが復元するもの

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

-   ウィンドウ、ワークスペース、ペインのレイアウト
-   作業ディレクトリ
-   ターミナルのスクロールバック（ベストエフォート）
-   ブラウザURLとナビゲーション履歴

cmuxは任意のライブプロセス状態をチェックポイントしません。tmux、vim、シェル、未対応のターミナルアプリは、独自のcmux復元連携がない限り通常のターミナルとして再度開きます。

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

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

```
# all integrations cmux can find on PATH
cmux hooks setup

# or one agent at a time
cmux hooks setup antigravity
cmux hooks setup codex
cmux hooks setup grok
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 Code | `claude` | `claude --resume <id>` | PermissionRequest |
| Codex | `codex` | `codex resume <id>` | PreToolUse、PermissionRequest |
| Grok / Grok Build CLI | `grok` | `grok -r <id>` | PreToolUse |
| OpenCode | `opencode` | `opencode --session <id>` | プラグインイベントバス |
| Pi | `pi` | `pi --session <id>` | なし |
| OMP | `omp` | `omp --session <id>` | なし |
| Campfire | `campfire` | `campfire --session <id>` | なし |
| Amp | `amp` | `amp threads continue <id>` | なし |
| Cursor CLI | `cursor-agent` | `cursor-agent --resume <id>` | beforeShellExecution |
| Gemini | `gemini` | `gemini --resume <id>` | PreToolUse |
| Antigravity CLI | `agy` | `agy --conversation <id>` | PreToolUse, PostToolUse |
| Rovo Dev | `acli` | `acli rovodev run --restore <id>` | なし |
| Hermes Agent | `hermes` | `hermes --resume <id>` | pre\_tool\_call, post\_tool\_call, pre\_approval\_request, post\_approval\_response |
| Copilot | `copilot` | `copilot --resume <id>` | PreToolUse |
| CodeBuddy | `codebuddy` | `codebuddy --resume <id>` | PreToolUse |
| Factory | `droid` | `droid --resume <id>` | PreToolUse |
| Qoder | `qodercli` | `qodercli --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でエージェント固有の復元コマンドを実行する一度限りのシェルコマンドを起動します。

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

Canonical: https://cmux.com/ja/docs/session-restore

Documentation index: https://cmux.com/llms.txt
