The most expensive mistake with an AI agent isn't a wrong answer. It's a confident, fast, wrong answer applied to forty files before you noticed it misunderstood the job.
Plan mode puts a pause in the middle. Claude researches, writes down what it intends to do, and waits. Nothing changes until you say yes.
What plan mode is
Plan mode is one of Claude Code's permission modes, the settings that decide what Claude may do without asking. In plan mode, Claude can read your files and run commands to look around, then it writes a plan. It doesn't edit your files. Edits stay blocked until you approve the plan.
While it's on, the status bar under the prompt shows ⏸ plan mode on.
Claude can still run shell commands while it researches, so it's not a sealed room. If auto mode is available to you (it usually is on recent versions), a safety model reviews those commands instead of asking you. Otherwise, any command outside a built-in set of read-only ones asks for your approval first. Either way, your files aren't edited until you approve.
How to get in and out
There are four ways in:
- Shift+Tab. Press it during a session to cycle through the modes until the status bar shows plan mode.
- The /plan command. Type
/planto switch, or add the task straight after it:/plan reorganize the drafts folder. - At startup. Launch with
claude --permission-mode plan. - As the default for a project. Add this to the project's
.claude/settings.json:
{
"permissions": {
"defaultMode": "plan"
}
}
In the VS Code extension, choose Plan from the mode indicator at the bottom of the prompt box. In the desktop app, use the mode selector under the prompt; picking Plan there applies to that session only.
Getting out is simpler. Approving a plan switches you out of plan mode and Claude starts work. To leave without approving anything, press Shift+Tab again.
When it's worth it
Plan mode costs you a few minutes of reading. It pays off when a mistake would cost more than that:
- The job touches many files. Renaming, reorganizing, updating every page that mentions your old price.
- The job is hard to undo. Claude Code's checkpoints (its built-in undo) restore edits Claude makes with its own file tools. A file that was only moved or changed by a terminal command isn't restored. Moving 300 files is exactly where you want a plan first.
- You're new to the folder, or Claude is. Let it map the territory before it changes anything.
- You're not sure what you want yet. A plan gives you something concrete to react to.
Skip it for small, obvious jobs. Fixing a typo doesn't need a proposal.
Review the plan like an editor
When the plan is ready, Claude shows it and asks how to proceed. Before choosing, read it with a short checklist:
- Did it understand the goal? Restate the job in your own words and compare.
- Which files will change? Anything on that list you didn't expect?
- Will anything be deleted, moved or overwritten? These deserve a second read.
- What is it assuming? Plans often hide a guess like "assuming the newest file is the correct one." Check each one.
- How will it check the result? A good plan ends with a way to confirm the work, like a word count, a build that has to pass, or a list of links to test.
- What's out of scope? If it's quietly improving things you didn't ask about, rein it in.
Then pick one of the options:
- Yes, and use auto mode: approve and let Claude work, with the safety model reviewing its actions. If auto mode isn't available, this reads Yes, auto-accept edits instead.
- Yes, manually approve edits: approve, but have Claude ask before each edit. Good the first few times.
- No, keep planning: stay in plan mode and type what to change. "Don't touch old-site/." "Do the archive first and stop."
You can also edit the plan yourself. Press Ctrl+G and the plan opens in your default text editor. Cross out steps, add constraints, fix a wrong assumption, save, and Claude works from your version.
Plans are saved as files, by default in ~/.claude/plans in your home folder. If you'd like them kept with the project, the plansDirectory setting points them somewhere else, such as "./plans".
Pair it with a written brief
Plan mode works best when Claude plans against something written down, not a one-line request. A brief doesn't need to be long. Five headings will do:
# Brief: new pricing on the website
## Goal
Every page shows the new prices from pricing.md. Nothing else changes.
## Done means
- No page mentions the old prices ($49 or $99).
- The build finishes with no errors.
## In scope
site/pages/ and site/emails/
## Out of scope
The blog archive (old posts keep their original prices). Design changes.
## Constraints
Don't rename any files. Ask before deleting anything.
Then start the plan with the brief as the reference:
/plan read briefs/pricing-update.md and propose how to do it. List every file you'd change.
The plan now has a definition of done you can check it against. When the work is finished, you can check it against the same brief: ask Claude to compare the changes with the brief and list anything missing.
Don't have a brief and don't know where to start? Anthropic's best-practices guide suggests letting Claude interview you: describe the idea, ask it to interview you until it could write the spec, and have it save the result to a file. Then start a fresh session and plan from that file.
Three examples
Reorganizing a folder. "Sort the 300 files in downloads/ into folders by client and year." In plan mode, Claude lists what it found and proposes a structure. You spot that it plans to treat "Harbor" and "Harbor Studio" as two clients, correct it, and approve. Since moving files with terminal commands isn't covered by checkpoints, work on a copy or have a backup before you approve.
A content cleanup. "Every post in drafts/ that mentions the old course name gets the new one." The plan shows 23 files and one surprise: a quoted testimonial using the old name. You add "leave quotes as they are" and approve.
A small tool. "Build a page that turns my orders spreadsheet into a monthly summary." The plan lays out the files it would create and how it would test them. You notice it plans to install three libraries and ask for a version with none. That's a five-second change at the plan stage, and an annoying one after the fact.
A model pairing worth knowing
If you can choose models on your plan, the opusplan setting uses Opus while you're in plan mode and switches to Sonnet once you approve and work starts. Run /model opusplan to try it. It puts the stronger model on the thinking and a less costly one on the typing.
Make it a habit
A simple rule: if you'd want a human contractor to talk you through it before starting, use plan mode. Once a plan is good, it's also good material to keep. A plan that works can become a skill or a custom slash command, and the decisions it surfaced belong in your CLAUDE.md.
New to Claude Code? Start with your first hour, then come back here before your first big job.
Sources
- Choose a permission mode, Claude Code docs
- Common workflows, Claude Code docs
- Commands, Claude Code docs
- All settings, Claude Code docs
- Model configuration, Claude Code docs
- Checkpointing, Claude Code docs
- Best practices for Claude Code, Claude Code docs
