チェックポイントの仕組み
Claude で作業する際、チェックポイント機能は送信する各プロンプトがターンを開始する前のコード状態を自動的にキャプチャします。自動追跡
Claude Code は、ファイル編集ツールで行われたすべての変更を追跡します。- 送信する各プロンプトがターンを開始するたびに新しいチェックポイントが作成されます
- Claude Code はセッション内の最新 100 個のチェックポイントのファイルスナップショットを保持します。古いチェックポイントを破棄すると、残りのチェックポイントが参照しないスナップショットファイルが削除されます。ただし、各ファイルの最初のスナップショットは除外されます。これは VS Code 拡張機能がセッション diff のベースラインとして使用します。
- チェックポイントはセッションと共に保存されるため、再開したセッションでも
/rewindで戻ることができます - Claude Code は保持期間スイープでセッションのファイルスナップショットを削除します。デフォルトではセッションが最後に保存されてから約 30 日後です。スナップショットが削除されたチェックポイントに巻き戻すと、
No files were restoredエラーで失敗する可能性があります。スナップショットをより長く保持するには、cleanupPeriodDaysを設定してください。
巻き戻しと要約
/rewind を実行するか、プロンプト入力が空の状態で Esc キーを 2 回押して、巻き戻しメニューを開きます。
プロンプト入力にテキストが含まれている場合、ダブル
Esc はメニューを開く代わりにテキストをクリアします。クリアされたテキストは入力履歴に保存されるため、巻き戻しメニューを終了した後に Up キーを押して呼び出すことができます。- コードと会話を復元: コードと会話の両方をそのポイントに戻します
- 会話を復元: 現在のコードを保持しながら、そのメッセージに巻き戻します
- コードを復元: 会話を保持しながら、ファイルの変更を戻します
- ここから要約: このポイント以降の会話を圧縮して要約し、コンテキストウィンドウスペースを解放します
- ここまで要約: このポイント前の会話を要約に圧縮し、後のメッセージはそのまま保持します
- キャンセル: 変更を加えずにメッセージリストに戻ります
クリアされた会話を超えて巻き戻す
同じ Claude Code プロセスの前の段階で/clear を実行した場合、巻き戻しメニューはリストの最上部に /resume <session-id>(前のセッション) というラベルの追加エントリを表示します。これを選択して、/clear が実行される前にアクティブだった会話を再開します。このエントリは Claude Code を終了するか別のセッションを再開するまで利用可能であり、Claude Code v2.1.191 以降が必要です。以前のバージョンでは、/resume を実行してリストから前のセッションを選択してください。
要約をガイドする
要約はディスク上のファイルを変更せず、元のメッセージはセッショントランスクリプトに保持されるため、Claude は詳細を参照できます。要約が焦点を当てるべき内容をガイドするには、矢印キーで 要約 オプションをハイライトし、行が コンテキストを追加(オプション) と表示されている場所に指示を入力してから、Enter キーを押します。数字キーでオプションを選択すると、指示なしで即座に要約されます。
要約はセッションを同じ状態に保ち、コンテキストを圧縮します。これは対象を絞った
/compact のようなものです。元のセッションを保持したまま異なるアプローチを試したい場合は、代わりに /branch または claude --continue --fork-session を使用してください。一般的なユースケース
チェックポイントは以下の場合に特に便利です。- 代替案の検討: 開始点を失わずに異なる実装アプローチを試します
- ミスからの回復: バグを導入したり機能を破損させた変更をすばやく取り消します
- 機能の反復: 動作状態に戻すことができるという確信を持って変更を試験します
- コンテキストスペースの解放: 冗長なデバッグセッションを中間地点から要約し、初期指示を保持します
制限事項
Bash コマンドの変更は追跡されません
チェックポイント機能は、bash コマンドで変更されたファイルを追跡しません。たとえば、Claude Code が以下を実行する場合:サブエージェントの編集は復元されません
サブエージェントは Claude のファイル編集ツールで編集を行いますが、Claude Code は通常、セッションのチェックポイントでこれらの編集をキャプチャしません。巻き戻しがそれらを復元するかどうかは、サブエージェントの実行方法によって異なります:- フォアグラウンドフォークスキル:
context: forkを持つスキルがフォアグラウンドで実行され、自分のターン中にワーキングツリーを編集するため、巻き戻しは通常どおりその編集を復元します。background: falseを設定してフォークをフォアグラウンドで実行します。いくつかの状況(スキルページに記載)では、この設定に関係なくそこで実行されます。 - その他のサブエージェント:巻き戻しは編集を復元しません。git を使用してそれらを元に戻してください。これには、バックグラウンドで実行されるフォークスキル(デフォルト)と、バックグラウンド
/code-review --fix実行が含まれます。
外部の変更は追跡されません
チェックポイント機能は、現在のセッション内で編集されたファイルのみを追跡します。Claude Code の外部で手動で行ったファイルの変更や、他の同時セッションからのエディットは、通常キャプチャされません。ただし、現在のセッションと同じファイルを変更する場合は除きます。ターン中に送信されたメッセージはチェックポイントされません
Claude が作業中にキューに入れたメッセージが実行中のターン内に Claude に到達すると、新しいターンを開始する代わりにそのターンに参加します。メッセージは会話に表示されますが、Claude Code はそれのチェックポイントを作成せず、巻き戻しメニューにはリストされません。Claude Code が独自のターンとして送信するキューに入れたメッセージは、通常どおりチェックポイントを取得します。 そのようなメッセージを削除するか、メッセージの後に Claude が行った編集を取り消すには、ターンを開始したプロンプトに巻き戻します。これにより、メッセージが到達する前に Claude が行った作業を含む、ターン全体が巻き戻されます。シンボリックリンクおよびハードリンクパスは復元されません
チェックポイント機能は、シンボリックリンクまたはハードリンクされたファイルを巻き戻しません。/rewind メニューから Restore code(コードを復元)または Restore code and conversation(コードと会話を復元)を選択すると、Claude Code は追跡されたパスのうち、シンボリックリンクまたはハードリンクであるパスをスキップし、Restored the code, but skipped N files(コードを復元しましたが、N 個のファイルをスキップしました)という警告を表示します。スキップされたファイルは現在の内容を保持します。セッションの変更の 1 つを取り消すには、Claude に編集を逆にするよう依頼するか、ファイルを自分で編集してください。ドットファイルマネージャーがプロジェクトにシンボリックリンクする設定ファイルと、pnpm がその場所にハードリンクするファイルの両方がこのカテゴリに該当します。
復元がスキップするパスを確認するには、復元する前に /debug でデバッグログを有効にします:~/.claude/debug/<session-id>.txt のデバッグログには、スキップされた各パスが記載されます。スキップの理由と復旧手順については、エラーリファレンスのスキップされたファイルエントリを参照してください。
バージョン管理の代替ではありません
チェックポイントは、クイックなセッションレベルの復旧用に設計されています。永続的なバージョン履歴とコラボレーションの場合は、Git などのバージョン管理を引き続き使用して、コミット、ブランチ、長期履歴を管理してください。関連項目
- Interactive mode - キーボードショートカットとセッションコントロール
- Commands -
/rewindを使用したチェックポイントへのアクセス - CLI reference - コマンドラインオプション