Claude Codeのセッション管理|–resumeで会話を再開する方法

clon logo
📅 公開日: 2026年9月28日🔄 最終更新: 2026年9月29日

Claude Codeのセッションは、明示的に保存操作をしなくても、使っている間ずっと自動でローカルへ保存されます。結論から言うと、直前の会話に戻りたいときはclaude --continue、複数の会話から選びたいときはclaude --resume、セッションの中から別の会話へ切り替えたいときは/resumeを使います。ただし何が復元され何が復元されないかはコマンドごとに違い、権限モードの扱いは再開の経路によって変わります。この違いを知らずに使うと、想定と違う権限モードで再開してしまい、確認のやり直しが発生します。

この記事は、Anthropic公式のセッション管理ページ(Manage sessions、日本語版はセッションの管理)に実在するコマンド・表・バージョン番号だけを根拠に、再開・命名・分岐・スクリプト連携・保存場所までを順に整理します。英語版と日本語版の記載を照合したうえで、数値や手順に相違がある場合はその都度触れます。Claude Code自体のインストールや基本操作がまだの方は、先にClaude Codeの使い方の記事で全体像をつかんでから読み進めてください。

目次

Claude Codeの「セッション」とは|保存の仕組みと対象範囲

【完全無料】AI×SNSで成果を出す100大特典を受け取る

AIの使い方を、SNS運用の実務につなげたい方へ。LINEで特典の案内を受け取れます。

【完全無料】AI×SNSで成果を出す100大特典を受け取る

セッションとは、プロジェクトディレクトリに紐づけて保存される一つの会話のことです。Claude Codeはセッションが続いている間、これをローカルへ継続的に保存するため、終了後や/clearを実行した後でも元の会話に戻れます。

この保存はディレクトリ単位で行われます。デスクトップアプリ、claude.ai/codeのようなクラウド版、VS Code拡張機能は、それぞれ独自のセッション履歴を別に保持しており、公式ページもこの記事が扱うのはCLIの挙動だと明記しています。クラウド側の操作はClaude Code Web版の使い方の記事で個別に解説しているので、そちらとあわせて読むと違いがつかみやすくなります。

CLIから既存のセッションへ戻る入口は、次の表にまとめた形で用意されています。

コマンド できること
claude –continue 現在のディレクトリで最新のセッションを再開する
claude –resume セッションピッカーを開く
claude –resume <name> 指定した名前のセッションを直接再開する
claude –resume <transcript-path> 指定した絶対パスの.jsonlトランスクリプトに保存された会話を再開する
claude –from-pr <number> そのプルリクエストに紐づくセッションだけに絞ってピッカーを開く
/resume アクティブなセッションの中から別の会話へ切り替える

claude –continueで直前のセッションを再開する

claude –continueとは、現在のディレクトリで最も新しいセッションをそのまま開き直すコマンドです。ディレクトリを移動していなければ、直前の続きから作業を再開できます。

対象外もあります。claude -pで実行したセッションやAgent SDK経由で作られたセッションは、セッションピッカーとclaude –continueの一覧から外れます。それでもセッションIDが分かっていれば、claude –resume <session-id>で個別に再開できます。最初のプロンプトが/loopだったセッションも、claude –continueの対象から自動的にスキップされます。

バックグラウンドへ送って実行中のまま残っているセッションが直近の会話だった場合、claude –continueはそのセッションを開かず、実行中である旨とセッションIDを表示して終了します。完了済みのバックグラウンドセッションを開けるのはClaude Code v2.1.257以降で、それより前のバージョンでは完了済みでも対象外でした。実行中のセッションへ合流したいときはclaude agentsからアタッチします。

セッションIDを指定した再開はどのディレクトリからでも実行できます。Claude Codeは現在のプロジェクトとそのgit worktreeをまず探し、見つからなければマシン上の他の全プロジェクトを探します。ただし複数のプロジェクトに同じIDのトランスクリプトが残っている場合は解決できず、「No conversation found with session ID: <session-id>」と表示されます。この横断検索の範囲はv2.1.223で広がったもので、それより前は現在のプロジェクトとそのworktreeまでしか探しませんでした。

claude –resumeでセッションピッカーを開く

セッションピッカーとは、claude –resumeを引数なしで実行したとき、あるいはセッションの中で/resumeを実行したときに開く、保存済みセッションを選んで再開するための一覧画面です。

ピッカーは既定でカレントworktreeのセッションと、/add-dirで現在のディレクトリを追加した他セッションを表示します。Ctrl+Wでリポジトリ内の全worktreeへ、Ctrl+Aでこのマシン上の全プロジェクトへ表示範囲を広げられます。最初のプロンプトが/loopだったセッションは、この一覧にも表示されません。

ピッカーを開いたあとの操作は、次のキーボードショートカットで行います。

キー 動作
↑ / ↓ セッション間を移動する
→ / ← グループ化されたセッションを展開・折りたたむ
Enter 選択したセッションを再開する
Space セッションの内容をプレビューする
Ctrl+R 選択したセッションの名前を変更する
Ctrl+A このマシン上の全プロジェクトを表示する(もう一度で戻る)
Ctrl+W リポジトリの全worktreeを表示する(もう一度で戻る)
Ctrl+B 現在のgitブランチのセッションだけに絞る
Esc ピッカーまたは検索モードを終了する

検索モードでは、GitHub・GitHub Enterprise・GitLab・BitbucketのプルリクエストURLやマージリクエストURLをそのまま貼り付けると、そのURLを作成したセッションを見つけられます。選んだセッションが読み込めなかった場合、claude –resume由来のピッカーは終了コード1で終了しますが、セッション内の/resumeピッカーからの失敗は現在の会話を続けたまま失敗を知らせます。

名前を指定して再開する|claude –resume <name>と/resume <name>

名前による再開とは、claude –resume <name>または/resume <name>に登録済みの名前を渡して、ピッカーを経由せずに該当セッションを直接開く方法です。

名前の一致は現在のリポジトリとそのworktree全体に対して行われます。完全一致する名前が一つだけなら、別のworktreeにあるセッションでもそのまま再開されます。名前があいまいで複数のセッションに一致する場合の挙動は、二つのコマンドで異なります。

コマンド 完全一致 あいまいな名前
claude –resume <name> 直接再開する 名前を検索語として入れた状態でピッカーを開く
/resume <name> 直接再開する エラーを報告する(引数なしの/resumeでピッカーを開き直す)

他のリポジトリにあるセッションをピッカーから選んだ場合は、その場で再開せず、cdコマンドと再開コマンドをクリップボードへコピーします。選んだセッションのプロジェクトディレクトリが既に存在しないときは、失敗するcdコマンドを渡す代わりに、現在のディレクトリでそのセッションを再開します。

セッションに名前を付ける6つの方法

セッション名とは、セッションピッカーで見つけやすくし、あとから名前だけで再開できるようにするための識別ラベルです。複数のタスクを並行して進めているときほど効いてきます。

名前を設定できる操作は、公式ページによれば次の6通りです。

タイミング 設定方法
起動時 claude -n auth-refactor のように-nオプションを渡す
セッション中 /rename auth-refactor を実行する(名前はプロンプトバーにも表示される)
セッションピッカーから セッションをハイライトしてCtrl+Rを押す
プラン受け入れ時 プランモードでプランを受け入れると、まだ名前が無い場合に限りプラン内容から生成されたタイトルが付く
claude.aiまたはClaudeアプリから Remote Controlセッションの名前を変更すると、CLI側にも同じ名前が反映される(Claude Code v2.1.221以降)
デスクトップアプリから デスクトップアプリ内でセッションの名前を変更する

名前が重複した場合の扱いも決まっています。例えば実行中の別セッションが既にauth-refactorという名前を使っているときに、同じ名前で新しいセッションを起動すると、Claude Codeは先に名前を持っていたセッションの名前をそのまま残し、後から起動した側をauth-refactor-graceful-unicornのような二語のサフィックス付きの名前に変えたうえで、その旨を知らせます。自分で名前を選びたければ/renameを実行し直せます。この自動リネームはClaude Code v2.1.232以降の挙動で、それより前は両方のセッションが同じ名前のまま残っていました。

名前を付けなかったセッションにも、既定表示名(作業ディレクトリ名と2文字のサフィックスを組み合わせたもの。再開ハンドルとしては使えません)と、最初のプロンプトから生成されるタイトル(こちらはclaude –resumeや/resumeにそのまま渡して再開できます)の二種類のラベルが自動で付きます。

再開時に復元されるもの・復元されないもの

セッションの復元とは、会話履歴そのものだけでなく、使用モデル・エージェント・アクティブなゴール・スケジュール済みタスクといった、セッション終了時点の状態をまとめて呼び戻す処理を指します。

公式ページが明記している復元対象は次のとおりです。会話履歴は、ツール呼び出しと結果を含めて全体が復元されます。ただし前のプロセスがクラッシュなどで終了した時点で実行中だったツール呼び出しは、再開しても完了済みにも再実行にもならず、Claude側には結果が記録される前に打ち切られた呼び出しとして見え、実際に反映されたか確認してから動くよう促されます(CLAUDE_CODE_RESUME_INTERRUPTED_TURN環境変数を設定した場合を除く。この挙動はv2.1.281からで、それより前は打ち切られた呼び出しを会話から落とすか、単なる中断として見せていました)。モデルは基本的に使っていたものを引き継ぎますが、廃止されたモデルであったり、–modelフラグやANTHROPIC_MODEL系の環境変数を起動時に渡していたりすると引き継がれません。–agentやagent設定で始めたセッションは、そのエージェントのツール制限とモデルを保ったまま再開され、再開時に–agentを渡せば別のエージェントへ切り替えられます。サブエージェントの定義自体の書き方はClaude Codeのサブエージェントの記事で解説しています。アクティブなゴールは引き継がれますがターン数・タイマー・トークン消費の基準値はリセットされ、期限が切れていないスケジュール済みタスクは復元されます。バックグラウンドのBashタスクとモニタータスクは復元されません。

一方で、起動時に渡したフラグの全部が復元されるわけではありません。–mcp-config・–settings・–plugin-dir・–fallback-model、–add-dirで追加したディレクトリに依存していた場合は、再開のたびに同じフラグを渡し直す必要があります。プラグインの読み込み方はClaude Codeのプラグインの記事で扱っているとおり–plugin-dirで指定しますが、この指定は自動では戻りません。settings.jsonやsettings.local.jsonのような標準の設定ファイルは起動のたびに読み直されるので、そちらに書いてある内容は改めて渡す必要はありません。

権限モードは再開の経路によって復元ルールが変わる

権限モードの復元ルールとは、ターミナルのclaude –continue・非対話型のclaude -p・VS Code・セッションピッカー・セッション内の/resumeのどの経路で再開したかによって、Claude Codeが再開後にどの権限モードで開始するかを分ける規則です。権限モードそのものの種類はClaude Codeの権限設定の記事で解説しています。

ターミナルからclaude –continue、claude –resume <session-id>、または一つのセッションにしか一致しないclaude –resume <name>を-p無しで実行した場合、下の表の例外を除いて、セッションが終了した時点の権限モードがそのまま復元されます。–permission-modeや–dangerously-skip-permissionsを渡せば、復元されたモードを上書きできます。

セッション終了時のモード 再開経路 再開後のモード
bypassPermissions ターミナル 新規セッションと同じ既定モード(再度バイパスするには起動時のフラグか設定で明示する)
plan ターミナル 新規セッションと同じ既定モード
auto ターミナル autoのまま(アカウントがautoモードの要件を今も満たす場合に限る)
Manual ターミナル 新規セッションが既定でautoモードになる環境ではManualのまま、設定ファイルのdefaultModeが効く環境ではそのモード
plan 非対話型(4つの条件をすべて満たす場合) planモードのまま
任意のモード 非対話型(それ以外の場合) 新規のclaude -p実行と同じ既定モード
plan VS Code planモードのまま(VS Code側の例外あり)

セッションピッカーから選んだ場合と、セッション内で/resumeを実行した場合は、この表の対象外です。どちらも保存されていた権限モードを復元せず、その時点で新しいセッションを始めるのと同じモード、あるいは今の会話が動いている権限モードをそのまま引き継ぎます。非対話型のclaude -p –resumeやclaude -p –continueがplanモードのまま再開されるのは、–permission-prompt-toolを渡していて–permission-mode系のフラグを渡していない、–fork-sessionを渡していない、チャネル経由の実行でない、という条件が全部そろったときだけです。

100,000トークンを超えるセッションを再開したときの3つの選択肢

サマリーから再開とは、Pro・Maxプランで約1時間以上操作がなく100,000トークンを超えたセッションを再開したときに、最初のメッセージを送る前に表示されるダイアログで選べる、会話の引き継ぎ方の選択肢のことです。

この条件に当てはまるセッションはプロンプトキャッシュが既に失効しているため、ダイアログでどれを選んでも次のリクエストは一度だけ全履歴を処理し直します。違いはその後のリクエストで何を送るかです。

選択肢 その後どうなるか
サマリーから再開 その場で要約を1回実行し、以降は全履歴の代わりに要約・直近のやり取り・最近読んだファイル最大5件を送る
セッション全体をそのまま再開 会話を変更せず読み込み、最初のメッセージ送信後に全履歴を再処理・再キャッシュしてから使う
今後は聞かないでください セッション全体をそのまま再開し、以後はこのダイアログを表示しない

そのまま再開すれば会話の細部はすべて残りますが、リクエストごとのコストは会話の大きさに応じて増えます。サマリーから再開すればリクエストごとのコストは下がりますが、要約から漏れた内容はClaudeのコンテキストに残りません。履歴を要約に置き換えるコマンド自体は/compactで、セッションを終了せずに手動で呼び出すこともできます。コンテキストや利用量の考え方はClaude Codeの使用量とコストの記事で扱っています。

/branchでセッションを分岐する

/branchとは、それまでの会話をコピーして新しいセッションへ切り替え、元のセッションはそのまま残しておく機能です。別のやり方を試したいときに、進めてきた道筋を失わずに済みます。

セッション内で/branch try-streaming-approachのように名前を付けて実行するか、名前を省けば最初のプロンプトから自動で名前が付きます(v2.1.198以降は圧縮後の会話でも元の最初のプロンプトまでさかのぼって名前を付け、それより前のバージョンではBranched conversationという固定名にフォールバックしていました)。コマンドラインからは、claude –continue –fork-sessionのように–continueや–resumeへ–fork-sessionを組み合わせます。実行すると新しいブランチと元のセッション、二つのセッションIDが表示され、元のセッションは変更されずピッカーに残り続けます。

/branchは会話をコピーして実行中のプロセスの書き込み先を切り替えるだけなので、何が新しいブランチに引き継がれるかは次のように分かれます。

状態 /branch後どうなるか
会話履歴 /branchを実行した時点までコピーされる
「このセッションで許可」した権限 同じプロセス内なので引き継がれる(–fork-sessionで別プロセスへフォークした場合は引き継がれず再度承認が必要)
実行中のバックグラウンドサブエージェント・バックグラウンドBashコマンド 動作を続け、出力は切り替え先の新しいブランチに表示される
Remote Controlの接続 接続されたままで、スマホやブラウザ側も新しいブランチのメッセージを受け取り続ける

フォークせずに同じセッションを二つのターミナルで再開すると、両方のメッセージが一つのトランスクリプトに混ざって記録されます。会話ではなくコードとやり取りの巻き戻しをしたいときは、/branchではなくチェックポイント機能を使います。分岐と巻き戻しの違いはClaude Codeの/rewind使い方の記事で解説しています。

セッション内でコンテキストを管理する|/clear・/compact・/context

コンテキスト管理コマンドとは、セッションを終了せずにコンテキストウィンドウの中身を操作するための、/clear・/compact・/contextという3つのコマンドを指します。

/clearは空のコンテキストで新しく始めるコマンドです。それまでの会話は保存されており、/resumeで再開するか、同じClaude Codeプロセスの中であれば巻き戻しメニューの「前のセッション」からも戻れます。引数を付けずに/clearを実行すると、新しい会話は–nameや/renameで設定していた名前を引き継ぎますが、AIが生成したタイトルは引き継ぎません。今離れる会話の方に名前を付けたい場合は、/clear release-prepのように名前を引数として渡します。/compact [指示]は履歴を要約に置き換えるコマンドで、角括弧の指示を付けると要約の観点を指定できます。/contextは今何がコンテキストを占めているかを表示します。

スクリプトからセッションデータを取得する4つの方法

スクリプト連携とは、人が読むために整形された/exportの出力とは別に、構造化データとしてセッションの内容や実行結果をプログラムから取得するための4つのインターフェースのことです。

まず/exportは、現在の会話をクリップボードへコピーするか、メッセージとツール出力を読みやすいテキストとして書き出すメニューを開きます。ファイル名を渡せばメニューを飛ばしてそのファイルへ直接書き込めます。これに対して、スクリプトが解析しやすい構造化データを得る手段は次の4つです。

やりたいこと 使うインターフェース
Claudeを1回実行して結果を受け取る claude -pに–output-format jsonまたはstream-jsonを付け、結果・セッションID・使用量・コストをJSONで受け取る
既存のセッションに追加で質問する claude -p –resume <session-id>にフォローアップの指示を渡し、構造化された返答を受け取る
セッションの出来事に反応する hooksやステータスラインのコマンドが入力として受け取るtranscript_pathを読む(SessionEndフックで終了時にトランスクリプトを保管できる)
TypeScript・PythonアプリにClaudeを組み込む Agent SDKを使い、メッセージ単位でプログラムから受け取る

例えば、既存のセッションに要約だけを追加で聞きたいときは、claude -p –resume <session-id> –output-format json “summarize what we changed” | jq -r ‘.result’ のように、セッションIDと–output-format jsonを組み合わせてjqで結果だけを取り出せます。hooksからトランスクリプトのパスを受け取る書き方はClaude Codeのフックの記事で扱っている入力フィールドの一つです。

トランスクリプトの保存場所と削除・移動の設定

トランスクリプトとは、~/.claude/projects/<project>/<session-id>.jsonlという場所にJSONL形式で保存される、セッションの会話そのものを記録したファイルです。

<project>の部分は、作業ディレクトリのパス全体から、英数字以外の文字を-に置き換えて作られます。変換後の名前が200文字を超える場合は、200文字に切り詰めたうえでフルパスのハッシュを追記し、ファイルシステムの制限内に収めます。各行はメッセージ・ツール使用・メタデータのいずれかを表すJSONオブジェクトですが、この内部形式はバージョンごとに変わり得るため、セッションデータを直接パースするスクリプトはリリースのたびに壊れる可能性があります。データを扱うなら、直接パースする代わりに/exportか前述のスクリプト向けインターフェースを使うべきだと公式ページも述べています。

保存場所や保持期間、書き込み自体は、次のように設定で変更できます。

やりたいこと 設定
~/.claudeから保存先を移す CLAUDE_CONFIG_DIR環境変数
<project>ディレクトリ名を自分で決める CLAUDE_CONFIG_DIRと合わせてCLAUDE_CODE_PROJECT_DIR_NAME環境変数を設定する
既定30日の保持期間を変更する settings.jsonのcleanupPeriodDays
デスクトップ・Coworkのトランスクリプトの年齢上限を設定する desktopSessionCleanupPeriodDays(ユーザー設定・管理設定・–settings)
全モードでトランスクリプトの書き込みを止める CLAUDE_CODE_SKIP_PROMPT_HISTORY環境変数
非対話型の1回分だけ書き込みを止める claude -pの–no-session-persistenceフラグ

CLAUDE_CODE_PROJECT_DIR_NAMEを使うと、そのセッションのトランスクリプトと自動メモリを自分で決めた名前の下にまとめて置けます。自動メモリやCLAUDE.mdの役割自体はClaude CodeのCLAUDE.md書き方の記事で解説しています。ただしCLAUDE_CODE_PROJECT_DIR_NAMEはCLAUDE_CONFIG_DIRと一緒に設定しないと無視され、使える文字は英字・数字・ハイフン・アンダースコアの1〜64文字だけです。トランスクリプトは保持スイープの規則で自動的に期限切れになりますが、もっと早くプロジェクトのトランスクリプトと関連状態を消したい場合はclaude project purgeを実行します。claude rm <id>でバックグラウンドセッションを削除しても、そのトランスクリプト自体はディスクに残り、claude –resumeから引き続き参照できます。

よくある質問(FAQ)

Q1. claude –continueとclaude –resumeはどう使い分けますか。
claude –continueは現在のディレクトリの最新セッションを、選ぶ手間なくそのまま開き直すコマンドです。claude –resumeは引数なしだとセッションピッカーを開き、複数の候補から選んで再開するときに向いています。特定の名前やセッションIDが分かっているなら、claude –resume <name>やclaude –resume <session-id>で直接指定することもできます。
Q2. セッションに名前を付け忘れるとどうなりますか。
名前を付けなくても、作業ディレクトリ名と2文字のサフィックスを組み合わせた既定表示名と、最初のプロンプトから生成されたタイトルの2種類が自動で付きます。既定表示名は再開の手がかりとしては使えませんが、生成されたタイトルはclaude –resumeや/resumeにそのまま渡して再開できます。あとから見分けやすくしたい場合は/renameで名前を付け直せます。
Q3. /branchとチェックポイントによる巻き戻しはどう違いますか。
/branchは会話のコピーを作って別のセッションへ切り替える機能で、元のセッションは変更されずそのまま残ります。一方でコード変更や会話を特定の時点まで戻す操作はチェックポイントの役割で、こちらはClaude Codeの/rewind使い方の記事で解説しているとおり同じセッションの中で完結します。
Q4. 他のプロジェクトディレクトリからでも同じセッションIDを再開できますか。
できます。Claude Codeは現在のプロジェクトとそのgit worktreeを先に探し、見つからなければマシン上の他の全プロジェクトを探します。ただし複数のプロジェクトに同じIDのトランスクリプトが残っている場合は一つに絞れず、見つからなかった旨が表示されます。
Q5. トランスクリプトの保存期間や保存場所は変更できますか。
変更できます。保存先そのものはCLAUDE_CONFIG_DIR環境変数で移せ、既定30日の保持期間はsettings.jsonのcleanupPeriodDaysで調整できます。特定の1回だけ書き込みを止めたいなら、claude -pの–no-session-persistenceフラグを使います。
Q6. Claude Projectsとこの記事のセッション管理は同じ機能ですか。
別の機能です。ここで扱っているセッション管理は、CLIで一つの会話を保存・再開・分岐する仕組みを指します。チャット履歴やナレッジをまとめて扱うClaude ProjectsについてはClaude Projectsの使い方の記事を参照してください。

まとめ

Claude Codeのセッションは自動でローカル保存され、claude –continue・claude –resume・/resumeという3つの入口から戻れます。会話履歴やモデル、エージェントは基本的に復元されますが、–mcp-configや–plugin-dirのような起動時フラグは再度渡す必要があり、権限モードは再開の経路ごとに復元ルールが異なります。長く空けたセッションを再開するときはサマリーか全履歴かを選べ、/branchを使えば元のセッションを残したまま別の道を試せます。トランスクリプトの保存場所・保持期間も設定で変えられるので、まずは名前付けと–continue・–resumeの使い分けから試してみてください。

このサイトは株式会社S.Lineが運営しています。記事内の店舗予約・LINE登録・講座の案内には、当社または当社が集客を担当するサービスの広告(PR)が含まれます。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社S.Line 代表取締役。偏差値39から起業し、AIとSNSの活用で「普通の人」が成果を出す方法を発信。

目次