Claude Codeでファイルを書き換えてもらった後、「やっぱり元に戻したい」と思った経験のある人向け
ClaudeにEdit/Writeで連続して書き換えさせた後、「3手前の状態に戻したい」と思った時に <code>/rewind</code> を打つ(または何も入力していない状態で Esc キーを2回連打)。出てきた一覧から戻したい地点を選び、5つのアクションから「両方戻す/会話だけ/コードだけ/指定地点から先を要約/何もしない」を選ぶ。
Claude Codeに「この記事をリライトして」と頼んだら、3手先まで一気に書き換えてしまって元の文面が見えなくなる。/rewind はそういう時に「あの時点まで巻き戻して」と頼むためのスラッシュコマンドです。
巻き戻す範囲は3択あって、コードだけ・会話だけ・両方を選べます。さらに「指定地点から先だけ要約に圧縮」という選択肢もあって、こっちは /compact とは別物。最初に整理しないと混乱します。
噛み砕くと
テキスト編集アプリの「Ctrl+Z(取り消し)」をイメージすると近い。ただし/rewindが戻すのは「文字単位」じゃなくて「私がClaudeに何か頼んだ単位」です。私が「ここを直して」と1回送るたびに、その直前の状態が保存される。あとからその一覧を出して、好きなところまで戻せる。
会議室のホワイトボードに似た感じもあります。途中までの議論はそのまま残して、ある発言から先だけ消して書き直したい、みたいな操作ができる。コードを戻すか、会話を戻すか、両方戻すかは別々に選べるのが Ctrl+Z と違うところ。
大事な前提:戻せるのは「Claudeに直接編集させた変更」だけ
これを最初に押さえないと、巻き戻したつもりが戻ってない事故が起きます。/rewind が記録しているのは、ClaudeがファイルをEdit/Writeで直接書き換えた変更だけ。Claudeが裏で rm や mv を実行して消したファイルは記録の外なので、巻き戻しても戻ってきません。
自分で別アプリでファイルを開いて保存した変更も対象外。あと別の場所で同じプロジェクトを開いて編集した分も拾えない。「セッションの中でClaudeが編集ツール経由でやった変更だけ」と覚えておくのが安全です。
「ブログ記事を書き換えさせすぎた、3手前に戻したい」を例に、実際の手順を見る
Aisola Labで「AIツール紹介の記事の構造をAIに整理させる」をやっていたとして、こうなったとします。
- 1手目: 「リード文を3パターン書き直して」と頼んだ
- 2手目: 「2番目の案で本文の見出し構造も組み直して」と頼んだ
- 3手目: 「FAQも作り直して」と頼んだ
3手目までやらせた結果を見たら、思ってたのと違う。1手目のリード書き直し直前の状態に戻したくなった。ここで/rewindです。
ステップ1: メニューを開く
入力欄に /rewind と打って送るか、何も入力していない状態で Esc キーを2回連続で叩く。どちらでも同じメニューが開きます。エイリアスで /checkpoint /undo でも開く。覚えやすい方を1つ覚えればOK。
> /rewind
ステップ2: 戻したい地点を選ぶ
セッション中に私が送った全プロンプトが一覧で出てきます。今回は「リード文を3パターン書き直して」と送ったメッセージを選ぶ。これがチェックポイントの正体で、私が何か送るたびに自動で1つ作られている、と思っていい。
ステップ3: アクションを5択から選ぶ
地点を選ぶと、ここで何をするかを5つの中から決めます。
- Restore code and conversation: その時点までコードも会話もまるごと巻き戻す
- Restore conversation: 会話だけ巻き戻す。コードは今の最新のまま
- Restore code: コードだけ巻き戻す。会話は残ったまま
- Summarize from here: 選んだ地点から後ろを要約に置き換える
- Never mind: 何もせずメニューを閉じる
今回は「3手分やった編集を全部捨てて、頼む前の状態に戻したい」ので Restore code and conversation を選ぶのが正解です。
ステップ4: 元のメッセージが入力欄に戻ってくる
ここで初心者がやりがちな勘違いがあります。「巻き戻したら、選んだ自分の発言まで消える」と思いがちですが、そうじゃない。Restore conversation や Summarize from here を選んだ場合、選んだ地点で自分が打ったプロンプトの文面が入力欄に再表示されます。
つまり「リード文を3パターン書き直して」という依頼そのものを編集してから送り直せる。「3パターンじゃなくて1パターンでいい」と書き換えて送り直せば、別の道に進めます。
ステップ5: 会話だけ戻したい時の選び方
「コードはせっかく直したから残したい。でも会話の流れだけリセットしたい」みたいな場合は Restore conversation。コードのEdit内容は今の最新のまま、会話の履歴だけ過去に戻る。逆に「コードは戻したいけど、ここまでの相談は残したい」なら Restore code。
ステップ6: 文脈を圧縮したい時は Summarize from here
長い議論で会話が膨らみすぎてClaudeの返事が遅くなってきた時は Summarize from here。仕組みは独特で、選んだメッセージより「前」は無傷で残ったまま、選んだメッセージから「先」だけが要約に置き換わります。
これが /compact との違い。/compact は会話まるごと1つの要約にしてしまう。/rewind の Summarize from here は「最初の指示は完全な文面のまま残しておきたい、途中のデバッグ往復だけを圧縮したい」という細かい使い分けができる。
つまり /rewind は何をしてくれるのか
- やってくれる: ClaudeがEdit/Writeで直接編集したコードの巻き戻し、会話履歴の巻き戻し、指定地点から先の要約圧縮
- やってくれない: ClaudeがBashで
rmやmvしたファイルの復元、別の場所で開いた編集の復元、30日以上前の状態への巻き戻し(自動削除済み) - 意味が薄い場面: gitでこまめに変更を保存している運用で「巻き戻したい」がgitの世界で完結する場合。
/rewindはあくまで数日〜30日のセッション内ローカル取り消し用
使いどころ3シナリオ(具体題材で再現)
シナリオ1: ブログ記事の構造をAIに任せたら派手に変わりすぎた時
記事のリード文・見出し・FAQを順番に書き直させていたら、3手目で「もう原型が分からない」状態になることがある。私が記事をリライトしながら「1手目に戻したい」と思った時は、/rewind でリード書き直しの直前のメッセージを選んで Restore code and conversation。記事ファイルが書き換わる前の状態にスナップで戻ります。これが一番分かりやすい使い方。
シナリオ2: コードは残したいけど会話の方向性をやり直したい時
家計簿アプリの設計をClaudeと話していて、20往復くらい議論した結果「やっぱり違う方向性で考え直したい」と思った場合。すでに作ってもらったコードファイルは保存しておきたいけど、会話の流れだけリセットしたい、みたいな状況です。Restore conversation を選ぶと、コードのEdit成果物は最新のまま、会話だけ過去地点に戻ります。古い議論の文脈に引きずられずに別アプローチを試せる。
シナリオ3: デバッグの長い往復で文脈が膨らみすぎた時
料理ブログのCSSバグを直してもらっている最中、原因特定のために30往復くらいやったとする。最初の「このCSSのレイアウトが崩れる」という指示は完全な形で残しておきたいけど、途中の試行錯誤の往復は要らない。こういう時は Summarize from here。最初の指示は文面のまま、途中の30往復だけを要約に圧縮できます。/compact とは違って「最初の指示の温度感」が消えないのが効く場面。
初心者が踏みやすい落とし穴
- Bashで消したファイルは戻ってこない。
rm file.txtやmv old.txt new.txtをClaudeにやらせた後で/rewindしても、ファイルは復活しません。Edit/Writeで書き換えた変更だけが対象 - バージョン管理の代わりにはならない。30日で自動削除される「セッション単位の取り消し」用途。1ヶ月以上前の状態に戻したい・チームで履歴を共有したい場合はgit側で別途変更点を保存しておく
/clearと混同しない。/clearは今までの会話を全部捨てて新しいセッションを始める。/rewindは今のセッションの中で過去地点に戻る。捨てるか戻るかの違い/compactとの混同。/compactは会話全体を1つの要約に圧縮、/rewindの Summarize from here は「指定地点より前は無傷、指定地点から先だけ圧縮」。最初の指示を残したい時は後者- 別の道を試したいだけならforkの方が向いている。「今の状態を残したまま別ルートを試したい」場合、
/rewindの Summarize で何とかするよりclaude --continue --fork-sessionで別セッションを枝分かれさせる方が安全と公式が書いている - 「メッセージを編集して再送」を意識しないと損する。Restore conversation や Summarize from here のあと、選んだメッセージの文面が入力欄に戻ってきます。「3パターン書いて」を「1パターンでいい」に書き換えて送り直すと別の道筋に進める。これを知らずに何もせず確定すると、巻き戻しただけで終わってしまう
- エイリアスは
/checkpoint/undo/rewindの3つ。全部同じメニューを開く。覚えやすい1つだけ覚えればよくて、3つ全部覚える必要はない
書き方
/rewind
やってみるとこうなる
入力
/rewind
出力例
(メニューが開く。セッション中に自分が送ったプロンプト一覧が出る)
1. リード文を3パターン書き直して
2. 2番目の案で見出し構造も組み直して
3. FAQも作り直して
→ 1番を選択
→ アクション選択画面
* Restore code and conversation
* Restore conversation
* Restore code
* Summarize from here
* Never mind
このページに出てきた言葉
- チェックポイント
- Claude Codeが自動でつける「ここまでの状態を覚えておく」しおり。私が何かを送るたびに1つ作られる
- プロンプト
- 私がClaudeに送るメッセージ1通分のこと
- コンテキスト
- Claudeが今この瞬間に「覚えている」会話の中身。詰め込みすぎると返事が遅くなる
- Edit / Write
- Claude Codeに内蔵されたファイル編集の道具。<code>/rewind</code>はこの2つで行われた変更だけを記録する
- Bash
- Claude Codeに内蔵された黒い画面のコマンド実行道具。<code>rm</code>などここで動かしたファイル操作は<code>/rewind</code>の対象外
- fork-session
- 今のセッションを残したまま別ルートを試すための起動方法。<code>claude --continue --fork-session</code>で枝分かれする
- セッション
- Claude Codeを起動してから終了するまでの1回分の作業ひとかたまり