Claude Code Plan Mode for Client Work: Scope the Build Before You Touch a Line of Code

- Plan Mode is a permission mode, not just a prompt style: with it on, Claude Code can read files, search, and explore but every write tool (Edit, Write, Bash execution) is blocked at the permission layer until you approve a plan.
- Cycle to it with Shift+Tab twice (Default to Auto-Accept to Plan), or start a whole session in it with `claude --permission-mode plan`. Press Shift+Tab again to leave it without approving anything.
- On client work its real value is not the code it eventually writes, it is the numbered plan it hands back first, which is the cheapest scoping document you will produce all week and the raw material for your quote.
What Plan Mode Actually Is
Plan Mode is a permission boundary built into Claude Code, not a personality setting. Turn it on and Claude keeps full access to read tools: reading files, listing directories, searching the codebase, running web searches. Every write tool is blocked at the permission layer instead, which means Edit, Write, and any Bash command that would change something on disk simply cannot execute, regardless of what Claude decides mid-thought it wants to do.
Cycle into it with Shift+Tab twice, which moves you through Default, then Auto-Accept, then Plan. The status line shows you are in it. You can also apply it to a single prompt with a `/plan` prefix without changing the whole session's mode, or start an entire session there with `claude --permission-mode plan` from the command line, which is the version worth using the first time you open an unfamiliar client repo.
What comes back is a numbered plan in the terminal: the files Claude read, the approach it intends to take, and the sequence of changes it wants permission to make. Nothing happens to the repo until you approve it. Press Shift+Tab again and you leave Plan Mode without approving anything at all, which is exactly what you want when the plan tells you the job is bigger than you assumed and you need to go back to the client before writing a line.
Why It Belongs in Your Estimating Process, Not Just Your Coding Habits
Most builders treat Plan Mode as a coding safety net for themselves. On client work it is more useful one step earlier, as the thing you run before you send a number. The estimating discipline in [how to estimate a Claude Code build so you do not lose money](/blog/estimate-a-claude-code-build) comes down to one problem: you are quoting against an unknown codebase or an unknown request, and every hour you guess wrong is an hour you eat. Plan Mode does not fix that entirely, but it turns a guess into a read.
Point a Plan Mode session at the actual repo, or at a clear description of the requested feature, before you write the number down. What comes back is not marketing copy, it is Claude's own read of what touching this thing actually requires: which files, which existing patterns it has to work around, what it is uncertain about. That last part matters more than the plan itself. A plan that says it needs to inspect the payment integration before it can commit to an approach is telling you where your estimate has real risk in it.
How to Run a Plan Mode Scoping Pass on a New Client Repo
- Open the repo and start the session directly in Plan Mode with `claude --permission-mode plan`, so there is no chance of an accidental edit while you are still getting oriented.
- Ask for the actual request in plain terms, the way the client described it, not your own rephrasing of it. If the client said 'add a way for customers to reschedule an order,' type that.
- Let Claude read before it answers. A rushed plan produced without reading the relevant files is worth less than the fifteen extra seconds it takes to explore first.
- Read the plan for what it names as uncertain, not just what it proposes to build. Anything phrased as 'I will need to check' or 'assuming X pattern is used elsewhere' is a flag, not a footnote.
- Do not approve it yet. Copy the plan out, or the uncertain parts of it, into whatever you are using to price the job.
That last step is the one people skip. Plan Mode's output is disposable in most workflows, glanced at and approved in ten seconds. On client work, treat it as a document, because it is the first honest description of the job you have, written by the thing that is actually going to do the work.
Reading the Plan Like a Client Document, Not a Coding Step
A good plan has a shape you can learn to scan quickly: what gets touched, what gets added, what it explicitly says it will not change. That third part is worth more than it looks. When a plan says it will not touch the existing authentication flow, you now have a written boundary you can repeat back to the client, which is a smaller version of the do-not-touch discipline in [writing a CLAUDE.md for a client project](/blog/claude-md-file-for-client-projects).
Translate the plan into three lines for the client before you ever mention hours or price: what changes, what does not, and the one thing that turned out to be more involved than the request sounded. That third line is usually where your rate is actually earned, and it reads as expertise rather than an excuse, because you are showing them a plan instead of asserting a difficulty.
Where Plan Mode Breaks Down on Client Work
It reads code. It does not know the client's business, their budget, or which corners are acceptable to cut for this particular customer. A plan can come back technically sound and commercially wrong, proposing the thorough version of a feature when the client actually needed the fast, ugly version shipped before a deadline. That gap is exactly why the outcome paragraph at the top of a CLAUDE.md exists: without it, every plan defaults to technically correct instead of correct for this client.
It also has no visibility into anything outside the repo: a contract clause, a verbal promise made on a sales call, a piece of scope that lives in an email thread and nowhere in the code. Plan Mode narrows your estimating risk on the technical side. It does nothing for the risk that lives in what was agreed and what was not, which is what [the one-page agreement every builder should send before starting](/blog/one-page-agreement-before-you-build) is for.
Plan Mode vs Auto Mode vs Default
| Mode | What it does | When to use it on client work |
|---|---|---|
| Default | Prompts you to approve most actions individually | Established client work where you want to see every change as it happens |
| Plan Mode | Reads and explores, blocks every write until you approve a plan | Scoping a new request, opening an unfamiliar repo, before you quote a number |
| Auto Mode | Routes most approvals to a classifier model instead of asking you | Long, well-understood builds where you have already written deny rules for the boundaries that matter |
Where each mode fits in a client engagement
These are not ranked from cautious to reckless, they are suited to different moments in the same engagement. Plan Mode at the start of a new request, Default while you are actively shipping and want visibility, and [Auto Mode](/blog/claude-code-auto-mode-for-client-work) only once the deny rules and boundaries in the repo are already written down and you are running against familiar ground.
Turning a Plan Into a Quote
The plan is not the estimate, it is the input to one. Once you have the numbered plan and the uncertain parts flagged, size each piece the way you already would in [estimating a Claude Code build](/blog/estimate-a-claude-code-build): pad the uncertain steps harder than the ones the plan was confident about, and treat anything it flagged as 'will need to check' as a separate line rather than folding it quietly into the total.
If the plan reveals the request is genuinely bigger than the client described it, that is the conversation to have before you start, not the change order to raise after. A Plan Mode pass that surfaces real scope before the quote goes out is worth more than the same discovery three days into a fixed-price job.
Common Mistakes
- Approving the plan on autopilot instead of reading what it flagged as uncertain, which throws away the one part of Plan Mode that actually protects your estimate.
- Running the scoping pass after you have already quoted, when it can no longer change the number you gave.
- Treating a clean plan on an unfamiliar repo as proof the work is simple, instead of a sign it may not have dug into the part that will actually cost you time.
- Skipping straight to Auto Mode on a brand-new client repo because it feels faster, before you know enough about the codebase to have written the deny rules Auto Mode depends on.
- Never showing the client any version of the plan, which throws away a free trust-building document in exchange for a bare number.
Inside the Claude Code Profit Room, builders post their actual Plan Mode output from live client repos before they send a quote, so you can see how someone else reads a plan before you have to trust your own read on a job that matters. It is $9 a month at https://www.skool.com/claudecodeprofitroom/about, come in with a repo you are about to scope and bring the plan it hands you back.
Short, practical drops on offers, outreach, pricing, and closing clients with Claude Code. No spam, unsubscribe anytime.
Frequently asked
What is Plan Mode in Claude Code?
A permission mode that lets Claude Code read files, search the codebase, and explore, while blocking every write tool, including Edit, Write, and Bash commands that would change something on disk, until you explicitly approve a plan it hands back. It is a permission boundary, not a coding style, so it behaves the same whether the repo is a small personal project or a client's production monorepo.
How do you turn on Plan Mode in Claude Code?
Press Shift+Tab twice to cycle from Default through Auto-Accept into Plan Mode, watch the status line confirm it, or start a whole session in it from the command line with `claude --permission-mode plan`. A `/plan` prefix applies it to a single prompt without changing the session's mode. Press Shift+Tab again to leave Plan Mode without approving anything.
Should I use Plan Mode before quoting a client project?
Yes, especially on an unfamiliar codebase or a request you have not scoped before. Pointing a Plan Mode session at the repo before you give a number turns a guess into a read: the plan it hands back names the files involved and, more usefully, flags what it is uncertain about, which is exactly where an estimate is most likely to be wrong.
What is the difference between Plan Mode and Auto Mode?
Plan Mode blocks every write until you approve a plan, which makes it suited to scoping a new or unfamiliar request. Auto Mode does the opposite: it lets most actions through automatically by routing the approval decision to a classifier model instead of asking you. Use Plan Mode to size a job before you start it, and reserve Auto Mode for familiar, well-understood work where you have already written the deny rules that matter.
Does a clean Plan Mode result mean the job will be easy?
Not necessarily. On an unfamiliar codebase, a plan with no flagged uncertainty is sometimes a sign the exploration did not go deep enough rather than proof the work is simple. Read a suspiciously clean plan again before quoting off it, and treat anything phrased as an assumption as a place your estimate should have real padding.
Last reviewed August 28, 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 →

