Claude CodeClaude Code 2.1 · terminal and VS Code · macOS, Linux, Windows
Dashboard
0%
1
Curious builder0 XP earned · 300 to level 2
0 daysFinish a lesson to begin
Badge collection0 of 6 unlocked
32 small wins to finish your pathNext lesson →

Permission modes

A permission mode is a single dial that decides how often Claude Code asks before it edits a file or runs a command.

Last updated: 28 Sep, 2026 · Claude Code

One dial decides how often you are asked. Shift+Tab moves it, and picking the right position for the job is most of what makes long runs bearable.

ModeWhat it doesWhen
ManualAsks before file edits and shell commandsUnfamiliar code, or anything you would not want done twice
Accept editsEdits files and runs common filesystem commands without asking, still asks for other commandsA change you already agreed to in a plan
PlanReads and explores, refuses to touch your sourceWorking out what to do, covered in the plan mode lesson
AutoA classifier reviews actions in the background and blocks the risky ones instead of asking youThe starting mode for interactive terminal and VS Code sessions in current versions

Auto is the one worth understanding rather than accepting. It does not mean everything is allowed. It means a check runs on each action and the risky ones are stopped without a prompt appearing, which is a different trade: fewer interruptions, and a decision made by a classifier rather than by you.

There is also bypassPermissions, which asks nothing and checks nothing. It does not appear in the cycle unless you start the session with a flag that enables it, and that friction is deliberate.

Choosing one

The useful question is not how much you trust the model. It is what the worst action in reach can do, and whether it can be undone. Editing a file is undoable, as the rewind and checkpoints lesson showed. A shell command that pushes, deploys, deletes or emails is not.

A reasonable default day
approve the planbefore a pushasks you firstPlan modenothing can changeAccept editsedits without askingManualasks every timegit pushcannot be undone
Hover or tap a piece to see what it is and which lesson built it.
Trace the day

Pick one to watch it run, step by step.

It is on screen
The mode is per session and shown in the status bar, or at the bottom of the prompt box in VS Code, where clicking it switches mode. If you cannot remember which mode you are in, that is the moment to look, not after the run.
Try it yourself
  • Cycle Shift+Tab through the modes and watch the status bar change.
  • Start a session with claude --permission-mode plan and see what it refuses.

Every expert started right here.