本ページはプロモーションが含まれています

AI

Claude Codeセッション管理完全ガイド|再開・保存・分岐術

トム

・都内自社開発企業勤務/Javaバックエンドエンジニア
/Java歴10年以上 ・首都圏在住30代
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎 詳細なプロフィール

Claude Codeで作業していて、ターミナルをうっかり閉じてしまった。次の日に立ち上げたら、昨日まで積み上げた文脈がまるごと消えていた——私も最初の頃、これを何度もやらかしました。せっかく細かく指示を出して育てた会話が、一瞬でリセットされる虚しさ。あれ、地味にこたえるんですよね。

でも安心してください。Claude Codeのセッションはローカルに保存されていて、ちゃんと再開できます。むしろ「保存・再開・分岐・削除」を覚えるだけで、作業効率が体感で倍くらい変わります。

この記事では、私が毎日Claude Codeを使う中でたどり着いたセッション管理の基本操作を、コマンドつきで全部まとめました。読み終わる頃には「閉じても怖くない」状態になっているはずです。

この記事でわかること

  • 前回の続きを再開する --continue--resume の使い分け
  • セッションに名前を付けて複数タスクを管理する方法
  • 会話を分岐(fork)して別アプローチを安全に試す手順
  • セッションの保存場所・エクスポート・削除のやり方

Claude Codeのセッションとは?まず仕組みを理解する

Claude Codeのセッションとは、プロジェクトディレクトリに紐付いて保存される「会話の履歴」です。終了しても消えず、後から中断地点に戻れます。ここを理解しておくと、後の再開コマンドがスッと頭に入ります。

stateDiagram-v2 [*] --> 起動: hermes / claude 起動 --> 作業中: 指示を送信 作業中 --> 応答待ち: AIが処理中 応答待ち --> 作業中: 応答を受信 作業中 --> 保存済み: ターミナル終了 保存済み --> 再開: --continue / --resume 再開 --> 作業中: 続きから開始 作業中 --> 分岐: /fork で別ルート 分岐 --> 作業中: 並行セッション 作業中 --> [*]: セッション削除

勘違いしやすいのが「セッション=今開いているターミナルの中だけの一時的なもの」という思い込みです。私も最初はそう思っていました。実際は違います。

あなたが指示を出すたびに、その内容はローカルのファイルへ逐一書き込まれています。だからターミナルを閉じても、PCを再起動しても、履歴はディスクに残っているわけです。

この仕組みがわかると、発想が変わります。「閉じたら終わり」ではなく「いつでも続きから始められる作業ログ」として使える。複数のタスクを並行で抱えていても、それぞれを別セッションとして保存しておき、必要なときに呼び出せます。まずはこの土台を押さえましょう。

あわせて読む

セッションは「プロジェクト単位の会話履歴」

セッションはプロジェクトディレクトリごとに分かれて管理されます。つまり、あるフォルダで再開コマンドを打つと、そのフォルダで過去に行った会話だけが候補に出てきます。

プロジェクトAの履歴とプロジェクトBの履歴が混ざらないので、頭の中も散らかりません。逆にいうと、別フォルダで作った会話は、そのフォルダに移動しないと出てこない点だけ覚えておいてください。

履歴の保存場所は ~/.claude/projects/

セッションの実体は ~/.claude/projects/ の中にあります。プロジェクトのパスごとにフォルダが切られ、各会話が JSONL 形式のファイルとして保存される仕組みです。デフォルトの保持期間は30日。

中身を直接いじる必要はほぼありませんが、「ここに残っているんだ」と知っておくと安心感が違います。

# セッションの保存場所
~/.claude/projects/<プロジェクトのパス>/<session-id>.jsonl

前回の続きを再開する方法|--continue と --resume の違い

結論から言うと、直前の続きをサッと再開したいなら --continue、過去のどれかを選んで再開したいなら --resume です。この2つを使い分けるだけで、セッション再開の9割はカバーできます。私は1日に何度も使う、まさに主力コマンドです。

コマンド動作こんなときに
claude --continue最新のセッションを即再開さっきの続きをすぐやりたい
claude --resume一覧(ピッカー)を開くどれを再開するか選びたい
claude --resume <名前>指定セッションを直接再開目当ての会話が決まっている
/resume作業中に別会話へ切り替え起動したまま乗り換えたい

直前のセッションをすぐ再開する --continue

claude --continue(短縮形 -c)は、現在のディレクトリで一番新しいセッションを自動で開きます。セッションIDや名前を覚えておく必要がゼロなのが最大の魅力です。しかも再開と同時に指示も渡せるので、流れを止めずに作業へ戻れます。

# 直前の続きをそのまま再開
claude --continue

# 再開しながら指示も渡す
claude -c "さっきの続きで、バリデーションも追加して"

過去のセッションを選んで再開する --resume

「最新じゃなくて、3日前のあの会話に戻りたい」ときは claude --resume(短縮形 -r)です。引数なしで実行すると過去のセッション一覧が出て、各会話の概要やメッセージ数、最後に触った時間が見られます。

名前がわかっていれば claude --resume <名前> で一発で開けます。

# 一覧から選んで再開
claude --resume

# 名前を指定して直接再開
claude --resume auth-refactor

セッションピッカーの操作ショートカット一覧

ピッカー(一覧画面)はキーボードでサクサク操作できます。よく使うものだけ覚えておけば十分です。Space での中身プレビューは、似た会話が並んだときに「どれだっけ?」を解決してくれる地味な救世主です。

  • ↑ / ↓:セッション間を移動
  • Enter:選んだセッションを再開
  • Space:中身をプレビュー表示
  • Ctrl+R:その場で名前を変更
  • / または文字入力:検索でフィルタ

セッションに名前を付けて管理しやすくする

セッションに名前を付けておくと、一覧から目当ての会話を一瞬で見つけられます。これは複数タスクを並行で回す人ほど効いてきます。名前なしだと、一覧が「最初のプロンプトの抜粋」だらけになって、正直どれがどれだか分からなくなるんですよね。

起動時・作業中に名前を付ける3つの方法

名前を付けるタイミングは3つあります。起動時に決め打ちするか、作業の途中で付けるか、一覧画面から付けるか。私は「とりあえず始めて、内容が固まってきたら /rename で付ける」スタイルに落ち着きました。最初から完璧な名前を考えなくていいので気楽です。

# 起動時に名前を付ける
claude -n auth-refactor

# 作業中に名前を付ける(Claude Code内で実行)
/rename auth-refactor

一覧画面からなら、対象をハイライトして Ctrl+R を押すだけ。あとから「名前を付けておけばよかった」と思っても、その場で対応できます。

名前を付けると複数タスクの切り替えが楽になる

名前を付けたセッションは claude --resume <名前> でダイレクトに開けます。たとえば「認証まわり」「バグ修正」「ドキュメント書き」を別々の名前で持っておけば、頭を切り替えるたびにコマンド一発で該当の文脈へ飛べます。

タスクごとに脳のタブを開き直す感覚で、地味に集中力が保てます。

あわせて読む

セッションを分岐(fork)して別アプローチを試す

分岐(fork)とは、今までの会話をコピーして、そのコピー側で別の方針を試す機能です。元のセッションは無傷で残ります。「この実装、別のやり方も試したいけど、今のうまくいってる流れは壊したくない」——そんなときの保険として最高に便利です。

/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履歴を要約に置き換えて圧縮
/context今コンテキストを消費している中身を表示

どちらを使うべきか迷ったときの判断基準

判断はシンプルです。前の話を引き継ぐ必要がなければ /clear、引き継ぎたいけど重さを減らしたいなら /compact。新しいタスクに移るときは迷わず /clear、同じタスクを続けるけど会話が長くなりすぎたら /compact。私はこの2軸で機械的に選んでいます。

あわせて読む

セッションの保存・エクスポート・削除のやり方

セッションは自動で保存されますが、人が読める形で書き出したり、不要になったものを消したりもできます。「あの会話、記事のネタにしたい」「もう使わないから整理したい」というニーズに応える操作です。

会話をテキストで残す /export

/export を実行すると、今の会話をクリップボードにコピーするか、テキストファイルとして保存できます。メッセージもツールの出力も読みやすい形に整形されるので、作業ログの共有やブログの下書きにそのまま使えます。ファイル名を渡せば、そのファイルへ直接書き込みも可能です。

# 会話をファイルに書き出す(Claude Code内で実行)
/export session-log.txt

保存期間の変更とトランスクリプトの削除

セッションの保持期間はデフォルトで30日です。settings.jsoncleanupPeriodDays を変えれば、もっと長く残すことも短くすることもできます。個別に消したい場合は、~/.claude/projects/ 内の該当 JSONL ファイルを削除すればOK。

ただし消すと再開できなくなるので、念のため /export で残してから消すと安全です。

セッション管理でつまずきやすい3つの注意点

便利なセッション管理にも、知らないとハマる落とし穴があります。私が実際にやらかしたものを中心に、つまずきやすいポイントを先回りで共有します。先に知っておくだけで、ムダな「履歴どこ行った!」を防げます。

ディレクトリを移動すると履歴が見えなくなる

セッションは絶対パスをキーに管理されています。だからフォルダ名を変えたり、別の階層へ移動したりすると、過去の履歴が一覧に出てこなくなります。「消えた!」と焦る原因の多くがこれ。プロジェクトのパスはなるべく固定しておくのが無難です。

同じセッションを2画面で開くと履歴が混ざる

2つのターミナルで分岐せずに同じセッションを再開すると、両方のメッセージが1つの履歴に混ざってしまいます。並行で別作業をしたいなら、必ず分岐するか、別々のセッションとして開きましょう。

CLAUDE.md をプロジェクトに置いておくと、セッションをまたいで設定を引き継げるので、こちらも合わせて活用すると安定します。

あわせて読む

よくある質問(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 はコンテキストを空にするだけで、それまでの会話は保存されており、後から再開できます。

まとめ:Claude Codeのセッション管理で作業効率を上げる

Claude Codeのセッション管理は、覚えるコマンドこそ多く見えますが、実際に毎日使うのはほんの数個です。ここまでの内容を最後に圧縮しておきます。

  • 再開:直前は --continue、選ぶなら --resume
  • 管理-n/rename で名前を付けて見分ける
  • 分岐:別案を試すなら /branch で元を残す
  • 整理:仕切り直しは /clear、圧縮は /compact
  • 保存・削除/export で書き出し、不要なら JSONL を削除

私自身、セッション管理を覚える前は「閉じたら終わり」とビクビクしながら使っていました。でも仕組みを知ってからは、ターミナルを気軽に閉じられるし、タスクごとに会話を分けて並走できるしで、Claude Codeとの付き合い方そのものが変わりました。

まずは --continue--resume の2つから。今日の作業終わりに、ぜひ試してみてください。

あわせて読む
  • この記事を書いた人
  • 最新記事

トム

・都内自社開発企業勤務/Javaバックエンドエンジニア
/Java歴10年以上 ・首都圏在住30代
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎 詳細なプロフィール

-AI