06 セッション管理とチェックポイント

更新日:

セッションとは

プロジェクトのディレクトリに紐づいた、保存された会話。作業中も自動保存される(~/.claude/projects/ に JSONL)。
デスクトップアプリ・Web・VS Code はそれぞれ別の履歴を持つ(デスクトップでは /resume で CLI のセッションも再開可能)。

再開する

コマンド動作
claude --continue / -cこのフォルダの直近の会話を再開
claude --resume / -rセッション選択画面
claude --resume <名前>名前で直接再開
claude --from-pr 123そのPRに紐づくセッションから選ぶ
/resumeセッション中に別の会話へ切替(別名 /continue)。実行中のバックグラウンドセッションを選ぶと、そのままアタッチする

名前を付ける

  • /rename oauth-migration のように付けておくと後で探しやすい
  • 公式のすすめ: セッションをブランチのように扱う(作業の流れごとに1セッション)

分岐・コピー

操作動作
/branch今の時点で会話を分岐し、分岐先に移る(元はそのまま残る)
--fork-session再開時に新しいIDでコピー
/fork [指示]会話をコピーしてバックグラウンドの別セッションで動かす(自分はこのまま作業)
/subtask 作業会話を引き継いだサブエージェントに脇作業を任せ、結果を今の会話に戻す

チェックポイント(巻き戻し)

  • プロンプトを送るたびに自動でチェックポイントが作られ、Claude の編集前のファイルが保存される
  • Esc を2回(入力欄が空の時)または /rewind で巻き戻しメニュー
    • 会話だけ戻す / コードだけ戻す / 両方戻す
    • ここから要約 / ここまで要約(部分的なコンパクション)
  • 会話と一緒に保存されるので、ターミナルを閉じて再開しても巻き戻せる
  • 直近100チェックポイント分、約30日保持(cleanupPeriodDays で変更)

注意(git の代わりではない)

  • 追跡されるのは Claude のファイル編集ツールによる変更だけ
  • Bash コマンド(rm, sed -i, スクリプト)や外部プロセスによる変更は戻らない(v2.1.309 から sed -i も通常の Bash 扱い)
  • DB・API・デプロイなど外部への影響も戻らない
  • → 大事な節目では git でコミットしておく

活用法: 「失敗してもいいからこの大胆な方法を試して」→ ダメなら巻き戻して別案。

コンテキストの管理

  • /clear … 関係ない次の作業に移る時は必ずリセット(前の会話は /resume で戻れる)
  • /compact [焦点] … 要約して空きを作る
  • /context … 使用状況を確認
  • /btw … 会話に残さない脇道の質問
  • /recap … セッションの1行要約
  • 長時間放置した大きな会話は自動で要約されることがある(アイドル時のコンパクション → 02_仕組み(エージェントループ・ツール・コンテキスト))

データの場所・削除

  • トランスクリプト: ~/.claude/projects/<project>/*.jsonl
  • /export でテキスト書き出し
  • claude purge [path] でそのプロジェクトのローカル状態を全削除(旧名 claude project purge も動く)

関連