Permission modes
Claude Code supports several permission modes that control how it approves tool calls. See Permission modes for when to use each one. To change the mode sessions start in, set defaultMode in your settings files. Which mode a session starts in covers the built-in default for each plan and what the VS Code extension reads.
| Mode | Description |
|---|---|
default | Prompts for permission on first use of each tool. Labeled Manual in the CLI, the VS Code and JetBrains extensions, and the desktop app, and Claude Code accepts manual as an alias. The label and alias require Claude Code v2.1.200 or later. The desktop app's label doesn't depend on your CLI version |
acceptEdits | Automatically accepts file edits and common filesystem commands such as mkdir, touch, mv, and cp for paths in the working directory or additionalDirectories |
plan | Claude reads files and runs read-only shell commands to explore but doesn't edit your source files; with auto mode available, classifier-approved commands also run. Labeled Plan in the CLI and the VS Code extension |
auto | Auto-approves tool calls with background safety checks that verify actions align with your request |
dontAsk | Auto-denies tools unless pre-approved via /permissions or permissions.allow rules. AskUserQuestion, MCP tools marked requiresUserInteraction, and connector tools your organization set to ask in sessions where that setting reaches Claude Code are denied even if you've allowed them |
bypassPermissions | Skips permission prompts, except for the actions no mode auto-approves |
In bypassPermissions mode, Claude Code skips permission prompts, including for writes to protected paths such as .git and .claude. The cross-session messaging safeguards still apply. Only use this mode in isolated environments like containers or VMs where Claude Code can't cause damage.
To prevent bypassPermissions or auto mode from being used, set permissions.disableBypassPermissionsMode or permissions.disableAutoMode to "disable" in any settings file. These are most useful in managed settings where they can't be overridden.