Claude Code のセッションが落ちたとき、何が失われて何が戻るのか
3時間かけて詰めた文脈が、ターミナルの誤クローズ1回で消える——という体験を一度すると、人は復旧手順を覚えます。ここでは「何が実際に失われるのか」を先に整理します。思っているより、失われるものは少ないです。
失われるもの/残るもの
Claude Code は会話をローカルに保存しています。したがってウィンドウを閉じても会話履歴そのものは消えません。消えるのは以下です。
- 実行中だったコマンドの続き(途中のビルドやテストは止まります)
- そのウィンドウが「どのディレクトリで、どのセッションを開いていたか」というあなたの記憶
- シェルの環境(
exportした変数、nvm useの選択など)
つまり厳密には、失われるのはデータではなく対応関係です。3セッションなら思い出せます。12セッションだと思い出せません。
1セッションを戻す
cd ~/work/myapp # 元と同じディレクトリで
claude --resume # セッションを選んで再開
--resume は対話的にセッションを選ばせます。ポイントは cd を先にやることです。別のディレクトリから再開すると、エージェントは別のファイルツリーを見ながら以前の会話を続けることになり、静かに間違った編集をします。
艦隊をまとめて戻す
問題はここからです。12セッションを手で戻すには、12回「どのディレクトリだったか」を思い出す必要があります。現実的な解は2つです。
その1: 起動をスクリプトにしておく。 どのみち毎朝同じ布陣を立てるなら、ディレクトリ一覧をシェルスクリプトに固定してしまうのが一番安上がりです。
#!/bin/bash
for d in api web infra docs; do
tmux new-window -t fleet -n "$d"
tmux send-keys -t fleet:"$d" "cd ~/work/$d && claude --resume" Enter
done
これは起動を再現しますが、--resume の選択は結局手で押す必要があります。
その2: セッションとディレクトリの対応を道具に持たせる。 どのパネルがどのフォルダのどのセッションだったかをアプリ側が記録していれば、起動し直すだけで各パネルが自分のフォルダで自分のセッションを再開します。私たちが Agent Tile でやっているのはこれです。
どちらを選んでも構いません。大事なのは、対応関係を人間の記憶の外に置くことです。
事前にやっておくと効くこと
- 1ウィンドウ1リポジトリを徹底する。 対応が1対1なら、復旧は「ディレクトリを思い出す」だけの作業になります。
- 長い作業は途中で要約させる。 「ここまでの決定を箇条書きで」と定期的に出させておくと、最悪セッションごと失っても文脈を貼り直せます。
- 危ない操作の前にコミットする。 エージェントの編集を失って困るのは、コミットしていない差分だけです。
正直な限界
復旧できるのは会話とディレクトリの対応までで、走っていたプロセスは戻りません。30分のテストスイートが途中だったなら、それは最初からやり直しです。バックグラウンドの長時間ジョブは、セッションの中ではなく tmux や caffeinate の外側に出しておくほうが安全です。
macOSで複数のClaude Codeセッションを並行運用するための公式ブログ。更新情報・運用の実践・並列エージェントの回し方を日本語で。
Agent Tile を見る — 買い切り・ソース同梱 →