Plan Mode in Claude Code
Table of content
Plan Mode flips the default AI coding workflow. Instead of diving straight into implementation, you force Claude to research, design, and get approval first.
Why plan first
| Without planning | With Plan Mode |
|---|---|
| Claude guesses at architecture | Claude explores the codebase first |
| Discovers problems mid-implementation | Identifies blockers before writing code |
| Builds on wrong assumptions | Validates approach with you |
| Requires multiple rewrites | Gets it right the first time |
The cost of a wrong approach compounds. A bad foundation means refactoring everything built on top.
How to enter Plan Mode
Two methods:
# Method 1: Keyboard shortcut
# Press Shift+Tab twice in Claude Code
# Method 2: Ask directly
claude "Plan how to implement user authentication"
The keyboard shortcut is faster. Use it when starting any non-trivial task.
What happens in Plan Mode
Claude shifts from “do” to “research”:
| Normal mode | Plan Mode |
|---|---|
| Writes code immediately | Explores codebase structure |
| Makes assumptions | Asks clarifying questions |
| Single solution | Considers alternatives |
| Executes | Designs |
In Plan Mode, Claude:
- Reads relevant files without modifying them
- Maps dependencies and patterns
- Identifies potential conflicts
- Proposes architecture before implementation
When to use it
| Use Plan Mode | Just code |
|---|---|
| New features touching multiple files | Single-file changes |
| Unfamiliar codebase | Well-understood code |
| Architectural decisions | Bug fixes with obvious solutions |
| Complex refactoring | Simple formatting |
| Integration with external systems | Isolated utilities |
Rule of thumb: if you’d sketch it on paper first, use Plan Mode.
The plan → approve → implement cycle
1. Enter Plan Mode (Shift+Tab twice)
2. Describe what you want
3. Claude researches and creates PLAN.md
4. You review the plan
5. Approve or request changes
6. Claude implements approved plan
The plan becomes a contract. Claude follows it instead of improvising.
PLAN.md structure
## Goal
What we're building and why.
## Current State
What exists now, relevant files.
## Approach
Step-by-step implementation plan.
## Files to Modify
- `src/auth/login.ts` - Add session handling
- `src/api/routes.ts` - New endpoint
## Risks
What could go wrong, mitigation strategies.
## Open Questions
Things to clarify before proceeding.
Example: planning a new feature
You: [Shift+Tab twice]
Add a notification system that integrates with the existing
event bus and sends emails for important alerts.
Claude: Let me explore the codebase first.
[Reads event-bus.ts, email-service.ts, config files]
I found:
- Event bus uses pub/sub pattern in src/events/
- Email service exists but only handles transactional emails
- No notification preferences storage
Proposed approach:
1. Create NotificationService subscribing to event bus
2. Add notification_preferences table
3. Extend EmailService with template support
4. Create priority levels for filtering
Questions before proceeding:
- Should notifications be real-time or batched?
- What events count as "important"?
You: Real-time for critical, daily digest for others.
Critical = payment failures, security alerts.
Claude: Updated plan:
[Creates PLAN.md with full specification]
Ready to implement when you approve.
You: Approved. Proceed.
Claude: [Implements according to plan]
The research phase caught the missing preferences table before any code was written.
The mental model shift
Default AI coding: “Just do it, fix problems as they appear.”
Plan Mode: “Understand first, then build correctly.”
| Mindset | Result |
|---|---|
| Ship fast, iterate | Works for prototypes, costly for production |
| Plan then execute | Slower start, faster finish |
For complex tasks, planning time is always recovered in avoided rework.
Exit Plan Mode
After approval, Claude automatically exits Plan Mode and begins implementation. The plan serves as both specification and checklist — Claude marks items complete as it works through them.
You can also exit manually:
- Start a new conversation
- Give a direct instruction without planning context
Next: Vibe Coding
Get updates
New guides, workflows, and AI patterns. No spam.
Thank you! You're on the list.