Checkpoints & rewind
Changed your mind? Syntic Code keeps a backup of every file before the agent edits it, and marks a restore point at each of your messages. You can roll back the code, the conversation, or both, to any earlier message.
Rewind
Press Esc twice on an empty prompt, or type /rewind.
- Pick the message you want to go back to. The list shows each of your messages;
Home/Endgo to either end. - Pick what to restore:
| Choice | Code | Conversation |
|---|---|---|
| Restore conversation and code | Back to how it was before that message | Back to that message |
| Restore conversation only | Unchanged | Back to that message |
| Restore code only | Back to how it was before that message | Unchanged |
| Summarize from here | Unchanged | Everything after that message is replaced by a summary |
| Summarize up to here | Unchanged | Everything before that message is replaced by a summary |
| Never mind |
Before it applies, rewind shows how many lines would change.
Other ways back
| Command | Does |
|---|---|
/rollback | Undo the last message turn. |
/checkpoint <label> | Bookmark this point with a name, so it is easy to find in the rewind list. Without a label, opens rewind. |
/rewind <n> | Jump straight to checkpoint n. |
syntic --resume <id> --rewind-files <message-id> | From a shell: put a saved session’s files back to how they were before a message, then exit. |
What is covered
Rewind restores files changed by Syntic Code’s file tools: Write, Edit, MultiEdit and NotebookEdit. Files the agent created are deleted again.
It does not undo:
- changes made by shell commands (
rm,mv, code generators, package installs, database migrations); - anything outside your working folders;
- files larger than 2 MB (they are listed as skipped);
- edits you made yourself outside Syntic Code;
- remote side effects such as pushed commits or deployed services.
Rewind is available in interactive sessions. Headless (-p) runs do not record checkpoints.
Checkpoints are a quick undo, not version control. Commit to git for anything you want to keep.
Storage
Backups live in ~/.syntic/file-history, kept per session. A session keeps its last 100 restore points, dropping the oldest as new ones are added; a restore point whose data was dropped is refused rather than half-applied.
| Variable | Default | Controls |
|---|---|---|
SYNTIC_EDIT_BACKUPS_PER_FILE | 10 | Backups kept per file per session (newest first). |
SYNTIC_EDIT_BACKUPS_MAX_MB | 200 | Total size of all backups; the oldest go first. |
--no-session-persistence and SYNTIC_SKIP_SESSION_PERSISTENCE also turn off backups.