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

Новость похуже: у этих снимков есть граница. Всё, что агент печатает в файлы, происходит внутри охраняемого периметра, и оттуда это можно вернуть. Всё, что идёт мимо,- за забором: снимки этого не видели и вернуть не смогут. Где проходит забор, лучше знать заранее, а не в тот момент, когда что-то пропало.

Ниже - как устроен откат, где проходит его забор, сколько он живёт и чем закрывать то, что осталось за забором.

Что такое checkpoint

Checkpoint - это снимок файлов, которые агент собирается править, сделанный до того, как он за них взялся. Не резервная копия проекта и не запись в историю версий, а рабочая точка возврата внутри текущей сессии, то есть внутри вашего разговора с агентом.

Главное, ради чего стоит читать эту секцию: снимок делается автоматически перед каждым вашим сообщением. Вы его не создаёте, не настраиваете и не можете забыть нажать. Отправили сообщение - точка уже есть.

  • Ваше сообщение
  • Снимок кода
  • Правки агента
  • Новое сообщение
  • Новый снимок

Обратите внимание на порядок: сначала снимок, потом правки. Именно поэтому возврат к точке означает "верни код таким, каким он был перед этим сообщением". Вы выбираете не момент времени, а конкретное своё сообщение, после которого всё надо отменить.

И ещё одно уточнение, чтобы дальше было проще. Checkpoint - это про код. Разговор Claude Code тоже умеет отматывать, но это отдельный выбор в меню: код и разговор возвращаются вместе или по отдельности, как решите.

Как открыть меню отката

Входа два, и делают они одно и то же:

  • команда /rewind в строке ввода. У неё есть привычные псевдонимы /undo и /checkpoint;
  • клавиши Esc Esc, если строка ввода пустая.
Если меню не открылось

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

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

Отдельный случай: если раньше в этом же запущенном агенте вы делали /clear, в свежих версиях наверху списка появится дополнительная строка. Она возвращает к разговору, который шёл до очистки. Очистка, как видите, ничего не сжигает.

Что предлагает меню

Выбрали точку - агент спрашивает, что именно с ней сделать. Вариантов шесть:

Пункт менюЧто делает
Restore code and conversationвернуть и код, и разговор к выбранной точке
Restore conversationвернуть только разговор, файлы оставить как есть
Restore codeвернуть только файлы, разговор оставить как есть
Summarize from hereсвернуть разговор от этой точки и дальше в краткое изложение
Summarize up to hereсвернуть разговор до этой точки, оставив дальнейшее как есть
Never mindзакрыть меню, ничего не делая

Первое, что стоит знать про эту таблицу: состав меню меняется. Два пункта про код показываются только тогда, когда после выбранной точки агент действительно менял файлы. Не менял - возвращать нечего, и строк этих просто не будет. Так что если в меню оказалось четыре пункта вместо шести, программа у вас та же самая.

Две строки Summarize стоят особняком. Они работают не с кодом, а с длиной разговора: сворачивают его кусок в краткое изложение. До файлов на диске они не дотягиваются в принципе. Зачем это бывает нужно - тема отдельная и объёмная, здесь достаточно понимать, что это не откат и код таким способом не вернуть.

И мелочь, которая экономит нервы. После возврата разговора текст того самого сообщения возвращается в строку ввода. Не надо вспоминать, что вы писали, и набирать заново - поправили формулировку, отправили ещё раз.

Что откат вернёт, а что нет

В своей зоне откат надёжен. Он возвращает две вещи: правки файлов, которые агент сделал своими инструментами редактирования, и историю разговора в этой сессии.

А вот что остаётся за забором.

  • Изменения, сделанные командами в терминале. Агент умеет не только править файлы, но и выполнять команды. Если файл удалили командой rm, переместили или перезаписали копированием, снимок этого не видел и вернуть не сможет.
  • Изменения мимо агента. Файлы, которых агент в этой сессии не касался, откат не трогает вовсе: поправили их сами в редакторе, перезаписала другая программа, работала рядом вторая сессия - всё это остаётся как есть, вернуть или отменить это через меню нельзя. А вот если вы руками правили файл, который агент тоже редактировал, возврат кода вернёт его к снимку целиком - вместе с вашей правкой.
  • Редкий случай с файлами-ссылками. Такие файлы откат пропускает и честно пишет об этом отдельной строкой. Встретится - разберётесь, специально готовиться не нужно.
Правка файла и команда в терминале - разные вещи

Снаружи разница почти незаметна. Агент отчитывается одинаково спокойно и когда отредактировал файл, и когда выполнил команду, которая файл удалила. Для вас это два похожих сообщения на экране, а для отката - принципиально разные события: первое он отменит, второе нет.

Поэтому запрос на запуск команды, которая что-то удаляет, перемещает или перезаписывает, стоит читать внимательнее, чем запрос на обычную правку. Это тот случай, когда страховки за спиной уже нет.

Если совсем коротко: откат следит за тем, что агент печатает в файлы, а не за всем, что происходит на компьютере.

Сколько живёт откат

Снимки не копятся бесконечно. Сами точки в меню перечислены все, а вот снимки файлов хранятся только для ста последних: для одного разговора это много, но не безгранично, и старые постепенно вытесняются.

Зато точки не привязаны к открытому окну терминала. Они сохраняются вместе с сессией, так что можно закрыть терминал, вернуться завтра, продолжить тот же разговор - и меню отката будет работать как ни в чём не бывало.

Совсем надолго это тоже не остаётся. сессии и снимки к ним убираются автоматически примерно через месяц, срок при желании настраивается.

Отсюда простой вывод: откат хорош на горизонте одной задачи - минуты, часы, один разговор с агентом. Хранилищем истории проекта он не задуман, и это не недостаток - просто другая работа. Кто закрывает более длинные сроки, разбираем дальше.

Четыре страховки, и у каждой своя работа

Отмена, снимок, копия папки и история версий - это не четыре названия одного и того же. Они закрывают разные сроки и разные типы потерь.

СтраховкаКто создаётЧто сохраняетСколько живётГде бессильна
Отмена в редакторевы, нажатиемваши последние правки в открытом файленедолго, зависит от редактораправки сразу в нескольких файлах, обычно и то, что записано на диск помимо редактора
CheckpointClaude Code, самкод перед каждым вашим сообщениемвместе с сессией, сто точеккоманды в терминале, изменения мимо агента
Копия папкивы, вручнуюпроект целиком на момент копированияпока не удалитене показывает, что менялось, и захламляет диск
История версий, gitвы, осознанным действиемсостояния проекта одно за другимвместе с проектомто, что вы не успели в неё записать

Страховку выбирают сначала по области покрытия, а уже потом по сроку. Если Claude меняет обычные файлы своими инструментами редактирования и не затрагивает ничего за пределами сессии, эксперимент на пять минут хорошо закрывает checkpoint. Если в работе есть команды в терминале или внешние изменения, одного checkpoint недостаточно независимо от длительности. И только среди подходящих по покрытию страховок смотрите на срок: несколько дней работы или важная веха просят механизм, который не зависит от разговора с агентом.

Про копию папки стоит сказать прямо. Как разовая мера перед чем-то страшным она рабочая: скопировали, полезли ломать, не получилось - вернули. Как система она не живёт. Через неделю у вас несколько почти одинаковых папок, и какая из них свежая, не помнит уже никто.

Последняя строка - единственная, которая умеет одновременно и хранить состояния долго, и показывать, что именно менялось между ними. Это git, и это отдельная большая тема: свой инструмент, свой набор команд, здесь мы её не открываем. Достаточно понимать место в таблице: самый длинный горизонт и единственная защита от того, что откат не покрывает.

Как это меняет манеру работы

Дело не столько в наборе кнопок. Вот что из отката следует на практике:

  • снимок делается сам, но почти ничего не стоит только эксперимент с обычными файлами через инструменты редактирования Claude. Если понадобятся команды в терминале или изменения за пределами сессии, сначала выберите другую страховку;
  • агент не откатывает за вас. Он может сказать, что зашёл не туда, но меню открываете и выбираете вы;
  • просьба запустить команду в терминале - это другой класс действия, чем правка файла. Первое откат не покроет, второе покроет. Разница видна только в тексте запроса, поэтому его и стоит читать;
  • чем крупнее шаг, тем меньше от отката пользы. Вернуть-то можно, а вот понять по одному меню, что именно вернулось, тем сложнее, чем больше агент успел наделать. Мелкие шаги выигрывают и здесь;
  • откат и история версий не конкурируют. Первый закрывает минуты и часы внутри одного разговора, вторая - дни, недели и вехи проекта.
Минута перед большой правкой

Перед по-настоящему рискованным заходом полезно потратить минуту и зафиксировать состояние тем, что живёт дольше сессии. Прямо сейчас в вашем распоряжении копия папки - как разовая мера перед риском она работает честно.

Но настоящий инструмент для этого - git. Он хранит состояния сколько угодно долго, показывает, что именно менялось между ними, и не захламляет диск почти одинаковыми папками. Как им пользоваться, разберём отдельно: тема большая и заслуживает своего разговора. Привычка же остановиться на минуту перед риском пригодится вам и с ним, и пока без него.

А меню отката пусть будет для быстрых экспериментов: в роли последней надежды оно работает заметно хуже, чем в роли повседневного инструмента.


Состав меню отката и сроки хранения зависят от версии Claude Code и настроек, поэтому у вас они могут отличаться от описанных здесь. Что предлагает ваша версия, всегда покажет само меню.