Claude Code sessions productivity CLI developer-tools

Claude Code --continue と --resume 完全ガイド2026——セッションコンテキストを二度と失わない方法

Prompt Shelf ·

Claude Codeで最も活用されていない機能のひとつがセッション管理だ。多くの開発者は毎回新しいセッションを開いてしまう。その結果、コードベースの説明、コンテキストの再提示、セットアップ作業を毎回繰り返すことになる。

Claude Codeはすべてのセッションを保存している。適切なフラグを使えば、接続が切れたとき、マシンを変えたとき、複雑なリファクタリングの途中で別の作業を挟んだときでも、まったく同じ状態から再開できる。

このガイドでは、2026年6月時点のすべてのセッション管理機能を解説する。


セッションコンテキストが重要な理由

新しいセッションでClaude Codeに「作業を続けて」と頼んでも、それは再開ではなく再構築だ。Claudeはファイルを読み直し、コードベースの構造を再把握し、何をやろうとしていたかのメンタルモデルを作り直す必要がある。

再開されたセッションが持つもの:

  • 完全な会話履歴
  • 前のセッションで行ったすべてのファイル読み取りと差分
  • 前の判断の背景にある推論の流れ
  • 試みて失敗したことへの認識

長いリファクタリング、アーキテクチャの議論、数百のツール呼び出しにまたがるデバッグセッションでは、このコンテキストに実質的な価値がある。失うと最初からやり直しになる。


セッションの保存場所

Claude Codeはセッションを以下に保存する:

~/.claude/projects/<プロジェクトパス>/<session-id>.jsonl

各セッションはJSONL形式(改行区切りJSON)で、1行1イベント。デフォルトでは30日間保持される。保持期間を変更するには:

// ~/.claude/settings.json
{
  "cleanupPeriodDays": 90
}

0に設定するとセッションを無期限に保持する(ディスク容量の許す限り)。


主要フラグ

--continue / -c:最新セッションを再開

# 現在のプロジェクトで最も新しいセッションを再開
claude --continue
claude -c  # 省略形

最も手早く前回の続きに戻れる方法。ピッカーも検索も不要。現在の作業ディレクトリの最新セッションを見つけて開く。

ヘッドレス用途でも使える:

claude -c -p "中断したデータベースマイグレーションの続きを進めて"

--resume / -r:インタラクティブセッションピッカー

# インタラクティブセッションピッカーを開く
claude --resume
claude -r  # 省略形

# セッション名またはUUIDで特定のセッションを再開
claude --resume auth-refactor
claude --resume 7f3a9c2b-...

ピッカーは直近順にセッションをグループ表示し、タイムスタンプと各セッションの最後のメッセージのプレビューを表示する。

ピッカーのキーボードショートカット:

ショートカット動作
Ctrl+Aこのマシン上のすべてのプロジェクトのセッションを表示
Ctrl+W現在のリポジトリのすべてのWorktreeにわたるセッションを表示
Ctrl+B現在のgitブランチのセッションだけに絞り込む
/検索モード — 入力してセッションを絞り込む

GitHubのPR URLをピッカーに直接貼り付けると、そのPRに関連するセッションを見つけられる。

--from-pr:PRに紐付いたセッションを再開

claude --from-pr 482
claude --from-pr https://github.com/org/repo/pull/482

PRの作業中にClaude Codeセッションを開始し、そのセッションがPRに関連付けられていた場合に使う。数日後にPRレビューに戻るときに便利。


セッションの命名

名前なしのセッションは自動生成された名前がつく。名前付きセッションは検索可能で意味を持つ:

# 名前付きで新しいセッションを開始
claude -n "payment-gateway-refactor"
claude --session-name "fix-race-condition-auth"

会話中にセッション名を変更する:

/rename payment-v2-migration

セッション名はアクティブなときにプロンプトバーに表示される。複数のセッションが動いているときに、今どのコンテキストにいるかがわかりやすくなる。


セッションのフォーク

元のセッションに影響を与えずに分岐したいとき——たとえば同じ問題への別アプローチを試すときなど——は:

# セッションを再開しつつフォーク(再開したポイントから分岐した新しいセッションを作成)
claude --continue --fork-session
claude --resume auth-refactor --fork-session

元のセッションはそのまま保持される。フォークは同じコンテキストから始まるが、その後は独立したセッションとして扱われる。フォーク側の変更は元のセッションに影響しない。

特に以下のケースに有用:

  • どちらも失わずに2つの実装アプローチをテストしたいとき
  • リスクのある変更を試しながら、きれいな回復ポイントを保持したいとき
  • チームメンバーにセッションを引き渡しつつ、自分のコピーも残したいとき

セッション内の /resume コマンド

終了せずにセッションを切り替えるには:

/resume

アクティブなセッション内から同じインタラクティブピッカーを開く。現在のセッションは自動的に保存される。


セッションのエクスポート

ドキュメント化、引き継ぎ、アーカイブのためにセッション全体を保存するには:

/export

セッションのトランスクリプトをクリップボードにコピーする。ファイル名を引数に指定するとディスクに書き込む:

/export session-auth-refactor-2026-06-17.md

エクスポートには、すべての会話のやりとり、ツール呼び出し、ファイル操作が読みやすい形式で含まれる。


チェックポイント:作業を失わずに巻き戻す

セッションの再開とは別に、Claude Codeはユーザーの各プロンプト時点でチェックポイントを自動作成する。このチェックポイントにより、セッションをまたいで再開するだけでなく、セッション内でも巻き戻しができる。

チェックポイントへのアクセス:

  • 入力欄が空の状態で Esc を2回押す
  • /rewind と入力する

チェックポイントピッカーは現在のセッション内のすべてのユーザーターンを表示する。各チェックポイントに対して5つのアクションが使える:

アクション動作
Restore code and conversation会話とすべてのファイル変更をこの時点に戻す
Restore conversation会話のみ戻す(ファイル変更はそのまま)
Restore codeファイル変更のみ戻す(会話はそのまま)
Summarize from hereこの時点以降のメッセージをサマリーに圧縮(/compactの部分版)
Summarize up to hereこの時点以前のメッセージをサマリーに圧縮

重要な制限: チェックポイントはClaude Codeのファイル編集ツールで変更されたファイルのみ追跡する。Bashコマンド(sedmvgit checkoutなど)で変更されたファイルは追跡されず、元に戻らない。

これは --fork-session とは別物。フォークは再開したポイントから別のセッションを作成する。チェックポイントは現在のセッション内で巻き戻す。


実用パターン

パターン1:毎日のセッション継続

毎朝、作業中の機能について昨日のセッションを継続して始める:

# 昨日のコンテキストで開始
claude -c

# もしくはどのタスクか明示する
claude --resume feature-user-auth

「ユーザー認証フローを実装中で、JWTの実装はsrc/auth/に、リフレッシュトークンのローテーションを途中まで実装していて…」という説明を毎回するより速い。

パターン2:フォークで安全な実験

リスクのある構造的変更を行う前に:

# 現在の状態を保存して分岐する
claude --continue --fork-session -n "try-new-db-schema"

実験がうまくいかなければ、元のセッションはそのまま残っている。--resumeで戻れる。

パターン3:複数機能の並行作業

# 機能Aのセッション
claude -n "feature-analytics-v2" --bg "アナリティクスダッシュボードを実装して、データモデルから始めて"

# 別のターミナルで機能Bのセッション
claude -n "feature-notifications" --bg "通知システムを構築して、メール+プッシュ通知"

# 全実行中セッションを確認
claude agents

# どちらか先に終わったものにアタッチ
claude attach feature-analytics-v2

パターン4:引き継ぎドキュメント

複雑なセッションをチームメートに引き渡したり、アーカイブしたりする前に:

/export handoff-feature-payments-2026-06-17.md

このエクスポートにより、下された判断、試みたアプローチ、現在の作業状況の完全な記録が得られる。


ヘッドレスでのセッション再開

自動化のために、--session-idでセッションコンテキストを渡せる:

# 最後のセッションのIDを取得
LAST_SESSION=$(claude -p "" --output-format json 2>/dev/null | jq -r '.session_id' | head -1)

# 後のジョブでそのセッションを再開
claude -p "タスクを続けて" --session-id "$LAST_SESSION" --output-format json

または開始時にセッションIDをキャプチャする:

SESSION_DATA=$(claude -p "APIのレート制限の問題を分析し始めて" --output-format json)
SESSION_ID=$(echo "$SESSION_DATA" | jq -r '.session_id')

# 後で使うために保存
echo "$SESSION_ID" > .claude-session-id

# 次のCIステップで再開
claude -p "発見事項を報告して修正を提案して" \
  --session-id "$(cat .claude-session-id)" \
  --output-format json

トラブルシューティング

--continue が再開の代わりに新しいセッションを開く

最も一般的な原因:前のセッションが別の作業ディレクトリにある。セッションの検索はプロジェクトパスをベースにしている。前回が ~/projects/myapp/src からで、今回が ~/projects/myapp からなら、別のプロジェクトとして扱われる。

解決策:あるプロジェクトに対して常に一定のルートディレクトリからClaude Codeを起動するか、--resumeに明示的なセッション名を指定する。

ピッカーに最近のセッションが表示されない

cleanupPeriodDays(デフォルト30日)より古いセッションは削除される。プロジェクトのパスが変わった(名前変更、移動)場合、新しいパスではセッションが表示されない。

チェックポイントの巻き戻しでファイルが元に戻らない

Bashコマンドで変更されたファイルはチェックポイント対象外。Claudeが git checkout -- src/auth.ts を実行したり sed -i でファイルを変更した場合、その変更はチェックポイントの範囲外。Claude Codeの組み込みファイルツールによる編集のみが追跡される。


まとめ

目標コマンド
最新のセッションを継続claude --continue または claude -c
インタラクティブにセッションを選ぶclaude --resume または claude -r
名前で再開claude --resume セッション名
PRからセッションを再開claude --from-pr 482
名前付きで開始claude -n "名前"
リスクのある作業の前にフォークclaude --continue --fork-session
会話内でセッション切り替え/resume
セッションのトランスクリプトをエクスポート/export
セッション内で巻き戻し/rewind またはEsc2回
全実行中セッションの一覧claude agents

Claude Codeのセッションシステムは、複数日にわたるワークフロー、並行トラック、安全な実験、引き継ぎをサポートするのに十分洗練されている。毎回新しいセッションを始めることで、多くの開発者は生産性を大きく無駄にしている。

関連記事

Related Articles

Explore the collection

Browse all AI coding rules — CLAUDE.md, .cursorrules, AGENTS.md, and more.

Browse Rules