Claude Codeの/resumeコマンドで過去の会話を再開する
/resumeが復元する状態・復元しない設定フラグ、実行中のバックグラウンドセッションを再開できない制約、名前解決やクロスプロジェクト検索の挙動を扱います。
Claude Codeの/resumeは何を再開するコマンドか
/resumeは、セッション内から別の過去の会話に切り替えるコマンドです。会話履歴だけでなく、モデル・エージェント・権限モード・アクティブなgoal・スケジュール済みタスクまで、終了時点の状態ごと復元します。ただの「会話ログの続き読み」ではなく、作業状態そのものを呼び戻す仕組みだと考えると、復元されるものとされないものの線引きが理解しやすくなります。
再開の入り口は/resumeだけではありません。ターミナルからの起動時に使うclaude --resume・claude --continue・claude --from-prもあり、それぞれ探す範囲と挙動が違います。
| コマンド | 何をするか |
|---|---|
claude --continue | 何をするか現在のディレクトリで直近のセッションを再開 |
claude --resume | 何をするかセッションピッカーを開く |
claude --resume <name> | 何をするか指定した名前のセッションを直接再開 |
claude --from-pr <number> | 何をするか指定したプルリクエストに紐づくセッションに絞ってピッカーを開く |
/resume | 何をするかセッション内から別の会話に切り替える |
claude -pやAgent SDKで作ったセッションはピッカーには出てきませんが、セッションIDをclaude --resume <session-id>に渡せば再開できます。
/resumeが復元するもの・復元しないもの
復元される状態は多いものの、全部が無条件に戻るわけではありません。何が戻り、何が戻らないかを事前に知っておくと、再開直後に「設定が消えた」と驚かずに済みます。
復元されるもの:
- 会話履歴(ツール呼び出しと結果を含む全履歴)
- モデル(使用していたモデルのまま継続。ただしそのモデルが提供終了済み・
availableModelsで許可されていない場合、起動時に--modelやモデル系環境変数を指定した場合、Bedrock/Vertex/Foundryのようにプロバイダ固有のデプロイIDを使う環境では復元されない) - エージェント(
--agentで起動したセッションは同じシステムプロンプト・ツール制限・モデルで継続。再開時に--agentを渡せば別のものに切り替え可能) - 権限モード(ただし
planとbypassPermissionsは復元されず、新規セッションと同じ既定モードで始まる。autoはアカウントがauto mode要件を満たしている場合のみ復元される) - アクティブなgoal(ターン数・タイマー・トークン消費の基準値はリセットされて引き継がれる)
- 期限切れでないスケジュール済みタスク(バックグラウンドBashとmonitorタスクは復元対象外)
復元されないものは、起動時に渡した設定フラグの一部です。--mcp-config・--settings・--plugin-dir・--fallback-model、それに起動時の--add-dirは再開時に渡し直す必要があります。セッション途中で/add-dirを使って追加したディレクトリも復元されませんが、ピッカーがセッションを見つける際の検索対象には引き続き使われます。settings.jsonやsettings.local.jsonのような標準の設定ファイルは起動のたびに読み直されるので、こちらは渡し直す必要がありません。
セッションピッカーの探索範囲とショートカット
/resumeをセッション内で実行するか、claude --resumeを引数なしで実行すると、対話式のセッションピッカーが開きます。既定では次の範囲だけが表示されます。
- 現在のワークツリーのセッション(バックグラウンドセッションは一覧で
bgと表示される) /add-dirで現在のディレクトリを追加した、他所で始まったセッション
Ctrl+Wで同じリポジトリの全ワークツリーに、Ctrl+Aでこのマシン上の全プロジェクトに表示範囲を広げられます。ワークツリーをまたいだ並列作業をしている場合、この2つのショートカットを知っているかどうかで目的のセッションを探す速さが変わります。
| ショートカット | 動作 |
|---|---|
↑ / ↓ | 動作セッション間を移動 |
→ / ← | 動作グループ化されたセッションを展開・折りたたみ |
Enter | 動作ハイライトしたセッションを再開 |
Space(またはCtrl+V) | 動作セッション内容をプレビュー |
Ctrl+R | 動作ハイライトしたセッションをリネーム |
/または任意の文字 | 動作検索モードに入って絞り込み。GitHub/GitLab/BitbucketのPR・MR URLを貼るとそれを作ったセッションを検索できる |
Ctrl+A | 動作このマシン上の全プロジェクトを表示(再度押すと戻る) |
Ctrl+W | 動作現在のリポジトリの全ワークツリーを表示(再度押すと戻る) |
Ctrl+B | 動作現在のgitブランチのセッションだけに絞る |
Esc | 動作ピッカーまたは検索モードを終了 |
/branchや--fork-sessionで作ったセッションは別々のセッションIDを持つため、それぞれ独立した行として表示されます。ピッカーが同一セッションの複数エントリを見つけた場合は1行にグループ化され、→で展開できます。別のワークツリーのセッションを選ぶとその場で再開されますが、無関係なプロジェクトのセッションを選んだ場合は、cdと再開コマンドがクリップボードにコピーされる仕組みです。
実行中のバックグラウンドセッションはピッカーから再開できない
ピッカーの一覧でbgマークが付いているのはバックグラウンドセッションです。ここが/resumeの実務上の落とし穴になります。まだ実行中のバックグラウンドセッションは、ピッカーから直接再開できません。実行中のものを選ぶと、claude agentsから接続するか、先にそこで停止させるよう案内されます。
これは設計上の制約です。バックグラウンドセッションはあなたが操作していない間も裏側で動き続けています。/resumeでそれを対話セッションとして読み込んでしまうと、実行中のプロセスと新しく開いた会話が同じトランスクリプトに競合して書き込む状態になりかねません。実行中のセッションに関与したいときはclaude agents(エージェントビュー)から接続します。完了・停止済みのバックグラウンドセッションだけが、/resumeのピッカーでそのまま再開対象になります。
クロスプロジェクト検索とワークツリーをまたぐ再開
claude --resume <session-id>はどのディレクトリからでも実行できます。Claude Codeはまず現在のプロジェクトディレクトリとそのgitワークツリーの中でIDを探し、見つからなければマシン上の他の全プロジェクトを検索します。これにより、別の場所で始まったセッションや/cdで移動したセッションも見つけられます。
クロスプロジェクト検索がIDを解決するのは、他のプロジェクトの中に該当するメッセージ入りのトランスクリプトを持つものがちょうど1件だけ見つかった場合に限られます。手動でコピーした重複ファイルがあると、任意のコピーを再開するのではなく「見つからない」と報告される安全設計です。該当するセッションが1件も無ければNo conversation found with session ID: <session-id>と表示されます。このエラーメッセージの原因別対処は「No conversation found with session ID」の対処にまとめています。
v2.1.223より前は、検索が現在のプロジェクトディレクトリとそのワークツリーの範囲で止まっていました。セッションが最後に作業していたディレクトリから再開する必要があったため、v2.1.223のクロスプロジェクト検索の拡張は、/cdで移動を繰り返す運用や複数プロジェクトを横断する運用に効きます。
名前で再開するときの挙動の違い
セッションに名前を付けている場合、claude --resume <name>と/resume <name>のどちらでも呼び出せますが、名前があいまいに複数該当したときの挙動が異なります。
| コマンド | 完全一致 | あいまいな名前 |
|---|---|---|
claude --resume <name> | 完全一致直接再開 | あいまいな名前名前を検索語として入れた状態でピッカーを開く |
/resume <name> | 完全一致直接再開 | あいまいな名前エラーを報告(引数なしで/resumeを実行してピッカーを開く必要がある) |
名前解決は現在のリポジトリとそのワークツリー全体にまたがって行われるため、目的のセッションが別のワークツリーで動いていても、完全一致する名前を渡せばそのまま再開できます。セッションへの命名経路は-nでの起動時指定・/rename・ピッカーのCtrl+Rの3つがあります。
長い会話を再開するときのトークンコスト
Pro・Maxプランで、1時間以上操作していない、かつトークン数が10万を超えるセッションを再開すると、Claude Codeは会話を復元したうえで、最初のメッセージを送る前に確認ダイアログを開きます。この時点でプロンプトキャッシュは失効しているため、どの選択肢を選んでも次のリクエストは全履歴を一度は処理し直すことになります。
ダイアログの3つの選択肢は、以降のリクエストにどれだけの会話量を持ち込むかが違います。
- Resume from summary: その場で
/compact相当の要約を実行し、以降は要約・直近のやり取り・最近読んだファイル最大5件だけを持ち込む - Resume full session as-is: 会話を変更せず読み込む。最初のメッセージ送信後に全履歴を再処理・再キャッシュし、以降はキャッシュが温かい間そこから読む
- Don't ask me again: フルセッションを再開し、以降すべての再開でこのダイアログを表示しなくなる
全履歴をそのまま持ち込めば会話の細部は保てますが、リクエストごとのコストは会話量に比例して増えます。要約を選べば以降のリクエストは軽くなりますが、要約からこぼれた内容はClaudeの文脈から消えます。長時間セッションでのトークン消費の仕組みはClaude Codeのコンテキスト管理で扱っています。
エラーになったときの対処
claude --resumeのピッカーから選んだ直後に読み込みが失敗すると、Failed to resume the conversationと表示されてプロセスが終了コード1で終わります。対処は「Failed to resume the conversation」の対処法にまとめています。セッション内から/resumeのピッカーで同じ失敗が起きた場合は、プロセスごと終了せず、現在の会話は動いたまま失敗だけが報告されます。
agent viewからの/resumeはバックグラウンドセッションとして戻る
claude agents(agent view)のディスパッチ入力で/resumeと打つと、v2.1.212以降ではエージェントビューを開いたリポジトリの過去のセッションのピッカーが開きます。一覧から削除したセッションも含めて新しい順に並び、Enterで選ぶとバックグラウンドセッションとして再開され、行の1つとして一覧に戻ります。
このピッカーが開くのは、引数なしの/resumeを打った場合だけです。IDや検索語を指定した/resume、--cwdで絞ったビュー、--safe-modeや--permission-modeなどのフラグ付きで開いたビューでは、ピッカーの代わりに「セッションにattachして実行してください」というヒントが表示されます。
よくある質問
--continueと--resumeはどう使い分けますか
--continueは現在のディレクトリの直近のセッションを問答無用で再開します。複数のセッションから選びたい、あるいは別のディレクトリのセッションを再開したいなら--resumeでピッカーを開く方が確実です。
バックグラウンドセッションを/resumeで開けないのはなぜですか
実行中のバックグラウンドセッションは裏側でプロセスが動き続けているため、/resumeで対話セッションとして読み込むと書き込みが競合します。実行中のものはclaude agentsから接続するか、先に停止させてから/resumeのピッカーに戻します。
claude -pで作ったセッションはピッカーに出ますか
出ません。claude -pやAgent SDKで作ったセッションはセッションピッカーの一覧対象外です。ただしセッションIDが分かっていればclaude --resume <session-id>で再開できます。
再開してもモデルが変わってしまうのはなぜですか
モデルが引き継がれない条件は3つあります。そのモデルが提供終了済みかavailableModelsで許可されていない場合、--modelやモデル系環境変数を起動時に指定した場合、そしてBedrock・Vertex・Foundryのようにプロバイダ固有のデプロイIDを使っている場合です。いずれにも当てはまらなければ、セッションが使っていたモデルのまま再開されます。
名前を付けたセッションが別のワークツリーにあっても再開できますか
できます。名前解決は現在のリポジトリとそのワークツリー全体にまたがって行われるため、完全一致する名前をclaude --resume <name>や/resume <name>に渡せば、別のワークツリーで動いていたセッションでもそのまま再開されます。
/resumeまわりの拡張の流れ
/resumeに関わる仕様は複数バージョンにまたがって整備されてきました。
| バージョン | 変更内容 |
|---|---|
| v2.1.144 | 変更内容claude --bgやagent viewで始めたバックグラウンドセッションが、ピッカーにbgマーク付きで表示されるようになった |
| v2.1.169 | 変更内容/cdでセッションを移動すると、そのセッションの保存先プロジェクトも移動先に切り替わる |
| v2.1.191 | 変更内容/rewindから/clear前の会話に戻る導線が追加され、/resume <session-id> (previous session)という項目が使えるようになった |
| v2.1.196 | 変更内容名前を付けていない対話セッションにも、作業ディレクトリ名+2文字のデフォルト表示名が自動で付くようになった |
| v2.1.211 | 変更内容最初のプロンプトが/loopのセッションがピッカーから恒久的に隠れる不具合を修正 |
| v2.1.212 | 変更内容agent viewのディスパッチ入力で/resumeと打つと過去のセッションのピッカーが開き、選ぶとバックグラウンドセッションとして再開されるようになった |
| v2.1.223 | 変更内容claude --resume <session-id>のクロスプロジェクト検索が、現在のプロジェクトとそのワークツリーの範囲を超えて、マシン上の他プロジェクトまで及ぶようになった |
v2.1.144でバックグラウンドセッションが再開対象に加わってから、v2.1.223のクロスプロジェクト検索まで、/resumeは「どこからでも目的のセッションに辿り着けるか」を軸に拡張が続いています。
まとめ
/resumeは会話履歴だけでなく、モデル・エージェント・権限モード・アクティブなgoal・期限切れでないスケジュールタスクまで復元するコマンドです。--mcp-configのような起動時フラグは復元されないため、依存していたセッションでは再開時に渡し直します。実行中のバックグラウンドセッションはピッカーから直接再開できず、claude agentsから接続するか停止させてから/resumeする必要がある点が実務上のつまずきどころです。クロスプロジェクト検索はv2.1.223でマシン全体に広がり、/cdで移動を繰り返す運用でも目的のセッションを見つけやすくなりました。