Skip to content

Permission Modes

Permission modes control what runs without asking you first. Picking the right mode is the difference between approving every keystroke and letting Claude execute freely — and Claude Code exposes six modes spanning that spectrum.

Official documentation: Permission modes — canonical reference.

The Six Modes

ModeWhat runs without promptingBest for
defaultRead-only ops; tool calls allowed by your settingsProduction code, critical systems, learning
acceptEditsFile edits and writes within the projectPrototyping, scaffolding, doc updates
planReads and analysis only — no edits, no commandsArchitecture work, debugging investigation, scoping
autoAll file edits and shell commands; still confirms destructive opsTrusted tasks where speed matters
dontAskEverything except a small denylist (configurable)Long-running scripted workflows
bypassPermissionsEverything, no confirmationsSandboxes and ephemeral environments only

default

Interactive review of every change Claude proposes. Claude shows the diff or the command, you approve, then it runs. Highest visibility, highest control.

acceptEdits

Edits and writes apply immediately. File deletions and shell commands still require confirmation. Good middle ground for code generation tasks where you trust the model on edits but want a checkpoint before anything destructive.

plan

Strategic exploration. Claude can read files, run search tools, and produce a plan — but cannot modify anything. Use this when you want to scope a change before committing to it. Exit with Exit Plan Mode when you're ready to execute.

auto

File edits and shell commands run without confirmation. Destructive operations (deleting files, force pushes, removing branches) still prompt. Faster than acceptEdits because shell commands run too.

dontAsk

Like auto, but with a configurable denylist instead of the built-in destructive checks. Use when scripted automation needs to run without intermediate prompts and you've explicitly enumerated the unsafe operations to block.

bypassPermissions

No confirmations at all. Reserve for disposable environments — Docker sandboxes, dev VMs, ephemeral worktrees. Never run on a workstation with credentials or production access.

Switching Modes

Press Shift+Tab to cycle through modes during a session. The active mode appears in your statusline.

Launch in a specific mode:

bash
claude --permission-mode plan
claude --permission-mode acceptEdits

Switch mid-session by asking Claude directly:

> Switch to acceptEdits for the test files, then back to default for the API

Picking a Mode

  • Reviewing or learning: default
  • Generating boilerplate or docs: acceptEdits
  • Scoping a complex change: plan
  • Trusted automation, fast iteration: auto
  • Scripted workflows with custom safety: dontAsk
  • Throwaway sandbox: bypassPermissions

Built with VitePress and powered by Claude Code