Claude Code のチェックポイント機能:/rewind で変更を元に戻す方法(2026年)
プロンプト入力欄が空のときに Esc を2回押すか、/rewind と入力してチェックポイントを選び、復元する対象(コード、会話、またはその両方)を選択します。チェックポイントはプロンプトごとに自動で作成され、セッションごとに直近100件が保持され、30日後に自動削除されます(設定変更可能)。ただし /rewind は bash コマンドを取り消せず、subagent の編集を常に復元できるわけではなく、git の代わりになるものでもありません。
- 執筆時点(2026年8月)の公式ドキュメント code.claude.com/docs/en/checkpointing、/commands、/settings と直接照合しています。これは変化の速い機能なので、依存する前に最新の公式ドキュメントを確認してください。
チェックポイントが実際に保存するもの
Claude Code は、送信するすべてのプロンプトの前に、コードの状態を自動的にキャプチャします。まず最初に正しく押さえておきたい事実を、公式ドキュメントに沿っていくつか挙げます。
- ユーザーのプロンプトごとに新しいチェックポイントが作成されます - 自動的に行われ、有効化の必要はありません。
- 追跡されるのは Claude 自身のファイル編集ツールによる変更だけです - ディスク上で発生するすべての変更ではありません(詳細は後述の「取り消せないもの」のセクションを参照)。
- セッションごとに直近100件のチェックポイントが保持されます。 古いチェックポイントが破棄されると、残っているどのチェックポイントからも参照されなくなったスナップショットファイルも削除されます - ただし各ファイルの最初のスナップショットは例外で、VS Code 拡張機能がそのセッションの差分表示の基準として保持します。
- チェックポイントは会話とともに保存されるため、セッションを
/resumeした後でも/rewindは引き続き使えます。 - チェックポイントは30日後にセッションとともに削除されます(デフォルトのクリーンアップルールの場合)。これは
settings.jsonのcleanupPeriodDaysで調整でき(現行ドキュメントではデフォルト30、最小1日)、リリースごとに変わり得る値なので、正確な数値に依存する前に確認してください。
Claude Code を使い始めたばかりで、セッションやプロンプト、ツール呼び出しが何を意味するのか分からないという方は、このガイドの続きに進む前に Claude Code とは何か から始めてください。
/rewind の開き方と使い方(ステップバイステップ)
rewind メニューを開く方法は2つあります。
/rewindと入力して Enter を押します。- プロンプト入力欄が空の状態で
Escを2回押します。
よくある落とし穴: プロンプト欄にテキストが入力されている場合、
EscEscは rewind メニューを開くのではなく、その下書きを入力履歴に消し込むだけです。消えたテキストは失われていません - メニューでの操作を終えた後にUpを押せば呼び戻せます。
rewind メニューには、そのセッション中に送信したすべてのプロンプトが一覧表示されます。地点を選んでから、アクションを選択します。
| アクション | 内容 |
|---|---|
| コードと会話を復元 | コードと会話の両方を選択した地点に戻します。 |
| 会話を復元 | 現在のコードを保ったまま、そのメッセージまで巻き戻します。 |
| コードを復元 | 会話を保ったまま、ファイルの変更を元に戻します。 |
| ここから要約 | この地点から先の会話を要約に圧縮し、コンテキストの空きを増やします。 |
| ここまでを要約 | この地点より前の会話を圧縮し、それ以降のメッセージはそのまま残します。 |
| やめておく | 何も変更せずにメニューを終了します。 |
2つのコード復元オプションは、選択したチェックポイントに実際に元に戻せる追跡済みのファイル変更がある場合にのみ表示されます - そうでない場合、メニューには「会話を復元」、2つの要約オプション、「やめておく」だけが表示されます。どちらの要約オプションでも、「add context (optional)」欄に指示を入力して、要約が何に焦点を当てるかを誘導できます。数字キーで選択した場合は、追加の指示なしで即座に要約されます。
/rewind で取り消せないもの
これは、他の多くのガイドが省略したり単純化しすぎたりする部分です。公式ドキュメントに基づく、4つの実際の制約を挙げます。
| 制約 | 詳細 |
|---|---|
| bash コマンドによる変更は追跡されない | bash 経由で実行される rm file.txt、mv old.txt new.txt、cp source.txt dest.txt は rewind で取り消せません - 追跡されるのは Claude のファイル編集ツールを通じた変更だけです。 |
| subagent の編集は通常は復元されない | 唯一の例外は、フォアグラウンドで context: fork を使って実行される skill(background: false)で、これはあなた自身のターン中に作業ツリーを編集するため、rewind は通常どおりそれらの編集を復元します。それ以外の subagent - バックグラウンド(デフォルト)で実行される forked skill や、バックグラウンドの /code-review --fix を含む - は rewind では復元されません。代わりに git を使ってください。 |
| 外部からの変更は追跡されない | Claude Code の外部で行った手動編集や、別の同時実行セッションからの編集は、現在のセッションと同じファイルにたまたま触れた場合を除き、通常はキャプチャされません。 |
| シンボリックリンク/ハードリンクされたファイルはスキップされる | 「コードを復元」または「コードと会話を復元」を選ぶと、Claude Code は追跡対象のパスのうちシンボリックリンクやハードリンクであるものをすべてスキップし、Restored the code, but skipped N files という警告を表示します。どのパスがスキップされるかを事前に確認するには、復元前に /debug をオンにしてください - ログは ~/.claude/debug/<session-id>.txt に出力されます。 |
そして、上のどの一行よりも重要なことが1つあります。チェックポイントは高速なセッションレベルの復旧のために作られており、バージョン管理の代わりではありません。恒久的な履歴、ブランチ、共同作業には、やはり git が必要です。
/rewind と git と /clear の比較 - 判断早見表
ここで最も実用的な問い:どの状況でどのツールを使うか? 正しいものを選べば数秒で済み、間違えると午後が丸ごと潰れることもあります。
| シナリオ | 最適なツール | 理由 |
|---|---|---|
| タスクの途中で Claude の直近の編集を取り消したい | /rewind → コードを復元 | 速く、Claude Code を離れる必要がなく、望むなら会話をそのまま保てます。 |
| 会話が脱線したがコードは問題ない | /rewind → 会話を復元 | すでに正しいファイルには触れずに、コンテキストだけを巻き戻します。 |
| 動作している状態を恒久的に保存したい | git commit | チェックポイントは約30日後に自動削除され、本物のバージョン管理ではありません。コミットこそが永続的な履歴です。 |
Claude が rm/mv/npm install を実行し、それを元に戻す必要がある | git(または手動修正) - /rewind は 使わない | bash 由来の変更はチェックポイントで追跡されないため、rewind では手を出せません。 |
| コンテキストが膨大だが作業は続けたい | /rewind → 要約、または /compact | トランスクリプト内の元の詳細を失うことなく、会話を圧縮してコンテキストの空きを確保します。 |
| まっさらな状態から始めたいがファイルは残したい | /clear | 空のコンテキストで新しい会話を開始します。ディスク上のファイルはそのままです。 |
コマンドリファレンスにある正確な一行説明は次のとおりです:/rewind - 「roll code and conversation back to a checkpoint, or summarize part of the conversation」;/clear - 「start a new conversation with empty context」;/compact - 「free up context by summarizing the conversation so far」。元の会話を失わずに別の方向を試したい場合は、/branch もあります - これは現在の地点で会話を分岐させます。
/clear を越えて巻き戻す(v2.1.191 以降の新機能)
これは、このガイドの中で最も知られていないテクニックです。同じ Claude Code プロセス内で先ほど /clear を実行していた場合、rewind メニューにはリストの一番上に追加の項目が表示されます:/resume <session-id> (previous session)。それを選ぶと、/clear を実行する前に存在していた、まさにその会話に戻れます。
これに頼る前に知っておくべきことがいくつかあります。
- この項目はClaude Code を終了するか、別のセッションを再開するまでしか利用できません - 恒久的なものではありません。
- これには Claude Code v2.1.191 以降が必要です。それより古いバージョンでは項目が表示されません - 代わりに
/resumeを手動で使い、リストから前のセッションを選んでください。 - このバージョン制限自体が、覚えておく価値のあることの証拠です:チェックポイントはまだリリースごとに変化しており、固定された API 面ではありません。
私が実際に使っている、安全に試すための習慣
私が実際にこの2つのツールをどう組み合わせているかを紹介します:すでにクリーンに動作するマイルストーン(機能の完成、バグの修正、テストがグリーン)で git にコミットし、それらのコミットのあいだに起きる小さなミスは /rewind に吸収させます。早め早めに巻き戻すのは、基本的にタダです - 数秒で済み、失うものは何もありません。大きく脱線してしまった会話を立て直すのは、まったく安くありません。コンテキストや要件をもう一度説明するはめになり、それでも Claude は同じミスを繰り返すことがあります。
この習慣は、バイブコーディングの考え方と直接つながります:安価な実験、素早い巻き戻し、動作している状態を壊すことへの恐れがない。だからこそ AI を使った TDD はチェックポイントと非常に相性がよいのです - レッド・グリーン・リファクタのループはどれも、Claude が誤った方向に進んだときの安全な巻き戻し地点になります。
この中で AgentKit はどこに位置づけられるか
境界をはっきりさせておきます:/rewind は Claude Code のネイティブ機能で、完全に単体で動作し、インストールするものは何もありません。AgentKit(Claude Code の中で動作する有料キットで、Codex や OpenAI AgentKit とは別物)は、このチェックポイントの仕組みには一切触れず、置き換えもしません。役に立つのはこんな場面です:AgentKit の brainstorm → plan → cook → ship ワークフローは、同じセッション内で複数の編集ステップを実行するため、ある $ak:cook のステップが誤った方向に進んだとき、/rewind を使えばセッションの残りを失うことなく、そのステップだけを取り消せます。詳しくは AgentKit レビューをお読みいただくか、こちらで AgentKit をご覧ください。
よくある質問(FAQ)
/rewind は bash/ターミナルのコマンドを取り消しますか?
いいえ。チェックポイントは Claude のファイル編集ツールを通じた変更だけを追跡します。rm、mv、cp のような bash 経由で実行されるコマンドはキャプチャされず、rewind では取り消せません - 代わりに git か手動修正を使ってください。
チェックポイントはどのくらい保持され、それを変更できますか?
デフォルトでは、チェックポイントは30日後にセッションとともに削除され、セッションごとに直近100件までが保持されます。保持期間は settings.json の cleanupPeriodDays で変更できます(デフォルト値と場所は執筆時点でドキュメントと照合済みです - 正確な数値に依存する場合は再確認してください)。
古いセッションを再開した後でも巻き戻せますか?
はい。チェックポイントは会話とともに保存されるため、セッションを /resume した後も、そのセッションの保存済みチェックポイントに対して /rewind は通常どおり機能します。
/clear した後で、古いチェックポイントを取り戻したくなったらどうなりますか?
/rewind を開いてください - リストの一番上に /resume <session-id> (previous session) が表示されます。それを選ぶと、/clear する前の会話に戻れます。これには Claude Code v2.1.191 以降が必要で、アプリを終了するか別のセッションを再開するまでしか利用できません。それより古いバージョンでは /resume を手動で使う必要があります。
/rewind は git の代わりになりますか?
いいえ、そのつもりで作られてもいません。チェックポイントは高速でセッション単位の復旧のために存在しており、恒久的な履歴や共同作業のためではありません。永続的な保存状態やブランチ、チームでの作業には、やはり git が必要です。
subagent の編集は rewind で復元されますか?
通常は復元されません。例外は、フォアグラウンドで context: fork を使って実行される skill(background: false)で、これはあなた自身のターン中に作業ツリーを編集し、その編集は通常どおり復元されます。それ以外の subagent - デフォルトのバックグラウンドで実行される forked skill や、バックグラウンドの /code-review --fix を含む - を元に戻すには git が必要です。
まとめ
/rewind は高速なセッションレベルの取り消しツールであり、git の代わりではありません。コミットとコミットのあいだの小さなミスにはこれを使い、恒久的に残したいものや、Claude が bash 経由で変更したものには git を使ってください。どのツールに手を伸ばすべきか迷ったら、上の判断早見表を手元に置いておき、Claude に新しい方向を試させる前に、クリーンなマイルストーンでコミットしてください。