Short version: Manual mode is the mode where Claude Code asks before almost every action. You switch it in a running session with Shift+Tab, at startup with claude --permission-mode <mode>, and permanently with permissions.defaultMode in a settings file. “Turning it off” always means picking a different mode.
The modes at a glance
Claude Code has six permission modes. The mode sets what runs without a prompt. On top of that you layer permission rules (/permissions) that allow or deny individual tools.
| Mode | Config value | Runs without asking | Best for |
|---|---|---|---|
| Manual | default (alias manual) | Reads inside the working directory; everything else prompts | Reviewing every action yourself |
| Accept Edits | acceptEdits | Reads, file edits, and file commands like mkdir, mv, cp, rm, sed inside the working directory | Iterating on code, reading the diff afterwards |
| Plan | plan | Reads and read-only commands only | Exploring a codebase before changing it |
| Auto | auto | Everything, with a second model (the classifier) reviewing each action in the background | Long tasks, fewer prompts |
| Don’t Ask | dontAsk | Only pre-approved tools; everything else is denied | CI and scripts with a fixed allowlist |
| Bypass | bypassPermissions | Everything, no checks | Isolated containers and VMs only |
Since version 2.1.200 the old “Default” mode is labeled Manual everywhere: in the CLI, in claude --help, in VS Code, JetBrains, and the desktop app. The config value is still default.
Turning manual mode off
There are three ways, depending on how long the change should last.
In the running session
Press Shift+Tab. Claude Code cycles through the modes: default → acceptEdits → plan → back to default. The status bar shows the active mode, for example ⏸ manual mode on or ⏵⏵ accept edits on.
Two modes only appear in the cycle under certain conditions: auto, when auto mode is available to your session, and bypassPermissions, when you started the session with --allow-dangerously-skip-permissions or directly in bypass mode. Both slot in after plan. You never reach dontAsk via Shift+Tab, only via the startup flag.
Since version 2.1.247 there is a shortcut: on a Bash permission prompt in Manual or Accept Edits, Claude Code offers Yes, and switch to auto mode when auto mode is available.
In VS Code, click the mode indicator below the prompt box instead (labels: Manual, Edit automatically, Plan, Auto, Bypass permissions). The desktop app has a mode selector next to the send button; the choice is remembered per folder.
When starting a session
claude --permission-mode acceptEdits
claude --permission-mode plan
claude --permission-mode auto
Valid values: default, manual, acceptEdits, plan, auto, dontAsk, bypassPermissions. The flag also works with -p for non-interactive runs. claude --dangerously-skip-permissions is the same as --permission-mode bypassPermissions.
Permanently in settings
Set permissions.defaultMode in the settings file that matches the scope you want:
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
| Scope | File |
|---|---|
| Every session on this machine | ~/.claude/settings.json |
| Every session in one project | .claude/settings.json in the project |
| Only you, only this project | .claude/settings.local.json |
| Whole organization | Managed settings |
One catch: auto and bypassPermissions do not take effect from project or local settings. For those two values you need user settings, managed settings, or the startup flag. The VS Code extension never reads project settings for the starting mode; there you set claudeCode.initialPermissionMode in your VS Code settings.
Turning manual mode back on
Same path in reverse. In the session, press Shift+Tab until the status bar reads ⏸ manual mode on. From auto, the first press already lands on default. At startup, claude --permission-mode default; permanently:
{
"permissions": {
"defaultMode": "default"
}
}
Which mode a session starts in
Claude Code takes the first match from this list:
- The
--permission-modeflag, or--dangerously-skip-permissions permissions.defaultModefrom a settings file- The built-in default
The built-in default depends on your plan. On Pro, Max, and Team, Claude Code starts in auto mode since version 2.1.228 (Windows: 2.1.233). Enterprise plans, Console API keys, claude -p, the Agent SDK, and Bedrock, Vertex, and Foundry start in Manual. If you are on Pro, Max, or Team and have set a different defaultMode, Claude Code asks once whether to switch to auto; decline and your setting stays.
If auto is selected but not available to the session (unsupported model, disabled via settings), the session starts in Manual instead.
Fewer prompts without leaving manual mode
If it’s not the mode that bothers you but the same questions over and over, three levers keep manual mode and still cut the prompts:
- Allow rules. Via
/permissionsorpermissions.allowin settings you pre-approve individual tools or command patterns, for exampleBash(git log *)orRead. Rules apply in every mode. - “Yes, and don’t ask again” on the prompt. For Bash commands Claude Code stores the approval per project and command.
- The Bash sandbox in auto-allow mode. Run
/sandboxand pick auto-allow. Commands inside the sandbox then run without a prompt because they can’t reach the system. Available on macOS, Linux, and WSL2.
Auto, Don’t Ask, and Bypass: the limits
Auto mode replaces your review with a second model. It can block actions, and in some situations it falls back to Manual. Ask rules and hooks still show you their prompts.
Don’t Ask never prompts; it denies anything not explicitly allowed. Typical for CI:
claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"
Bypass skips every check, including writes to protected paths like .git and .claude. Anthropic recommends it only in isolated environments, meaning containers or VMs where Claude Code can’t cause damage.
A few things are never auto-approved in any mode: tools matched by an explicit ask rule, the AskUserQuestion tool, MCP tools marked requiresUserInteraction, and rm or rmdir targeting critical paths.
For admins: locking modes
In any settings file, ideally managed settings because they can’t be overridden:
{
"permissions": {
"disableBypassPermissionsMode": "disable",
"disableAutoMode": "disable"
}
}
This removes Bypass or Auto from the cycle and from the selectors. Setting disableBypassPermissionsMode in your own user settings locks you out of bypass mode yourself.
Changes
- 2026-09-11: First version, checked against the docs as of September 11, 2026.
Sources
- Choose a permission mode (code.claude.com)
- Configure permissions (code.claude.com)
- CLI reference (code.claude.com)
- Settings files and precedence (code.claude.com)