Skip to content

Checkpoints

Checkpoints automatically snapshot your workspace before the agent acts on each user message. If the agent takes the task in a direction you didn’t want, you can restore to any earlier point and try again — file state and conversation history are both rewound together.

Each time you send a message, Kodik saves a snapshot tied to that message. The snapshot captures the content of every file the agent has touched. Checkpoints:

  • Are taken automatically — no manual action needed.
  • Do not interfere with your Git history. Snapshot storage is handled by a separate session layer.
  • Track which files were created or modified so only the relevant files need to be rewound.

Checkpoints must be enabled in settings. When disabled, the restore action is blocked and a warning is shown.

To restore to an earlier point in the conversation:

  1. Find the user message you want to restore to.
  2. Click the restore action on that message.
  3. Kodik rewinds the conversation history to that message, restores file content from the saved snapshot, and clears any subsequent API context.

After a restore, the agent is ready to receive a new message from the restored point. You can edit your original message before re-sending it — see Editing Messages.

After a plain restore, the Checkpoint restored marker includes Redo. Use it to reapply the branch that was just rewound. If you send a new message from the restored point, Kodik treats that as a new branch and disables the redo path.

If the same task is open in more than one Kodik window, a checkpoint restore in one window keeps the restored branch and Redo action intact when the other window next saves its chat state.

If you edited a file after the agent changed it, Kodik restores only the agent’s delta when it can do so safely. Edits you made outside the agent-changed lines are preserved. If restoring would delete a user-modified AI-created file, or overwrite a file you recreated after the AI deleted it, Kodik shows an error notification, refuses the restore, and keeps the checkpoint available after you resolve the conflict.

When a restore spans multiple older checkpoint entries, Kodik validates the whole file-revert set before writing or deleting files. If any file conflicts, the restore stops before changing the workspace.

If the confirmation dialog or restore action cannot complete, Kodik reports the failure instead of silently treating it as a cancellation.

Very old checkpoint records may not contain the AI-written baseline needed for a safe delta restore. When that happens, Kodik leaves the file unchanged and asks you to resolve it manually instead of guessing and overwriting your work.

If you restore to a later point in a task and earlier AI edits still remain, File Review stays in sync with the restored state. Kodik clears only the review rows for edits that were actually rewound, and keeps surviving pending edits visible for review.

Next to the restore action, each user message has a Fork action (a fork icon). Unlike restoring, forking is non-destructive — your current chat and its files are left exactly as they are.

When you fork from a message, Kodik:

  1. Copies the conversation before that message into a new task named Fork of <original> (the message itself is excluded). The real prior turns are carried over verbatim — not a summary — so the new task continues with full context.
  2. Switches you to the new task, leaving the original untouched.

Use it to branch a new direction from an earlier point in a conversation while keeping the original thread intact.

Checkpoints are especially useful with Auto-Approve mode enabled: the agent runs without interruption, so checkpoints are the primary way to undo a run that went wrong.

  • Trying a different approach: restore to before an edit and give the agent a different instruction.
  • Recovering from unexpected changes: if the agent modifies files you did not intend to touch, restore to just before that step.
  • Experimenting safely: let the agent attempt something risky, review the diff, and restore if you don’t like the result.