チェックポイント
Claude のエディット内容と会話を追跡、巻き戻し、要約してセッション状態を管理します。
Claude Code は、作業中に Claude が行ったファイルエディットを自動的に追跡し、変更をすばやく取り消したり、問題が発生した場合に以前の状態に巻き戻したりできます。
チェックポイントの仕組み
Claude と作業する際、チェックポイント機能は、ターンを開始するプロンプトを送信するたびに、その前のコードの状態を自動的に保存します。
自動追跡
Claude Code は、ファイル編集ツールによって行われたすべての変更を追跡します。
- ターンを開始するプロンプトを送信するたびに、新しいチェックポイントが作成されます
- Claude Code は、セッション内の直近 100 個のチェックポイントについてファイルのスナップショットを保持します。古いチェックポイントを破棄すると、残っているどのチェックポイントからも参照されていないスナップショットファイルが削除されます。ただし、各ファイルの最初のスナップショットは、VS Code 拡張機能がセッションの差分のベースラインとして使用するため削除されません。
- Claude Code はチェックポイントを会話とともに保存するため、セッションを再開した後でも
/rewindを実行できます - Claude Code は、保持期間のクリーンアップでセッションのファイルスナップショットを削除します。デフォルトでは、セッションが最後にスナップショットを保存してから約 30 日後に削除されます。スナップショットが削除されたチェックポイントに巻き戻そうとすると、
No files were restoredで失敗することがあります。スナップショットをより長く保持するには、cleanupPeriodDaysを設定してください。
巻き戻しと要約
/rewind を実行するか、プロンプト入力が空のときに Esc を 2 回押すと、巻き戻しメニューが開きます。
[!NOTE]
プロンプト入力にテキストが含まれている場合、
Escを 2 回押すとメニューは開かず、代わりにテキストがクリアされます。クリアされたテキストは入力履歴に保存されるため、巻き戻しメニューでの操作を終えた後にUpを押すと呼び出せます。
巻き戻しメニューには、セッション中に送信したプロンプトが一覧表示されます。操作したい時点を選択し、次のいずれかのアクションを選びます。
- Restore code and conversation:コードと会話の両方をその時点に戻します
- Restore conversation:現在のコードを維持したまま、そのメッセージまで会話を巻き戻します
- Restore code:会話を維持したまま、ファイルの変更を元に戻します
- Summarize from here:この時点以降の会話を要約に圧縮し、コンテキストウィンドウの空きを確保します
- Summarize up to here:この時点より前の会話を要約に圧縮し、それ以降のメッセージはそのまま残します
- Never mind:変更を加えずにメッセージ一覧に戻ります
2 つのコード復元オプションは、選択したチェックポイントに元に戻すべき追跡済みのファイル変更がある場合にのみ表示されます。その時点以降にファイル編集が記録されていない場合、メニューには Restore conversation、要約オプション、Never mind のみが表示されます。
会話を復元するか Summarize from here を選択すると、選択したメッセージの元のプロンプトが入力フィールドに復元されるため、再送信したり編集したりできます。
Summarize up to here を選択すると、入力が空の状態で会話の末尾に戻ります。どちらの要約オプションでも、圧縮されたメッセージがあった位置に Summarized conversation マーカーが会話内に表示されます。
次のプロンプトを送信する前に終了すると、巻き戻したメッセージが戻ることがある
戻ってきたメッセージを再び削除するには、そのセッションで /rewind を実行して同じプロンプトを選択し、Restore conversation を選びます。終了する前に Claude にプロンプトを送信してください。Claude Code は巻き戻した会話をそのプロンプトとともに保存するためです。復元したファイルは、巻き戻した時点の状態のまま残ります。
クリアした会話より前に巻き戻す
同じ Claude Code プロセス内で以前に /clear を実行していた場合、巻き戻しメニューの一覧の先頭に /resume <session-id> (previous session) というラベルの項目が追加で表示されます。これを選択すると、/clear を実行する前にアクティブだった会話を再開できます。この項目は、Claude Code を終了するか別のセッションを再開するまで利用できます。
要約の内容を指示する
要約してもディスク上のファイルは変更されず、元のメッセージはセッションのトランスクリプトに残るため、Claude は引き続き詳細を参照できます。要約で重点を置く内容を指示するには、矢印キーで Summarize オプションをハイライトし、add context (optional) と表示されている行に指示を入力してから Enter を押します。数字キーでオプションを選択すると、指示なしですぐに要約されます。
[!NOTE]
要約は同じセッションにとどまったままコンテキストを圧縮するもので、対象を絞った
/compactのように機能します。元のセッションをそのまま保持しつつ分岐して別のアプローチを試すには、代わりに/branchまたはclaude --continue --fork-sessionを使用してください。
一般的なユースケース
チェックポイントは以下の場合に特に便利です。
- 代替案の検討: 開始点を失わずに異なる実装アプローチを試します
- ミスからの回復: バグを導入したり機能を破損させた変更をすばやく取り消します
- 機能の反復: 動作状態に戻すことができるという確信を持って変更を試験します
- コンテキストスペースの解放: 冗長なデバッグセッションを中間地点から要約し、初期指示を保持します
制限事項
Bash コマンドの変更は追跡されません
会話の中で Claude がファイル編集ツールでいったんファイルを編集すると、/rewind はその後 Bash コマンドがそのファイルに加えた変更も取り消します。Bash コマンドだけが変更したファイルは追跡されず、そのまま残ります。元に戻すには、Git などのバージョン管理を使用してください。
巻き戻しメニューでは、各プロンプトの下に、Claude がすでに編集していたファイルへの変更が、何によって行われたかにかかわらずカウントされます。シェルコマンドがそのようなファイルを変更したプロンプトにも、ファイルの変更が表示されます。
サブエージェントの編集は復元されません
サブエージェントは Claude のファイル編集ツールで編集を行いますが、Claude Code は通常、セッションのチェックポイントでこれらの編集をキャプチャしません。巻き戻しがそれらを復元するかどうかは、サブエージェントの実行方法によって異なります:
- フォアグラウンドフォークスキル:
context: forkを持つスキルがフォアグラウンドで実行され、自分のターン中にワーキングツリーを編集するため、巻き戻しは通常どおりその編集を復元します。background: falseを設定してフォークをフォアグラウンドで実行します。いくつかの状況(スキルページに記載)では、この設定に関係なくそこで実行されます。 - その他のサブエージェント:巻き戻しで復元されるのは、会話の中で Claude がすでに編集していたファイルのみです。サブエージェントによるその他のファイルへの編集は残るため、Git などのバージョン管理を使用して元に戻してください。これには、バックグラウンドで実行されるフォークスキル(デフォルト)と、バックグラウンド
/code-review --fix実行が含まれます。
外部の変更は追跡されません
チェックポイント機能は、現在のセッション内で編集されたファイルのみを追跡します。Claude Code の外部で手動で行ったファイルの変更や、他の同時セッションからのエディットは、通常キャプチャされません。ただし、現在のセッションと同じファイルを変更する場合は除きます。
ターン中に送信されたメッセージはチェックポイントされません
巻き戻しメニューでは、Claude がまだ作業中に入力したメッセージに No code restore(コードの復元なし)と表示されることがあります。このように表示されたメッセージには、それ自体のチェックポイントがありません。
そのメッセージの後に Claude が行ったファイル編集を取り消すには、ターンを開始したプロンプトを選択し、Restore code(コードを復元)または Restore code and conversation(コードと会話を復元)を選択します。これにより、メッセージが到達する前の編集を含め、ターン全体での 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 - コマンドラインオプション