Claude Codeのターミナルをうっかり閉じてしまっても、積み上げた文脈は消えていません。
結論から言うと、セッションはローカルに保存されているため、--continueと--resumeを使い分けるだけで元通り再開できます。
この記事では、直前の続きの再開から、複数タスクの名前付け管理、会話の分岐(fork)、次回への引き継ぎまで、実際に毎日使っているコマンドだけをまとめました。
(本記事の内容は2026年9月時点のClaude Code仕様に基づきます。
セッション管理機能は更新が頻繁なため、最新の挙動は公式ドキュメントも合わせてご確認ください。)
この記事でわかること
- 前回の続きを再開する
--continueと--resumeの使い分け - セッションに名前を付けて複数タスクを管理する方法
- 会話を分岐(fork)して別アプローチを安全に試す手順
- セッションの保存場所・エクスポート・削除のやり方
- セッションを次回に引き継ぐための記録・運用方法
PARTS LIST /目次
Claude Codeのセッションとは?仕組みを理解する
Claude Codeのセッションとは、プロジェクトディレクトリに紐付いて保存される「会話の履歴」です。終了しても消えず、後から中断地点に戻れます。
セッション管理とは、この履歴を状況に応じて再開・分岐・整理・引き継ぐための一連の操作を指します。
ここを理解しておくと、後の再開コマンドがスッと頭に入ります。
claude で起動--continue / --resume で再開し、続きから作業中に戻る勘違いしやすいのが「セッション=今開いているターミナルの中だけの一時的なもの」という思い込みです。私も最初はそう思っていました。実際は違います。
あなたが指示を出すたびに、その内容はローカルのファイルへ逐一書き込まれています。
ターミナルを閉じても、PCを再起動しても、履歴はディスクに残っているわけです。
この仕組みがわかると、発想が変わります。「閉じたら終わり」ではなく「いつでも続きから始められる作業ログ」として使える。
複数のタスクを並行で抱えていても、それぞれを別セッションとして保存しておき、必要なときに呼び出せます。まずはこの土台を押さえましょう。
セッションは「プロジェクト単位の会話履歴」
セッションはプロジェクトディレクトリごとに分かれて管理されます。
つまり、あるフォルダで再開コマンドを打つと、そのフォルダで過去に行った会話だけが候補に出てきます。
プロジェクトAの履歴とプロジェクトBの履歴が混ざらないので、頭の中も散らかりません。
逆にいうと、別フォルダで作った会話は、そのフォルダに移動しないと出てこない点だけ覚えておいてください。
履歴の保存場所は ~/.claude/projects/
セッションの実体は ~/.claude/projects/ の中にあります。
プロジェクトのパスごとにフォルダが切られ、各会話が JSONL 形式のファイルとして保存される仕組みです。デフォルトの保持期間は30日。
中身を直接いじる必要はほぼありませんが、「ここに残っているんだ」と知っておくと安心感が違います。
保存場所そのものを変更したい場合は、環境変数 CLAUDE_CONFIG_DIR で ~/.claude の位置自体を変更することもできます。
# セッションの保存場所
~/.claude/projects/<プロジェクトのパス>/<session-id>.jsonl
セッション再開|--continueと--resumeの違い
結論から言うと、直前の続きをサッと再開したいなら --continue、過去のどれかを選んで再開したいなら --resume です。
この2つを使い分けるだけで、セッション再開の9割はカバーできます。私は1日に何度も使う、まさに主力コマンドです。
直前のセッションをすぐ再開する --continue
--continue とは、現在のディレクトリで一番新しいセッションを自動で開き直すオプションです(短縮形 -c)。
セッションIDや名前を覚えておく必要がゼロなのが最大の魅力です。しかも再開と同時に指示も渡せるので、流れを止めずに作業へ戻れます。
# 直前の続きをそのまま再開
claude --continue
# 再開しながら指示も渡す
claude -c "さっきの続きで、バリデーションも追加して"
過去のセッションを選んで再開する --resume
「最新じゃなくて、3日前のあの会話に戻りたい」ときは claude --resume(短縮形 -r)です。
引数なしで実行すると過去のセッション一覧が出て、各会話の概要(セッション名またはAI生成タイトル)、最後に触った時間、Gitブランチ、ファイルサイズが見られます。
名前がわかっていれば claude --resume <名前> で一発で開けます。
# 一覧から選んで再開
claude --resume
# 名前を指定して直接再開
claude --resume auth-refactor
スクリプト・CI連携向けの再開方法
対話操作だけでなく、スクリプトやCIから再開したい場面もあります。
--output-format json を付けると応答が構造化されたJSONで返り、session_id フィールドを後続コマンドで拾って再利用できます。
逆に一時的な調査で履歴を残したくないときは --no-session-persistence でセッション保存自体を無効化できます(非対話モード claude -p 専用のフラグです)。
# セッションIDをJSONで取得してスクリプトに渡す
claude --output-format json -p "初期タスク" | jq -r '.session_id'
# 一時的な調査で履歴を残さない(非対話モードと組み合わせる)
claude -p --no-session-persistence "一時的な調査プロンプト"
GitHub PRに紐づくセッションを再開する --from-pr
GitHub・GitHub Enterprise・GitLab・Bitbucketのいずれかでプルリクエスト(マージリクエスト)のレビュー対応をしていたとします。
その途中で、他の作業に切り替えた。そんな経験はありませんか。
claude --from-pr(PR番号を指定)を使えば、そのPRに紐づくセッションの一覧を呼び出せます。
PRごとに会話が整理されるので、「あのPRの続き、どのセッションだっけ」と探し回る必要がありません。
# PR番号を指定してセッション一覧を開く
claude --from-pr 1234
セッションピッカーの操作ショートカット一覧
ピッカー(一覧画面)はキーボードでサクサク操作できます。よく使うものだけ覚えておけば十分です。
Space での中身プレビューは、似た会話が並んだときに「どれだっけ?」を解決してくれる地味な救世主です。
- ↑ / ↓:セッション間を移動
- Enter:選んだセッションを再開
- Space:中身をプレビュー表示(ターミナルによっては
Ctrl+Vでも可) - Ctrl+R:その場で名前を変更
- / または文字入力:検索でフィルタ(GitHub・GitHub Enterprise・GitLab・BitbucketのPR/MRのURLをそのまま貼り付けると、そのPRから作られたセッションを直接検索できる)
- Ctrl+A:全プロジェクト(他ディレクトリ)のセッションを表示(もう一度押すと現在のリポジトリに戻る)
- Ctrl+W:現在のリポジトリの全worktreeのセッションを表示(マルチworktreeリポジトリでのみ表示、もう一度押すと現在のworktreeに戻る)
- Ctrl+B:現在のGitブランチのセッションのみ表示(もう一度押すと全ブランチ表示に戻る)
- Esc:ピッカーまたは検索モードを終了
- → / ←:グループ化されたセッションの展開・折りたたみ
セッションに名前を付けて管理しやすくする
セッションに名前を付けておくと、一覧から目当ての会話を一瞬で見つけられます。名前付けは複数タスクを並行で回す人ほど効いてきます。
名前なしだと、一覧が「最初のプロンプトの抜粋」だらけになって、正直どれがどれだか分からなくなります。
起動時・作業中に名前を付ける3つの方法
名前を付けるタイミングは3つあります。起動時に決め打ちするか、作業の途中で付けるか、一覧画面から付けるか。
私は「とりあえず始めて、内容が固まってきたら /rename で付ける」スタイルに落ち着きました。最初から完璧な名前を考えなくていいので気楽です。
# 起動時に名前を付ける
claude -n auth-refactor
# 作業中に名前を付ける(Claude Code内で実行)
/rename auth-refactor
一覧画面からなら、対象をハイライトして Ctrl+R を押すだけ。あとから「名前を付けておけばよかった」と思っても、その場で対応できます。
名前を付けると複数タスクの切り替えが楽になる
名前を付けたセッションは claude --resume <名前> でダイレクトに開けます。
たとえば「認証まわり」「バグ修正」「ドキュメント書き」を別々の名前で持っておけば、頭を切り替えるたびにコマンド一発で該当の文脈へ飛べます。
タスクごとに脳のタブを開き直す感覚で、地味に集中力が保てます。
名前を付け忘れたセッションを後から見分けるコツ
とはいえ、毎回名前を付け忘れることもあります。そんなときは、一覧画面で対象をハイライトして Space を押し、中身をプレビュー表示してみてください。
最初のプロンプトの抜粋から、どのタスクの会話だったか思い出せます。
見つけたら、その場で Ctrl+R を押して名前を付け直しておきましょう。
次に見失わないよう、以降は /rename をこまめに使う運用に切り替えるのがおすすめです。
セッションを分岐(fork)して別アプローチを試す
分岐(fork)とは、今までの会話をコピーして、そのコピー側で別の方針を試す機能です。元のセッションは無傷で残ります。
「この実装、別のやり方も試したいけど、今のうまくいってる流れは壊したくない」。そんなときの保険として最高に便利です。
/branch(起動時なら --fork-session)で会話をまるごとコピー/branch と --fork-session の使い方
分岐の入り口は2つあります。
作業中なら /branch、起動時なら --fork-session を --continue や --resume と組み合わせます。
分岐後は元のセッションがそのまま一覧に残るので、いつでも戻れます。
私はリファクタの方針で迷ったとき、両方の道を分岐で並走させて、良かったほうを採用しています。
# 作業中に分岐する(Claude Code内で実行)
/branch try-streaming-approach
# 起動時に直前セッションを分岐して再開
claude --continue --fork-session
分岐はいつ使うべき?向き・不向きの場面
分岐が向くのは「同じ前提から複数の選択肢を比べたい」場面です。逆に、単なる仕切り直しなら分岐は不要で、後述の /clear で十分。
なんでも分岐すると一覧が枝だらけになって、かえって管理が面倒になります。使いどころを絞るのがコツです。
- 向いている:実装方針A・Bを同条件で比較したいとき
- 向いている:うまくいった会話を壊さず実験したいとき
- 向かない:ただ話題を変えて仕切り直したいだけのとき
コンテキスト整理|/clearと/compact
セッションを離れずに、会話の中身だけを整理する方法もあります。それが /clear と /compact です。
長く話していると文脈が膨らんで、Claudeの動きがもっさりしてきます。そんなときに片付けるためのコマンドだと思ってください。
まっさらにする /clear、要約して圧縮する /compact
/clear はコンテキストを空にして新規スタートする操作です。それまでの会話は保存されるので、後から再開もできます。
一方 /compact は履歴を要約に置き換えて圧縮する操作。文脈は残しつつ、重さだけ落としたいときに使います。
/context で今なにがコンテキストを食っているか確認できるのも地味に便利です。
/clearと/compact、どちらを使うべき?
判断はシンプルです。前の話を引き継ぐ必要がなければ /clear、引き継ぎたいけど重さを減らしたいなら /compact。新しいタスクに移るときは迷わず /clear、同じタスクを続けるけど会話が長くなりすぎたら /compact。私はこの2軸で機械的に選んでいます。
/rewindでチェックポイントから会話・コードを巻き戻す
/clearや/compactが「今の文脈をどう扱うか」の整理なのに対し、/rewindは「過去のある時点まで丸ごと戻す」操作です。
Claude Codeは内部的にチェックポイントを保存しており、会話とコードの両方、会話のみ、コードのみのいずれかを選んで巻き戻せます。
「この変更、やっぱり違った」というときの取り消し手段として、分岐(fork)とは別の使い道があります。
# 作業中に実行(Claude Code内で)
/rewind
セッションの保存・エクスポート・削除のやり方
セッションは自動で保存されますが、人が読める形で書き出したり、不要になったものを消したりもできます。
「あの会話、記事のネタにしたい」「もう使わないから整理したい」というニーズに応える操作です。
会話をテキストで残す /export
/export を実行すると、今の会話をクリップボードにコピーするか、テキストファイルとして保存できます。
メッセージもツールの出力も読みやすい形に整形されるので、作業ログの共有やブログの下書きにそのまま使えます。
ファイル名を渡せば、そのファイルへ直接書き込めます。
# 会話をファイルに書き出す(Claude Code内で実行)
/export session-log.txt
保存期間の変更とトランスクリプトの削除
セッションの保持期間はデフォルトで30日です。
settings.json の cleanupPeriodDays を変えれば、もっと長く残すことも短くすることもできます。
例えば "cleanupPeriodDays": 3650 のように大きな値を設定すれば、実質的に自動削除されなくなります。
個別に消したい場合は、~/.claude/projects/ 内の該当 JSONL ファイルを削除すればOKです。
ただし消すと再開できなくなるので、念のため /export で残してから消すと安全です。
UUIDを指定して特定のセッションを起動する --session-id
--session-id <UUID> を使うと、セッションIDを直接指定して起動できます。
ID自体はUUID形式である必要がありますが、CI/CDパイプラインや自動化スクリプトから決まったセッションを呼び出したい場合に役立ちます。
# UUID形式のセッションIDを指定して起動
claude --session-id 550e8400-e29b-41d4-a716-446655440000
一覧だけをサッと確認したいときは
「再開はしないけど、一覧だけサッと見たい」というときも、実は専用のコマンドはありません。
claude --resume(引数なし)を実行してピッカーを開き、そのまま Esc で抜ければ一覧確認だけで済みます。
ここでも対象はカレントディレクトリの履歴に限られます。
Ctrl+A で全プロジェクトに範囲を広げて選択すると、該当プロジェクトへの cd と再開コマンドが自動でクリップボードにコピーされます。
手動で cd してから実行する必要はありません。
セッション管理でつまずきやすい3つの注意点
便利なセッション管理にも、知らないとハマる落とし穴があります。私が実際にやらかした失敗を中心に、つまずきやすいポイントをまとめました。
先に知っておくだけで、ムダな「履歴どこ行った!」を防げます。
ディレクトリを移動すると履歴が見えなくなる
セッションは絶対パスをキーに管理されているため、claude --resumeのピッカーには元のパスでしか出てきません。
ただしclaude --resume <session-id>でIDを直接指定すれば、現在のディレクトリとそのworktreeで見つからない場合に他の全プロジェクトを横断検索してくれます(他に同じIDを持つプロジェクトが1件だけなら自動解決)。
また/cdでディレクトリを移動した場合はセッションの保存先も新しいディレクトリに自動で再配置されます。
とはいえ挙動を毎回気にしたくないなら、プロジェクトのパスは固定しておくのが無難です。
同じセッションを2画面で開くと履歴が混ざる
2つのターミナルで分岐せずに同じセッションを再開すると、両方のメッセージが1つの履歴に混ざってしまいます。
並行で別作業をしたいなら、必ず分岐するか、別々のセッションとして開きましょう。
CLAUDE.md をプロジェクトに置いておくと、セッションをまたいで設定を引き継げるので、こちらも合わせて使うと安定します。
次回への引き継ぎ方法|記憶喪失を防ぐノート術
セッションそのものは保存されていても、「前回どこまで進めたか」「なぜその実装方針にしたか」を思い出すのに数分かかることは珍しくありません。
ここで効くのが、/export を応用した引き継ぎノートの運用です。
/export で引き継ぎメモを残す
作業の区切りで、Claude自身に「今回やったこと・決めたこと・次にやることをMarkdownでまとめて」と指示します。
まとめさせたあと、/export で会話をファイルに書き出しておきます。/export は要約だけでなく会話全体を読みやすいテキストにして書き出すので、末尾にまとめが残ります。長くなる場合は、Claudeに「まとめだけをファイルに保存して」と頼む方法もあります。
次回のセッション開始時にこのファイルを読ませれば、「前回の続きを教えて」の一言で文脈を復元できます。
# 作業終了時(Claude Code内で実行)
今回のセッションでやったこと・決めたこと・次にやることをMarkdownでまとめて
# 会話(末尾のまとめを含む)をファイルに書き出す
/export handoff-2026-08-12.md
.jsonlファイルを直接読ませて別マシンに引き継ぐ方法
セッションの実体は前述のとおり ~/.claude/projects/<プロジェクトのパス>/<session-id>.jsonl です。
このファイルを別マシンにコピーし、新しいセッションで「このファイル<パス>を読んで、続きから作業して」と指示すれば、文脈を復元できます。
ただし.jsonlの中身はClaude Code内部の実装形式です。
バージョン間の互換性は保証されていないため、あくまで/exportが使えないときの代替手段と割り切ってください。
/export が人間が読むための整形済みテキストを作る方法なのに対し、こちらはAI自身に生の会話履歴を再構成させる方法です。
サーバー側の不調で --resume がうまく動かないときの代替手段としても使えます。
CLAUDE.mdとの役割分担
CLAUDE.mdと引き継ぎノートは役割が異なります。
CLAUDE.mdはプロジェクト共通の恒久的なルール(コーディング規約や設計方針)を書く場所で、セッションが変わっても内容は変わりません。
一方、引き継ぎノートは「今回のタスクで何をしたか」という都度の作業ログです。
両方を使い分けることで、Claudeに何度も同じ説明をし直す手間が減ります。
よくある質問(FAQ)
Claude Codeのセッション管理でよく聞かれる疑問に、短く答えます。
Q. --continue と --resume の違いは?
A. --continue は最新のセッションを自動で再開し、--resume は一覧から選んで再開します。直前の続きなら --continue、過去のどれかなら --resume と覚えれば迷いません。
Q. セッションはどこに保存されますか?
A. ~/.claude/projects/ の中に、プロジェクトごと・セッションごとの JSONL ファイルとして保存されます。デフォルトの保持期間は30日です。
Q. 過去のセッションが一覧に出てこないのはなぜ?
A. プロジェクトのディレクトリを移動・改名した可能性が高いです。セッションは絶対パスで管理されるため、元のパスに戻すと再び表示されます。
Q. セッションを削除するには?
A. ~/.claude/projects/ 内の該当 JSONL ファイルを削除します。消すと再開できなくなるので、必要なら /export で書き出してからにしましょう。
Q. /clear すると会話は消えますか?
A. 消えません。/clear はコンテキストを空にするだけで、それまでの会話は保存されており、後から再開できます。
Q. Claude Codeのセッションを次回に引き継ぐにはどうすればいいですか?
A. 直接的な引き継ぎコマンドはありませんが、作業内容をClaudeにまとめさせて /export でファイルに書き出しておき(まとめだけをファイルに保存させる方法もあります)、次回のセッション開始時にそのファイルを読ませることで文脈を復元できます。
Q. GitHub PRに紐づくセッションを再開できますか?
A. できます。GitHubだけでなくGitHub Enterprise・GitLab・Bitbucketのプルリクエスト(マージリクエスト)にも対応しています。claude --from-pr <PR番号> を実行すると、そのPRに紐づくセッションの一覧(ピッカー)が開きます。
まとめ:セッション管理で作業効率アップ
Claude Codeのセッション管理は、覚えるコマンドこそ多く見えますが、実際に毎日使うのはほんの数個です。ここまでの内容を最後に圧縮しておきます。
- 再開:直前は
--continue、選ぶなら--resume - 管理:
-nや/renameで名前を付けて見分ける - 分岐:別案を試すなら
/branchで元を残す - 整理:仕切り直しは
/clear、圧縮は/compact - 保存・削除:
/exportで書き出し、不要なら JSONL を削除
私自身、セッション管理を覚える前は「閉じたら終わり」とビクビクしながら使っていました。
でも仕組みを知ってからは、ターミナルを気軽に閉じられるようになりました。
タスクごとに会話を分けて並走できるようにもなり、Claude Codeとの付き合い方そのものが変わりました。
まずは --continue と --resume の2つから。今日の作業終わりに、ぜひ試してみてください。
| REV. | DATE | 内容 |
|---|---|---|
| 7 | 2026-10-16 | 図解を描き直し(図面のデザインにそろえた) |
| 6 | 2026-10-06 | 記載内容の事実確認と修正 |
| 5 | 2026-09-01 | 2026年9月時点の情報で全体を見直し(古い記述を2件更新) |
| 4 | 2026-08-17 | 2026年8月時点の情報で全体を見直し(古い記述を7件更新) |
| … ほか2回の改訂 | ||
| 1 | 2026-06-29 | 初版 |








