Claude Code permission modes: plan, auto, accept edits

Claude Code has six permission modes, from Manual (asks before every change) to bypassPermissions (asks nothing). What each one lets Claude do without asking, how Shift+Tab cycles them, what plan mode really blocks, how to set your default, and which mode fits which job.

Short answer: Press Shift+Tab to cycle the mode. Manual (default) asks before every edit and command, acceptEdits lets Claude edit files and run simple file commands without asking, plan lets it read and explore but not edit until you approve a plan, and auto lets it do everything with background safety checks. Set the mode you start in with permissions.defaultMode in ~/.claude/settings.json.

The mode decides how often Claude Code stops to ask you. Too strict, and you press Enter forty times for a refactor. Too loose, and it runs a command you would have stopped. Matching the mode to the job removes most of that friction.

What are the six permission modes?

From Anthropic's documentation, checked against Claude Code 2.1.308:

ModeRuns without askingBest for
default (Manual)ReadsReviewing every action, sensitive work
acceptEditsReads, file edits and common file commands (mkdir, touch, mv, cp)Iterating on code you are reviewing
planReads, plus commands the safety classifier approves when auto mode is availableExploring a codebase before changing it
autoEverything, with background safety checksLong tasks, fewer prompts
dontAskReads in your working folders and pre-approved tools; anything that would ask is deniedLocked-down CI and scripts
bypassPermissionsEverythingIsolated containers and VMs only

Your own permission rules still apply in every mode: a deny rule blocks even in bypassPermissions. Claude Code permissions: allow, ask and deny explains the rules.

How do you switch modes?

Press Shift+Tab in the terminal. The cycle runs Manual, then acceptEdits, then plan; auto joins it when auto mode is available to you, and from auto the first press goes back to Manual.

Two modes are never in the cycle unless you start with them:

  • bypassPermissions only appears if you launched with --permission-mode bypassPermissions (or --dangerously-skip-permissions) or set it as your default. You cannot switch into it from a session started without it.
  • dontAsk never appears in the cycle; start with --permission-mode dontAsk.

What does plan mode actually do?

In plan mode Claude reads files, runs shell commands to explore, and writes a plan, but does not edit your source. You then approve the plan (and pick the mode it continues in, so it starts editing), or press Shift+Tab to leave plan mode without approving.

Three ways in: Shift+Tab, /plan in front of a single prompt, or claude --permission-mode plan to start a whole session in it. It is the safest way to let Claude look around a codebase it does not know yet, and the plan doubles as a checklist you can correct before any file changes.

How do you set the mode Claude Code starts in?

In ~/.claude/settings.json:

{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

Or for one session: claude --permission-mode plan. The flag wins over the setting, and the setting over the built-in default, which is auto for interactive terminal and VS Code sessions from Claude Code 2.1.283 on. The settings value for Manual is default; the installed 2.1.308's --help lists the flag's choice as manual.

One trap: auto and bypassPermissions do nothing when set in a project's .claude/settings.json or .claude/settings.local.json. A repository you clone cannot switch your safety off. Put them in your user settings or use the flag. Claude Code settings: which file wins has the full order.

When is auto mode available?

On all plans, with a supported model: on the Anthropic API, Claude Opus 4.6 or later, Sonnet 4.6 or later, Haiku 5.5 or a Fable model. On Team and Enterprise it is on by default, and administrators can turn it off with permissions.disableAutoMode. Anthropic's own warning: auto mode "reduces permission prompts but does not guarantee safety", so keep reviewing sensitive operations.

When is bypassPermissions safe?

Only where Claude cannot damage anything that matters: a container, a VM or a dev container without internet access. It offers no protection against prompt injection, and on Linux and macOS Claude Code refuses to start in it as root or under sudo unless it detects a recognised sandbox. Administrators can block it entirely with permissions.disableBypassPermissionsMode.

Which mode should you use?

  • New codebase, or a change you want to think through: plan.
  • Everyday work you review as it happens: acceptEdits.
  • A long task you trust the direction of: auto.
  • Production configs, secrets, anything you would regret: Manual.
  • CI pipelines and scripts: dontAsk with explicit allow rules. Run Claude Code headless in CI shows the setup.

Where can you check this?

Can you set the mode and the rules in one place?

Config Studio for Claude Code explains every file Claude Code reads, including permissions.defaultMode and the allow, ask and deny rules beside it, shows which settings file wins, and writes the settings for you. Nothing changes on your computer until you run its install script yourself.

The tool

Do it in your browser.

Claude Code

Config Studio for Claude Code

Every file Claude Code reads, explained: what each setting does, where it lives, which file wins, and an editor that writes it for you.

Keep reading

More from the blog.

Every post