Claude Code Mode Guide: Plan Mode, Auto-Accept, and Default Mode Explained
"I started using Claude Code and it edited my files before I was ready." "When should I use Plan Mode?" If you've just started with Claude Code, the different modes can be confusing.
Claude Code has three modes, each defining what Claude is allowed to do. Understanding how they work helps you prevent unintended changes while staying productive.
This article explains each mode's behavior, how to switch between them, and when to use each one, based on the official Anthropic documentation.
The Three Modes in Claude Code
Claude Code offers three modes with different permission levels. The current mode is always displayed at the bottom of the terminal, so you can check it at a glance.
When you switch modes, you'll see an "accept edits on" indicator. Because of this, some people call it "Edit mode," but the official name is "Auto-Accept Mode." This article uses the official terminology throughout.
Default Mode
This is the standard mode. Claude asks for confirmation before editing any file or running any command.
Characteristics:
- Confirmation required before file edits
- Confirmation required before command execution
- Best for beginners or when you want to review every change
Best for:
- Getting started with Claude Code
- Working with production-critical code
- When you want to review changes carefully
Auto-Accept Mode
This mode automatically approves file edits. Claude applies proposed changes without asking for confirmation.
Indicator: accept edits on
Characteristics:
- File edits are applied automatically without confirmation
- Command execution (bash, etc.) still requires confirmation
- Significantly increases working speed
Best for:
- Repetitive bulk changes (adding type definitions, formatting, etc.)
- Creating new files from scratch
- When your code is under Git version control and easy to revert
Plan Mode
In this mode, Claude only creates plans without editing files. You review the plan first, then execute the changes separately.
Indicator: plan mode on
Characteristics:
- No file edits or command execution
- Only read-only operations (viewing files, searching, etc.)
- Creates an implementation plan for you to review before execution
Best for:
- Understanding the big picture before implementing complex features
- Investigating and analyzing an existing codebase
- Discussing the approach with your team before coding
- Assessing the impact of large-scale refactoring
How to Switch Modes
Switch modes using the Shift+Tab key.
Switching During a Session
Each press of Shift+Tab cycles through the modes in this order:
Default Mode -> Auto-Accept Mode -> Plan Mode -> Default Mode (back to start)
To reach Plan Mode, press Shift+Tab twice.
Specifying a Mode at Startup
To start directly in Plan Mode, use a flag when launching:
claude --permission-mode plan
Changing the Default Mode
You can set a default mode per project. Add the following to .claude/settings.json:
{
"permissions": {
"defaultMode": "plan"
}
}
In VS Code, you can change this through the claudeCode.initialPermissionMode setting.
Mode Comparison Table
| Mode | File Edits | Command Execution | Best For |
|---|---|---|---|
| Default | Requires confirmation | Requires confirmation | Beginners, careful work |
| Auto-Accept | Auto-approved | Requires confirmation | Fast implementation, repetitive tasks |
| Plan Mode | Not allowed | Not allowed (in principle) | Research, design, planning |
Tools Available in Plan Mode
In Plan Mode, Claude's available tools are restricted. This completely prevents unintended changes.
Available Tools (Read-Only)
- Read - Display file contents
- LS - List directory contents
- Glob - File pattern search
- Grep - Text search within files
- Task - Subagent for research
- WebFetch - Fetch web content
- WebSearch - Web search
- NotebookRead - Read Jupyter notebooks
Unavailable Tools (Write Operations)
- Edit / MultiEdit - File editing
- Write - File creation
- Bash - Command execution
- NotebookEdit - Notebook editing
Practical Usage Patterns
Pattern 1: Plan Mode to Default Mode (Two-Stage Approach)
An effective pattern for implementing complex features.
- Create a plan in Plan Mode — Press
Shift+Tabtwice to enter Plan Mode. Give an instruction like "I want to migrate the auth system to OAuth2. Create a detailed plan." Claude investigates the codebase and presents an implementation plan. - Review and refine the plan — Review the proposed plan. Ask follow-up questions if anything is unclear. Move on once the plan looks good.
- Implement in Default Mode — Press
Shift+Tabto return to Default Mode. Say "Now implement this plan." Review each change as it's made.
Pattern 2: Moving Fast with Auto-Accept
Effective for large batches of repetitive changes.
Example: Adding type definitions to all files
- Press
Shift+Tabonce to switch to Auto-Accept Mode - Instruct "Add type definitions to all functions"
- Claude automatically edits all files
- Review the changes with git diff afterward
Important: Always commit your work before using Auto-Accept Mode. Having a clean Git state means you can easily revert any unwanted changes.
Pattern 3: Investigation-Only with Plan Mode
Plan Mode is useful when you want to understand an existing codebase.
- Press
Shift+Tabtwice to enter Plan Mode - Ask "Investigate and explain how authentication works in this project"
- Claude reads the code and provides an explanation
- No files are modified at all
Opus Plan Mode (Automatic Model Switching)
Plan Mode has an extended feature called "Opus Plan Mode." This uses Opus (the high-capability model) for planning and automatically switches to Sonnet (the fast model) for implementation.
How to Set It Up
Run the /model command and select the "Use Opus in plan mode, Sonnet otherwise" option.
Benefits
- Leverages Opus's strong reasoning for planning
- Uses Sonnet for fast, cost-effective implementation
- Eliminates the need to manually switch models
Things to Keep in Mind
Detailed planning with Opus can consume tokens quickly, making it easier to hit rate limits. If usage limits are a concern, sticking with Sonnet for everything may be more predictable.
Frequently Asked Questions
Q. Does Plan Mode still count toward usage limits?
Yes. Plan Mode only prevents edits—your conversation with Claude still happens normally. Reading files, running searches, and other interactions all consume tokens, so they count toward your usage limits.
Q. Is the conversation preserved when switching modes?
Yes. Switching modes keeps all conversation context intact. You can create a plan in Plan Mode and seamlessly continue implementation in Default Mode.
Q. Can I switch modes in the VS Code extension?
Yes. In the VS Code extension, you can set the default mode through claudeCode.initialPermissionMode in Settings. You can also switch during a conversation via the / command menu.
Q. What if Auto-Accept makes an unwanted change?
If you're using Git, you can easily revert with git checkout or git restore. We recommend committing frequently when working with Claude Code. You can also press Esc to interrupt Claude mid-operation.
Summary
Here's a quick recap of Claude Code's three modes:
- Default Mode: Every change requires confirmation. The safest choice for beginners and careful work.
- Auto-Accept Mode: File edits are auto-approved. Great for speeding through repetitive tasks.
- Plan Mode: Read-only mode for planning. Ideal for understanding the full picture before complex implementations.
Switching is as easy as pressing Shift+Tab. Using the right mode for the situation helps you avoid unexpected changes while making the most of Claude Code's capabilities.
Start with Default Mode to get comfortable, then gradually try Auto-Accept and Plan Mode as you build confidence.