factsClaude Codecheckpointing

stable4 日前 · 2026-08-09

Checkpointing

概要

Claude のファイル編集とコンバセーションの状態を自動で記録し、/rewind で以前の状態へ巻き戻す機能。セッション単位の復旧手段であり、バージョン管理の代替ではない。

仕様

チェックポイントの作成と保持

  • ユーザーのプロンプトごとに新しいチェックポイントが作られる
  • ファイルスナップショットはセッション内の最新 100 チェックポイント分を保持する
  • 古いチェックポイントを破棄すると、残るチェックポイントから参照されないスナップショットファイルは削除される。ただし各ファイルの最初のスナップショットは削除されない(VS Code 拡張がセッション差分のベースラインに使うため)
  • チェックポイントはコンバセーションとともに保存されるため、セッションを再開したあとでも /rewind を実行できる
  • チェックポイントはセッションとともに 30 日後に削除される。期間は cleanupPeriodDays 設定で変更する

rewind メニュー

  • 起動方法: /rewind を実行する、またはプロンプト入力が空の状態で Esc を 2 回押す
  • プロンプト入力にテキストがある場合、Esc 2 回はメニューを開かずに入力をクリアする。クリアしたテキストは入力履歴に保存され、Up で呼び戻せる
  • メニューにはセッション中に送信した各プロンプトが一覧される

選択できるアクション:

アクション内容
Restore code and conversationコードとコンバセーションの両方をその時点へ戻す
Restore conversationコードは現在のまま、コンバセーションだけをそのメッセージへ戻す
Restore codeコンバセーションは保ったまま、ファイル変更を元に戻す
Summarize from hereその時点以降のコンバセーションを要約に圧縮し、コンテキストウィンドウを空ける
Summarize up to hereその時点より前を要約に圧縮し、以降のメッセージはそのまま残す
Never mind何も変更せずメッセージ一覧へ戻る
  • コードを戻す 2 つの選択肢は、選択したチェックポイントに巻き戻す対象のファイル変更が記録されている場合にのみ表示される。記録が無い場合は Restore conversation / 要約 2 種 / Never mind のみ
  • Restore conversation または Summarize from here の後、選択したメッセージの元のプロンプトが入力欄に戻される
  • Summarize up to here の場合はコンバセーション末尾に留まり、入力欄は空になる
  • いずれの要約でも、圧縮されたメッセージの位置に Summarized conversation のマーカーが表示される

/clear より前への巻き戻し

  • 同一の Claude Code プロセス内で /clear を実行済みの場合、rewind メニューの先頭に /resume <session-id> (previous session) という項目が追加される
  • この項目は Claude Code を終了するか別セッションを resume するまで利用でき、v2.1.191 以降が必要
  • それ以前のバージョンでは /resume を実行して一覧から前のセッションを選ぶ

要約への指示

  • 要約してもディスク上のファイルは変わらず、元のメッセージはセッションのトランスクリプトに残る
  • Summarize の行を矢印キーで選択し、add context (optional) と表示された箇所に指示を入力して Enter を押すと、要約の焦点を指定できる
  • 数字キーで選択した場合は指示なしで即座に要約される

制約・注意点

  • bash コマンドによる変更は追跡されない。 rm / mv / cp などで変更されたファイルは rewind で戻せない。追跡対象は Claude のファイル編集ツール経由の変更のみ
  • サブエージェントの編集は通常は復元されない。
    • フォアグラウンドで動く context: fork の skill は自分のターン中に作業ツリーを編集するため、通常どおり rewind で復元される(background: false を設定するとフォアグラウンドで動く。設定に関わらずフォアグラウンドで動く状況もいくつかあり、facts/claude-code/skills.md に挙げてある)
    • それ以外のサブエージェント(既定であるバックグラウンドの forked skill、バックグラウンドの /code-review --fix を含む)の編集は復元されない。git で戻す
  • 外部の変更は追跡されない。 Claude Code の外で手作業で加えた変更や、並行する別セッションの編集は、同じファイルを触っていた場合を除き記録されない
  • symlink / hard link は復元されない。 Restore code 系を選ぶと、追跡対象のうち symlink または hard link のパスはスキップされ Restored the code, but skipped N files の警告が出る。スキップされたファイルは現在の内容のまま残る
    • スキップされたパスを確認するには、復元前に /debug でデバッグログを有効にする。~/.claude/debug/<session-id>.txt にスキップされたパスが記録される
    • v2.1.216 より前は、/rewind は追跡パス上のリンク越しに書き込み・削除を行い、警告も出していなかった
  • バージョン管理の代替ではない。恒久的な履歴や共同作業には Git などを使う

関連

  • facts/claude-code/interactive-mode.md
  • facts/claude-code/commands.md
  • facts/claude-code/cli-reference.md
  • facts/claude-code/sub-agents.md
  • facts/claude-code/skills.md
  • facts/claude-code/settings.md