Агент меняет файлы по-настоящему, и иногда меняет не то. Не потому что сломался - просто понял задачу иначе, чем вы её имели в виду. Хорошая новость: снимки кода Claude Code делает сам, без вашего участия, и неудачный заход отматывается назад за пару нажатий.

Новость похуже: у этих снимков есть граница. Всё, что агент печатает в файлы, происходит внутри охраняемого периметра, и оттуда это можно вернуть. Всё, что идёт мимо,- за забором: снимки этого не видели и вернуть не смогут. Где проходит забор, лучше знать заранее, а не в тот момент, когда что-то пропало.
Ниже - как устроен откат, где проходит его забор, сколько он живёт и чем закрывать то, что осталось за забором.
Что такое checkpoint
Checkpoint - это снимок файлов, которые агент собирается править, сделанный до того, как он за них взялся. Не резервная копия проекта и не запись в историю версий, а рабочая точка возврата внутри текущей сессии, то есть внутри вашего разговора с агентом.
Главное, ради чего стоит читать эту секцию: снимок делается автоматически перед каждым вашим сообщением. Вы его не создаёте, не настраиваете и не можете забыть нажать. Отправили сообщение - точка уже есть.
- Ваше сообщение
- Снимок кода
- Правки агента
- Новое сообщение
- Новый снимок
Обратите внимание на порядок: сначала снимок, потом правки. Именно поэтому возврат к точке означает "верни код таким, каким он был перед этим сообщением". Вы выбираете не момент времени, а конкретное своё сообщение, после которого всё надо отменить.
И ещё одно уточнение, чтобы дальше было проще. Checkpoint - это про код. Разговор Claude Code тоже умеет отматывать, но это отдельный выбор в меню: код и разговор возвращаются вместе или по отдельности, как решите.
Как открыть меню отката
Входа два, и делают они одно и то же:
- команда
/rewindв строке ввода. У неё есть привычные псевдонимы/undoи/checkpoint;![]()
- клавиши
EscEsc, если строка ввода пустая.

Скорее всего, в строке ввода был текст. Тогда первое Esc Esc просто сотрёт набранное, а меню не появится. Текст при этом не пропадает: он уходит в историю ввода, и стрелка вверх его вернёт. Нажмите Esc Esc ещё раз по уже пустой строке, и меню откроется.
Откроется список ваших сообщений за эту сессию. Не список файлов и не шкала времени - именно сообщения, по одному на каждое, что вы отправили. Выбираете то, после которого всё пошло не туда.

Отдельный случай: если раньше в этом же запущенном агенте вы делали /clear, в свежих версиях наверху списка появится дополнительная строка. Она возвращает к разговору, который шёл до очистки. Очистка, как видите, ничего не сжигает.
Что предлагает меню
Выбрали точку - агент спрашивает, что именно с ней сделать. Вариантов шесть:
| Пункт меню | Что делает |
|---|---|
Restore code and conversation | вернуть и код, и разговор к выбранной точке |
Restore conversation | вернуть только разговор, файлы оставить как есть |
Restore code | вернуть только файлы, разговор оставить как есть |
Summarize from here | свернуть разговор от этой точки и дальше в краткое изложение |
Summarize up to here | свернуть разговор до этой точки, оставив дальнейшее как есть |
Never mind | закрыть меню, ничего не делая |
Первое, что стоит знать про эту таблицу: состав меню меняется. Два пункта про код показываются только тогда, когда после выбранной точки агент действительно менял файлы. Не менял - возвращать нечего, и строк этих просто не будет. Так что если в меню оказалось четыре пункта вместо шести, программа у вас та же самая.
Две строки Summarize стоят особняком. Они работают не с кодом, а с длиной разговора: сворачивают его кусок в краткое изложение. До файлов на диске они не дотягиваются в принципе. Зачем это бывает нужно - тема отдельная и объёмная, здесь достаточно понимать, что это не откат и код таким способом не вернуть.
И мелочь, которая экономит нервы. После возврата разговора текст того самого сообщения возвращается в строку ввода. Не надо вспоминать, что вы писали, и набирать заново - поправили формулировку, отправили ещё раз.
Что откат вернёт, а что нет
В своей зоне откат надёжен. Он возвращает две вещи: правки файлов, которые агент сделал своими инструментами редактирования, и историю разговора в этой сессии.
А вот что остаётся за забором.
- Изменения, сделанные командами в терминале. Агент умеет не только править файлы, но и выполнять команды. Если файл удалили командой
rm, переместили или перезаписали копированием, снимок этого не видел и вернуть не сможет. - Изменения мимо агента. Файлы, которых агент в этой сессии не касался, откат не трогает вовсе: поправили их сами в редакторе, перезаписала другая программа, работала рядом вторая сессия - всё это остаётся как есть, вернуть или отменить это через меню нельзя. А вот если вы руками правили файл, который агент тоже редактировал, возврат кода вернёт его к снимку целиком - вместе с вашей правкой.
- Редкий случай с файлами-ссылками. Такие файлы откат пропускает и честно пишет об этом отдельной строкой. Встретится - разберётесь, специально готовиться не нужно.
Снаружи разница почти незаметна. Агент отчитывается одинаково спокойно и когда отредактировал файл, и когда выполнил команду, которая файл удалила. Для вас это два похожих сообщения на экране, а для отката - принципиально разные события: первое он отменит, второе нет.
Поэтому запрос на запуск команды, которая что-то удаляет, перемещает или перезаписывает, стоит читать внимательнее, чем запрос на обычную правку. Это тот случай, когда страховки за спиной уже нет.
Если совсем коротко: откат следит за тем, что агент печатает в файлы, а не за всем, что происходит на компьютере.
Сколько живёт откат
Снимки не копятся бесконечно. Сами точки в меню перечислены все, а вот снимки файлов хранятся только для ста последних: для одного разговора это много, но не безгранично, и старые постепенно вытесняются.
Зато точки не привязаны к открытому окну терминала. Они сохраняются вместе с сессией, так что можно закрыть терминал, вернуться завтра, продолжить тот же разговор - и меню отката будет работать как ни в чём не бывало.
Совсем надолго это тоже не остаётся. сессии и снимки к ним убираются автоматически примерно через месяц, срок при желании настраивается.
Отсюда простой вывод: откат хорош на горизонте одной задачи - минуты, часы, один разговор с агентом. Хранилищем истории проекта он не задуман, и это не недостаток - просто другая работа. Кто закрывает более длинные сроки, разбираем дальше.
Четыре страховки, и у каждой своя работа
Отмена, снимок, копия папки и история версий - это не четыре названия одного и того же. Они закрывают разные сроки и разные типы потерь.
| Страховка | Кто создаёт | Что сохраняет | Сколько живёт | Где бессильна |
|---|---|---|---|---|
| Отмена в редакторе | вы, нажатием | ваши последние правки в открытом файле | недолго, зависит от редактора | правки сразу в нескольких файлах, обычно и то, что записано на диск помимо редактора |
| Checkpoint | Claude Code, сам | код перед каждым вашим сообщением | вместе с сессией, сто точек | команды в терминале, изменения мимо агента |
| Копия папки | вы, вручную | проект целиком на момент копирования | пока не удалите | не показывает, что менялось, и захламляет диск |
| История версий, git | вы, осознанным действием | состояния проекта одно за другим | вместе с проектом | то, что вы не успели в неё записать |
Страховку выбирают сначала по области покрытия, а уже потом по сроку. Если Claude меняет обычные файлы своими инструментами редактирования и не затрагивает ничего за пределами сессии, эксперимент на пять минут хорошо закрывает checkpoint. Если в работе есть команды в терминале или внешние изменения, одного checkpoint недостаточно независимо от длительности. И только среди подходящих по покрытию страховок смотрите на срок: несколько дней работы или важная веха просят механизм, который не зависит от разговора с агентом.
Про копию папки стоит сказать прямо. Как разовая мера перед чем-то страшным она рабочая: скопировали, полезли ломать, не получилось - вернули. Как система она не живёт. Через неделю у вас несколько почти одинаковых папок, и какая из них свежая, не помнит уже никто.
Последняя строка - единственная, которая умеет одновременно и хранить состояния долго, и показывать, что именно менялось между ними. Это git, и это отдельная большая тема: свой инструмент, свой набор команд, здесь мы её не открываем. Достаточно понимать место в таблице: самый длинный горизонт и единственная защита от того, что откат не покрывает.
Как это меняет манеру работы
Дело не столько в наборе кнопок. Вот что из отката следует на практике:
- снимок делается сам, но почти ничего не стоит только эксперимент с обычными файлами через инструменты редактирования Claude. Если понадобятся команды в терминале или изменения за пределами сессии, сначала выберите другую страховку;
- агент не откатывает за вас. Он может сказать, что зашёл не туда, но меню открываете и выбираете вы;
- просьба запустить команду в терминале - это другой класс действия, чем правка файла. Первое откат не покроет, второе покроет. Разница видна только в тексте запроса, поэтому его и стоит читать;
- чем крупнее шаг, тем меньше от отката пользы. Вернуть-то можно, а вот понять по одному меню, что именно вернулось, тем сложнее, чем больше агент успел наделать. Мелкие шаги выигрывают и здесь;
- откат и история версий не конкурируют. Первый закрывает минуты и часы внутри одного разговора, вторая - дни, недели и вехи проекта.
Перед по-настоящему рискованным заходом полезно потратить минуту и зафиксировать состояние тем, что живёт дольше сессии. Прямо сейчас в вашем распоряжении копия папки - как разовая мера перед риском она работает честно.
Но настоящий инструмент для этого - git. Он хранит состояния сколько угодно долго, показывает, что именно менялось между ними, и не захламляет диск почти одинаковыми папками. Как им пользоваться, разберём отдельно: тема большая и заслуживает своего разговора. Привычка же остановиться на минуту перед риском пригодится вам и с ним, и пока без него.
А меню отката пусть будет для быстрых экспериментов: в роли последней надежды оно работает заметно хуже, чем в роли повседневного инструмента.
Состав меню отката и сроки хранения зависят от версии Claude Code и настроек, поэтому у вас они могут отличаться от описанных здесь. Что предлагает ваша версия, всегда покажет само меню.

ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ