何のためのものか
Claude のファイル編集とコンバセーションの状態を自動で記録し、/rewind で以前の状態へ戻す機能。プロンプトごとにチェックポイントが作られる。
バージョン管理の代替ではない。 セッション単位の復旧手段であり、恒久的な履歴には git を使う。
触る
- 何か編集させたあと、プロンプト入力が空の状態で
Escを 2 回押す(/rewindでも同じ) - セッション中に送ったプロンプトが一覧される。1 つ選んでアクションを見る
入力にテキストがある状態で Esc を 2 回押すと、メニューではなく入力のクリアになる。クリアしたテキストは入力履歴に残り Up で戻せる。
入れる
戻す対象を選べることを覚える。ここが使い分けの本体である。
| アクション | 使う場面 |
|---|---|
| Restore code and conversation | 丸ごとやり直す |
| Restore conversation | 書かれたコードは残し、指示だけやり直す |
| Restore code | 会話の文脈は保ったまま、ファイルだけ元に戻す |
| Summarize from here | その時点以降を圧縮してコンテキストを空ける |
| Summarize up to here | その時点より前を圧縮し、以降はそのまま残す |
- Restore conversation と Summarize from here の後は、選んだメッセージの元のプロンプトが入力欄に戻る。書き直して投げ直せる
- 要約は Summarize の行で
add context (optional)に指示を書いてからEnterを押すと焦点を指定できる。数字キーで選ぶと指示なしで即座に要約される
効かせる
戻せる範囲を正確に知る。ここを誤解していると「戻したのに直っていない」が起きる。
- 戻せるのは Claude のファイル編集ツール経由の変更だけ。 bash の
rm/mv/cpによる変更は追跡されない - subagent の編集は通常は復元されない。 例外はフォアグラウンドで動く
context: forkの skill - Claude Code の外での手作業や並行セッションの編集は記録されない
- symlink / hard link のパスはスキップされ
Restored the code, but skipped N filesの警告が出る。どれが飛ばされたかは/debugでデバッグログを有効にしてから復元すると~/.claude/debug/に残る
落とし穴
- ファイルスナップショットは最新 100 チェックポイント分まで。 それより前は残らない
- チェックポイントはセッションとともに 30 日で削除される。 期間は
cleanupPeriodDays設定で変える - 同一プロセス内で
/clearした後は、rewind メニューの先頭に出る/resumeの項目から前のセッションへ戻れる。プロセスを終了すると使えなくなる