How does a checkpoint work?
Just before your message goes to the agent, microManager records the worktree’s state as a git commit object, using a temporary index so your own staging area is untouched:
- it adds every tracked and untracked file to the temporary index, leaving out ignored files and the shared
.context/folder, - writes it as a tree and a commit whose parent is your current
HEAD, and - stores it under
refs/micromanager/checkpoints/<session>/<sequence>.
Your branch, your staged changes and your working files do not change.
How do I roll back?
Each of your messages in the chat has Revert to here, which shows when you point at the message. It is available once the running turn ends, and refused while another chat of the workspace is running a turn. After you confirm, microManager:
- saves the worktree as it is now under another hidden ref, shown in the chat as Files from before with a button to copy it, so the revert itself can be undone with git,
- puts the snapshot’s files back in the worktree,
- removes untracked files that were not in the snapshot (ignored files and
.context/stay), and - moves the branch back to the commit it was on at that moment.
The chat’s later messages are marked as reverted, so it is clear which part of the conversation no longer matches the files. Claude Code sessions are also rewound to that point when the installed Claude Code supports it, so the agent continues from the same state as the files.
When should I use a checkpoint instead of asking the agent to undo?
When the agent changed many files, deleted something, or went down a wrong path for several turns. Asking an agent to undo its own work is slow and often incomplete; a checkpoint puts back exactly what was there, byte for byte.
Do checkpoints work with every agent?
Yes. Snapshots are made by microManager with git, before the message is sent, so they work the same for Claude Code, Codex and ACP agents. Only the chat rewind described above depends on the agent.