Skip to main content
セッションは、プロジェクトディレクトリに紐付けられた保存済みの会話です。Claude Code は作業中にセッションをローカルに保存するため、中断したところから再開したり、別のアプローチを試すために分岐したり、タスク間を切り替えたりできます。 デスクトップアプリ、Web 上の Claude Code、および VS Code 拡張機能はそれぞれ独自のセッション履歴を保持しており、デスクトップアプリは CLI セッションを再開することもできます。このページでは CLI について説明します。

セッションを再開する

セッションは作業中に ローカルトランスクリプトファイルに継続的に保存されるため、終了後または /clear を実行した後に再開できます。これらのエントリポイントを使用します。

実行中のバックグラウンドセッションを再開する

claude --resume または /resume で再開する会話が、実行中の バックグラウンドセッションに属する場合、Claude Code は実行中のセッション自体を開きます。コマンドラインで --bg を使用すると、再開は代わりに バックグラウンドディスパッチになります。v2.1.285 より前は、Claude Code は拒否し、claude attach <id> でセッションを開くか、先に claude stop <id> で停止するよう指示していました。
  • シェルから:claude --resume <session> は、トランスクリプト自体を読み込む代わりに、同じターミナルでそのセッションに対して claude attachを実行します。claude --resume <session> "check the tests too" のようにコマンドラインで渡すプロンプトは、最初にセッションの次のターンとして送信され、Claude Code は Sent your prompt to the background session (<id>); opening it… を出力してからアタッチします。ターミナルで入力した claude -p --resume <session> "prompt" も同じように動作するため、-p はその実行を非対話型に保ちません。 Claude Code は、コマンドラインに以下のいずれかがある場合、セッションを開きません。
    • パイプまたはリダイレクトされた入力または出力
    • --permission-mode、--model、--settings などのセッションを設定するフラグ
    • --output-format json または --json-schema などの出力を読み込むフラグ
    • --max-turns または --max-budget-usd などの実行を制限またはリワインドするフラグ
    これらのいずれかがある場合、または エージェントビューがオフになっている場合、Claude Code は何も送信せず、ステータス 1 で終了し、セッションがバックグラウンドで実行中であることを出力し、それを開く claude attach <id> コマンドを表示するか、ID を判定できない場合は claude agents で見つけるよう指示します。代わりに会話のコピーを再開するには、--fork-session を追加します。フラグを適用した自分のセッションで会話そのものを続行するには、claude stop <id> を実行してからコマンドを再度実行します。 / または ! で始まるプロンプトは送信されず、セッションが質問への回答を待っている間のプロンプトも送信されません。どちらの場合も Claude Code はセッションを開かず、メッセージには Your prompt was not sent to it と理由が含まれます。
  • セッション内から:/resume は現在の会話をバックグラウンドに移動し、このターミナルを実行中のセッションにアタッチし、Opening "<title>", running in the background (<id>) を出力します。空のプロンプトで ← を押すとエージェントビューに戻ります。エージェントビューには、離れた会話も一覧表示されます。現在の会話をバックグラウンドに移動できない場合(例えば、すでにバックグラウンドセッションにアタッチしている場合や、セッション永続性がオフの場合)、/resume は代わりに実行する claude attach コマンドを出力します。

再開されたセッションが復元するもの

Claude Code がトランスクリプトから会話を読み込むと、再開されたセッションは会話とそれに保存された状態を復元します。
  • 会話履歴:ツール呼び出しと結果を含む完全な履歴。前のプロセスが終了したとき(例えばクラッシュ時)に実行中だったツールは、再開時に完了または再実行されません。Claude はその呼び出しが結果の記録前に中断されたとマークされているのを確認し、再度実行する前にそれが有効になったかどうかを確認するよう指示されます。ただし、CLAUDE_CODE_RESUME_INTERRUPTED_TURNが設定されている場合は除きます。
  • モデル:セッションは使用していたモデルで続行されます。ただし、モデルの設定に記載されている場合は除きます。
  • エージェント:--agentまたは agent 設定で開始されたセッションはそのエージェントとして続行され、ツール制限とモデルを保持します。別のエージェントを選択するには、再開時に --agent を渡します。どちらの場合のシステムプロンプトについては、再開された会話のシステムプロンプトフラグを参照してください。Claude Code は 2 つの場所でエージェントを検索します。セッションの元のディレクトリ(そのワークスペースを信頼している場合)と、次に再開元のディレクトリです。そのため、プロジェクトスコープのエージェントは別のディレクトリから再開する場合でも読み込まれます。Claude Code がどちらの場所でもエージェントを見つけられない場合、セッションはデフォルトのツールで再開され、エージェント名を示す警告が表示されます。
  • 権限モード:claude --continue、claude --resume <session-id>、または claude --resume <name>(名前が 1 つのセッションと一致する場合)で -p なしでターミナルから再開する場合、Claude Code はセッションが使用していた権限モードを復元します。ただし、再開時の権限モードに記載されている場合は除きます。このセクションでは、セッションピッカー、/resume、および claude -p で再開する場合も扱います。復元されたモードを上書きするには、--permission-mode または --dangerously-skip-permissions を渡します。
  • アクティブなゴール:セッションが終了したときにまだアクティブだった ゴールは引き継がれます。ターン数、タイマー、およびトークン支出ベースラインはリセットされます。
  • スケジュールタスク:有効期限が切れていないタスクが復元されます。バックグラウンド Bash およびモニタータスクは復元されません。
  • バックグラウンド作業:前のプロセスとともに終了した バックグラウンドサブエージェント、バックグラウンド Bash コマンド、または ワークフローは、再開されたトランスクリプトに完了しなかったというメモとして表示されます。Claude Code はそれらのメモからターンを開始しません。Claude は次のプロンプトとともにそれらを読みます。
元の起動時のすべての設定フラグが復元されるわけではありません。セッションが --mcp-config、--settings、--plugin-dir、--fallback-model、または --add-dir で追加されたディレクトリに依存していた場合、再開時に再度渡します。セッション中に /add-dir で追加されたディレクトリも復元されませんが、セッションピッカーはセッションを見つけるためにそれらを使用します。settings.json や settings.local.json などの標準設定ファイルは起動時に再度読み込まれるため、それらに含まれる設定を再度渡す必要はありません。--system-prompt および --append-system-prompt については、再開された会話のシステムプロンプトフラグを参照してください。

再開時の権限モード

Claude Code が再開されたセッションをどの権限モードで開始するかは、再開方法によって異なります。以下のケースは、Claude Code がトランスクリプトから会話を読み込む場合に適用されます。代わりに 実行中のバックグラウンドセッションを開く場合、そのセッションは現在の権限モードを保持します。
  • ターミナル:claude --continue、claude --resume <session-id>、または claude --resume <name>(名前が 1 つのセッションと一致する場合)で -p なし。Claude Code はセッションが使用していた権限モードを復元します。ただし、表に記載されている場合は除きます。復元されたモードを上書きするには、--permission-mode または --dangerously-skip-permissions を渡します。
  • 非対話型:claude -p --resume または claude -p --continue。Claude Code は新しい claude -p 実行が開始される権限モードで実行を開始します。ただし、plan モードで終了したセッションは、以下の条件を満たす場合に plan モードで再開されます。
  • VS Code:拡張機能の会話パネル。表は、plan モードで終了した会話のみを扱います。その他については、過去の会話を再開を参照してください。
  • 起動時のセッションピッカー:セッションピッカーから選択したセッション。claude --resume だけで開いたか、claude --from-pr で開いたか、複数のセッションと一致する名前で開いたかに関わらず。Claude Code は、同じコマンドラインから新しいセッションを開始する場合の権限モードでセッションを開始します。ただし、plan モードで終了したセッションは plan モードで再開されます。--permission-mode、--dangerously-skip-permissions、または --fork-session を渡した場合、Claude Code は plan モードを復元しません。それ以外の保存された権限モードは復元されません。
  • セッション内の /resume(引数の有無を問わず):切り替え先の会話は、現在のセッションの権限モードで続行されます。ただし、plan モードで終了した会話は、--permission-mode または --dangerously-skip-permissions で Claude Code を起動した場合でも plan モードで再開されます。その会話がこの Claude Code の実行中にすでに開かれていた場合(開始時の会話や、/clear または /resume で離れた会話など)は、代わりに現在の権限モードで続行されます。
拒否ルールによって ExitPlanMode ツールが削除されている場合、Claude はプランを承認のために提示できないため、Claude Code は plan モードを復元しません。セッションは、同じコマンドラインから新しいセッションが開始される場合の権限モードで開始されます。/resume の場合、会話は現在の権限モードで続行されます。 非対話型および VS Code の経路で plan モードを復元するには Claude Code v2.1.246 以降が必要です。各行は、セッションが終了した権限モード、ターミナル、非対話型、および VS Code の経路のどれで再開するか、および Claude Code が再開されたセッションを開始する権限モードを示します。