Explainer

Build vs Plan mode: when to let your AI agent think before it edits

Build vs Plan mode: when to let your AI agent think before it edits

You hand an AI agent a vague task — "add rate limiting to the API" — and hit enter. It immediately starts editing. Twelve files later it hands you a 400-line diff that touches your auth middleware, invents a config format, and renames a function you didn't ask it to touch. Now you're not reviewing a change; you're doing forensics on one. The problem isn't that the agent is bad. It's that you let it commit to an approach before you'd seen the approach.

That's the whole reason modern coding agents split into two modes. Plan mode reads, greps, and outlines what it intends to do — without writing a single line to disk. Build mode makes the edits. Used together they turn "wait and see what it does" into "approve the approach, then watch it execute." Here's how each one works and when to reach for it.

Plan read, grep, outline You review approve / reject Build edit the files reject → revise the plan
Plan first, review the approach while edits are cheap to change, then build.

What each mode actually does

The split is about permission to write, not about how smart the agent is. Both modes use the same model and read the same files. The difference is the guardrail.

In Claude Code, Plan mode is a first-class state you toggle into, and it presents a plan for your approval before it touches anything. The keybinding that cycles modes shifts between releases, so confirm the current one in the official docs rather than trusting an old tutorial. Cursor's agent and others have their own framing of the same idea. The label varies; the contract doesn't. Plan looks, Build changes.

Why Plan saves you from bad diffs

The cost of a wrong decision in an agent run isn't linear — it compounds. If the agent picks the wrong abstraction in step one, every edit after that builds on the mistake. By the time you see the diff, unwinding it means understanding everything it did and why. Reviewing a 12-file change to find the one bad assumption is genuinely harder than writing the change yourself.

A plan moves the review to the cheapest possible moment. A plan is a paragraph and a file list — you can read it in fifteen seconds and catch the disaster before it exists:

This is the same principle behind keeping a tight loop in vibe coding — small, reviewable steps beat one giant leap. Plan mode just moves the brake to before the edit instead of after.

The plan-then-build workflow

The pattern that works is boring and reliable. Start in Plan for anything non-trivial, read the proposal, then switch to Build once the approach is right.

A rough heuristic: if you could describe the change in one sentence and you'd recognize a wrong version instantly, go straight to Build. If you'd have to read the result carefully to know whether it did the right thing, plan first. The bigger and blurrier the task, the more a plan pays for itself.

Plan mode and running unattended

There's a tension worth naming. The point of an agent is that you can walk away from it — but Plan mode is a checkpoint that waits for you. If you start a plan and tab over to something else, the agent sits there with a proposal and no one to approve it, which is exactly the dead time you were trying to kill by running it in the background.

The resolution is a notification, not abandoning Plan mode. You want the agent to plan, then ping you the moment the plan is ready — the same way it should ping you when a build finishes or hits a permission prompt. Make that approval moment loud instead of silent and Plan stays valuable, precisely because you don't have to babysit the gap between "plan ready" and "you noticed." That's the whole idea behind not babysitting the terminal.

Where Backgrind fits

Backgrind runs your agent — your own Claude Code or Cursor CLI, or Grindy, our hosted model — in an always-on-top overlay, and surfaces a per-task Build/Plan toggle right on each session tab, so you can flip a fuzzy task into Plan without remembering a keybind. When a plan is ready for review, or a build finishes, the window flashes and the tab gets an accent ring instead of leaving you watching scrollback — so you can plan, approve, and let it build hands-off. There's a live demo if you want to see the toggle in motion.