AIコーディングとエージェント

[Claude Code #5] /rewind:壊したコードをチェックポイントに戻す

Claude Code の /rewind は、プロンプトごとに自動保存されるチェックポイントを使って、コードと会話を復元します。Escを2回押して開くメニュー、復元・要約の選択肢、シェルの副作用など、元に戻せないものまで整理します。

読了 5 分
[Claude Code #5] /rewind:壊したコードをチェックポイントに戻すのカバー画像

AIに修正を任せて、30分後に後悔した経験は誰にでもあるでしょう。コミットもしていなければ、背中に冷や汗が流れます。

Claude Codeには、そんなときのための巻き戻しボタンがあります。/rewindです。

プロンプトを送るたびにコードの状態がチェックポイントとして残り、いつでもその時点にコードと会話を戻せます。

Claude Code 第4回/branchが分岐なら、今回は巻き戻しです。

チェックポイントは自動的に蓄積される

公式チェックポイントドキュメント時点での動作は次のとおりです。

ユーザープロンプトを送るたびにチェックポイントが1つ作成されます。個別に有効化したり、保存ボタンを押したりする必要はありません。

ファイルスナップショットは、セッションごとに直近100個のチェックポイントまで保持されます。チェックポイントは会話と一緒に保存されるため、セッションを再開したあとも/rewindできます。

巻き戻しメニューを開く

/rewindと入力するか、入力欄が空のときにEscを2回押すとメニューが開きます。

メニューには、現在のセッションで送ったプロンプトが時系列で表示されます。戻る地点を選ぶと、選択肢が表示されます。

  • コードと会話を両方復元:その時点まですべて戻す
  • 会話のみ復元:コードは現在の状態のまま、会話だけ巻き戻す
  • コードのみ復元:会話は維持し、ファイル変更だけを戻す

コードを復元する2つの項目は、その地点以降に追跡対象のファイル変更がある場合だけ表示されます。

会話を復元すると、その地点で使った元のプロンプトが入力欄に再び入力されます。指示を修正して、もう一度送ればよいのです。

Claude Codeのチェックポイント作成と/rewindの復元選択肢を示す図
プロンプトごとにチェックポイントが蓄積され、復元範囲を選んで戻します

巻き戻しの代わりに要約もできる

同じメニューには、要約の選択肢も2つあります。

ここから要約は、選択した地点以降の会話を要約に圧縮します。長いデバッグ過程を折りたたみ、コンテキスト領域を取り戻すために使えます。

ここまで要約は逆に、前半を圧縮して最近の会話をそのまま残します。

要約ではファイルに触れず、元のメッセージもセッション履歴に残ります。地点をピンポイントで指定する/compactと考えると分かりやすいでしょう。

戻せないもの

/rewindは万能ではありません。追跡する範囲は決まっています。

まず、シェルコマンドの副作用は追跡しません。Claudeがrmmvで変更したファイルは、巻き戻しで復元できません。追跡対象になるのは、ファイル編集ツールで変更したものだけです。

サブエージェントが変更したファイルも、通常は復元対象外です。フォアグラウンドで動くフォークスキルだけが例外で、デフォルトのバックグラウンドサブエージェントによる編集はgitで戻す必要があります。

セッション外で手動変更した内容や、シンボリックリンク・ハードリンクでつながったファイルも同様です。復元時にはこうしたパスをスキップし、いくつスキップしたか警告が表示されます。

チェックポイントはセッションとともに30日後に削除されることもあります。公式ドキュメントが強調している理由です。セッション単位の高速復旧用であり、gitのようなバージョン管理の代替ではありません。

SAFETY NET NOT A VAULTの文字と、ノートパソコンを受け止める安全ネット、gitの金庫を描いたイラスト
チェックポイントはネット、金庫はgitです

/clearした会話に戻る

/clearで会話を消した直後に「しまった」と思うこともあります。

同じClaude Codeプロセス内であれば、巻き戻しメニューの一番上に前のセッションへ戻る項目が表示されます(v2.1.191以降)。選択すると、/clear前にしていた会話がそのまま戻ります。

まとめ

/rewindは、プロンプト単位のチェックポイントでコードと会話を戻せる安全ネットです。Escを2回押すと開きます。

シェルコマンドの副作用は戻せないという制限だけ覚えておいてください。セッション内の実験は/rewindに、永続的な履歴はgitに任せればよいでしょう。

次回は、Claudeに達成条件を設定する/goalを扱います。目標を設定すると、ターンの終了ごとに別のモデルが条件を満たしたか判定し、まだなら作業が続きます。

出典と確認基準

あわせて読みたい

Claude Codeシリーズ

関連トピック