Claude Code Checkpoints for Client Work: Undo a Bad Edit Before the Client Ever Sees It

- Claude Code checkpoints save a restore point at every prompt you send and snapshot files before every edit. Press Esc twice (when the input is empty) or run /rewind to open the menu and go back.
- You can restore the conversation only (files stay as they are), the code only (chat history stays, files revert), or both together. Checkpoints work the same way in the CLI, the desktop app, the VS Code extension, and Claude Code on the web.
- Checkpoints do not cover everything: commands Claude runs through the terminal, like rm, mv, or cp, are not tracked, and a restore skips symlinked or hard-linked files. Checkpoints are a session safety net, not a replacement for git.
What a Checkpoint Actually Is
A checkpoint is a restore point Claude Code creates automatically at each prompt you send. Before Claude edits a file, it snapshots the file first, so the checkpoint has something to revert to. You do not have to turn this on or remember to save anything. It happens on every prompt, in the background, for the length of the session.
This is separate from git. A checkpoint is not a commit, it does not show up in the client's repo history, and it does not replace the discipline of committing your own work at sensible points. It solves a narrower, more immediate problem: the few minutes right after an edit goes wrong, before you have had time to think about git at all.
What Checkpoints Do Not Cover
Checkpoints only track edits made through Claude's own file editing tools. If Claude runs a bash command that touches the filesystem directly, like rm, mv, or cp, that change is not tracked and a rewind will not undo it. The same is true for anything Claude does outside the repo entirely, like calling an API or writing to a database through an MCP connection.
A restore also skips symlinked or hard-linked files, and Claude Code will warn you when it has to skip something for that reason. If a client's project links a shared config or a vendored directory in from elsewhere, do not assume a checkpoint restore rolled that part back too.
Why This Matters More on Client Work Than on Your Own Projects
On your own codebase, a bad edit is annoying. On a client's codebase, a bad edit is billable time you cannot bill for, twice: once to make the mistake, once to fix it, and the client never sees either hour on the invoice. Checkpoints shrink that cost from however long it takes to manually reconstruct the working version, to the few seconds it takes to press Esc twice.
This pairs directly with running Claude Code in a higher-autonomy mode on client work. [Auto Mode](/blog/claude-code-auto-mode-for-client-work) approves more of Claude's own actions without asking you first, which is faster, but it also means more edits happen between the moments you are actually watching. Checkpoints are the reason that trade is safe to make: you are not giving up the ability to undo, you are just choosing to review after the fact instead of before.
A Checkpoint Habit for Client Sessions
- Before a risky or large edit, note the last prompt you sent so you know exactly which checkpoint to reach for if it goes wrong.
- Let Claude finish the edit, then actually look at the result before moving on to the next request. A checkpoint you do not know you need is a checkpoint you will not use in time.
- If something is off, press Esc twice immediately rather than trying to prompt your way back to the original state. A second wrong edit on top of the first one makes the eventual restore messier.
- Once you are back to a known-good state, commit it in git if it is a meaningful milestone. Checkpoints protect the session; commits protect the project.
The habit costs nothing extra day to day. It only pays off on the session where an edit goes sideways, which is exactly the session where you do not want to be improvising.
Checkpoints vs Git vs a Manual Backup
| Tool | What it protects | Time scope | Covers bash commands |
|---|---|---|---|
| Claude Code checkpoints | Files Claude edited directly, plus the conversation | The current session | No |
| Git commits | Anything you choose to commit | As far back as your history goes | Yes, once committed |
| Manual backup / snapshot | Whatever you back up | Whenever you last ran it | Yes |
Three different safety nets, three different jobs
Checkpoints are the fastest of the three and the only one that requires zero setup, which is why they are useful for the in-session, five-minutes-ago kind of mistake. They are not a reason to commit less often to git on a client's repo.
Common Mistakes
- Assuming a checkpoint restore also undoes a bash command Claude ran, like a delete or a move, when only edits through Claude's file tools are tracked.
- Pressing a single Esc when you meant double-Esc, which redirects the current task instead of opening the rewind menu.
- Not committing to git because checkpoints feel like enough of a safety net on their own, then losing the ability to roll back once the session that created them is gone.
- Restoring 'both' out of habit when 'restore code' would have kept a conversation with useful client context intact.
Inside the Claude Code Profit Room, builders compare the actual moments a checkpoint saved a client session, and the ones where it did not, because the damage happened outside what Claude's file tools track. It's $9 a month at https://www.skool.com/claudecodeprofitroom/about, come tell us about the edit you wish you had caught sooner.
Short, practical drops on offers, outreach, pricing, and closing clients with Claude Code. No spam, unsubscribe anytime.
Frequently asked
How do I undo a Claude Code edit on a client project?
Press Esc twice when the prompt input is empty, or type /rewind, to open the checkpoint menu. Pick the point you want to go back to and choose to restore the code, the conversation, or both.
Do checkpoints work in the Claude Code desktop app?
Yes. The desktop app, Claude Code on the web, and the VS Code extension each keep their own session history, and the same Esc-twice or /rewind rewind works in all of them.
Will a checkpoint undo a file deleted with a bash command?
No. Checkpoints only track changes made through Claude's own file editing tools. A bash command like rm, mv, or cp that touches the filesystem directly is not tracked, so a rewind will not bring that file back.
Do checkpoints replace git on a client project?
No. Checkpoints are a session-level safety net for the last few edits, not a version control system. Keep committing to git at meaningful points regardless of whether checkpoints are on.
How long do checkpoints last?
Checkpoints are saved with the conversation, so a resumed session can still rewind to them. They are separate from git and are not a permanent archive the way a git commit is, so do not rely on them as long-term history.
Last reviewed August 30, 2026.

Co-founder of the Claude Code Profit Room. Went from shipping software to closing paying clients, and now teaches builders the selling half of the equation.
More from David Iya →

