CLClaude Lessons Try the free lessons

Claude Lessons / Guides

Claude Code Auto Mode Explained: The New Default, What It Blocks, and How to Stay in Control

On August 14, 2026, auto mode became the default permission mode for new Claude Code sessions on Pro, Max, and Team plans. If you opened a session this week and noticed it stopped asking you to approve every command, this is why. Auto mode replaces the approve-approve-approve loop with a second model — a classifier — that reviews each risky action before it runs and blocks the dangerous ones. It is neither "Claude does whatever it wants" nor a rebranded --dangerously-skip-permissions. This guide covers what actually changed, how the classifier decides, what it blocks and what sails through, and the three mechanisms (ask rules, stated boundaries, autoMode config) that let you run hands-off without giving up the boundaries you care about.

Illustration of bounded auto mode guardrails in Claude Code

What auto mode actually is

Every Claude Code session runs in a permission mode that decides what Claude may do without asking. In Manual mode (config value default), most file edits, shell commands, and network calls stop and wait for your approval. Auto mode changes who does the reviewing: instead of prompting you, each risky tool call is routed through a separate classifier model that checks it before execution and blocks anything irreversible, destructive, or aimed outside your environment.

Three details define it more precisely than "fewer prompts":

Auto mode also nudges Claude to keep working instead of pausing for clarifying questions — which is exactly what you want for a two-hour refactor and exactly what you should account for when writing the initial prompt: the spec you give up front carries more weight when there are fewer mid-task check-ins.

The default change: who it affects, who it doesn't

The switch wasn't arbitrary. Anthropic's data showed that manual review had become theater for most users: 97% of permission prompts get approved, and in a 1,053-person controlled study, people caught a deliberately dangerous command only 13.6% of the time — dropping to roughly 5% after fifty prompts in a session — while the classifier caught 89% of the same commands. When a review step is approved reflexively, it stops being a review step. The new default moves the review to something that doesn't get tired.

Who starts in auto mode now, and who doesn't:

SituationNew sessions start in
Pro, Max, or Team plan — terminal or VS Code extensionauto
You pinned a different defaultMode in settingsYour pinned mode (one-time prompt asks if you want to switch)
Enterprise plan or Console API keydefault (Manual) — auto mode is opt-in for now
Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, Claude apps gatewaydefault — auto is in the Shift+Tab cycle but not the starting mode
claude -p (non-interactive) or Agent SDKdefault
Any settings file sets disableAutoMode: "disable"default, and auto is removed from the cycle

The built-in auto default requires Claude Code v2.1.228 or later (v2.1.233+ on native Windows); older versions keep Manual as the built-in default. The very first session after an install or upgrade also starts in Manual. And the classifier's token overhead is no longer billed on Pro, Max, and Team plans — on Enterprise and API-billed providers it still counts toward usage.

If you liked things how they were: nothing is forced. Set "permissions": { "defaultMode": "default" } in ~/.claude/settings.json and every session starts in Manual again. The one-time switch prompt respects a "no."

How the classifier decides

Each action goes through a fixed decision order. The first matching step wins:

  1. Your permission rules resolve first. deny rules block outright — the classifier is never consulted and can't override them. Explicit ask rules force a prompt to you, even in auto mode. Narrow allow rules (like Bash(npm test)) approve instantly.
  2. Read-only actions and working-directory edits auto-approve, except writes to protected paths (.git/, .claude/, shell rc files, lockfile configs like .npmrc), which route to the classifier instead.
  3. Everything else goes to the classifier — shell commands, network calls, pushes, deploys, MCP tool calls.
  4. On a block, Claude gets told and adapts. The reason is usually the fixed text "Blocked by classifier"; Claude tries an alternative or asks you.

Two design choices are worth understanding because they explain behavior you'll observe. First, entering auto mode suspends your broad allow rules. A rule like Bash(*), a wildcarded interpreter like Bash(python:*), or a blanket Agent rule would let arbitrary code skip the classifier entirely, so those are set aside while auto mode is active (your settings files aren't modified; the rules return the moment you switch modes). Narrow rules carry over. If you want everything screened, including commands your narrow allow rules would pass, set autoMode.classifyAllShell to true.

Second, the classifier never sees tool results. It reads your messages, Claude's pending tool calls, and your CLAUDE.md — but the contents of files and web pages Claude read are stripped from its view. That means hostile text in a README can't sweet-talk the reviewer, which is why auto mode doubles as a prompt-injection defense: in a third-party evaluation of 72 held-out injection scenarios run 10 times each, none of the 720 attempts succeeded against current Claude models running auto mode. A separate server-side probe additionally scans incoming tool results and warns Claude when content looks like an injection attempt.

A useful corollary: because the classifier reads CLAUDE.md, a project rule like "never force push" or "never touch the migrations folder" steers both Claude and its reviewer at once. Writing good CLAUDE.md rules just became a permissions tool — see our CLAUDE.md best practices guide.

What gets blocked, what sails through

The full rule list is long (print it yourself with claude auto-mode defaults), but the shape of it fits in a table. The classifier's organizing question is: is this action irreversible, destructive, or leaving the environment I trust?

Runs without interruptionBlocked by default
Local file operations in your working directory Downloading and executing code (curl | bash)
Installing dependencies declared in lockfiles and manifests Sending sensitive data to external endpoints (a hard deny — never approved)
Reading .env and sending credentials to their matching API Printing a live credential or token into the transcript or a file
Read-only HTTP requests Production deploys, migrations, and toggling production feature flags
Pushing to any branch of the repo you're working in, and opening a PR that matches your request Force push, deleting remote branches, rewriting pushed history, git commit --amend on commits that aren't Claude's own unpushed work
Messages between agents in the same multi-agent session git reset --hard, git checkout -- ., git clean -fd, git stash drop — anything presumed to discard uncommitted work
Deleting jobs or resources Claude itself created earlier in the session terraform destroy and friends, IAM grants, DNS and TLS changes, writes to secret managers
Security-related code and configs written as part of your task Merging a PR no human approved, approving Claude's own PR, disabling CI checks, force-passing a security test

A few blocks deserve special mention because they close paths people don't think of: posting a comment that is itself a command to automation (/deploy, atlantis apply), repointing an API base URL or registry mirror at a third-party host, changing where pushes go with git remote set-url unless you named the new remote, opening a reverse shell that exposes a local service to the internet, launching another agent with --dangerously-skip-permissions, and sending keystrokes to Claude Code's own terminal pane (which would let it drive its own approvals). The rules read like a catalog of postmortems, which is roughly what they are: at Anthropic, where auto mode is the internal default, the classifier has blocked a fallback that would have published an internal report to a public code-sharing site, a mass process kill across ~2,000 pods, and a read-only-billing request that reached for a root admin role.

One boundary that surprises people in a good way: the classifier considers repository visibility. Pushing confidential material to your private repo is fine; the same content heading to a public repo, or live API data (emails, account IDs) landing in a public PR body, gets blocked unless you explicitly named it. The push allowance is also branch-aware — a branch named production or gh-pages is judged as the deploy target it is, not as just another branch.

When auto mode falls back to asking you

Auto mode is designed to degrade into Manual, not to fail open. The mechanics:

Practice bounded autonomy hands-on

Claude Lessons has free interactive lessons on exactly this: choosing a permission mode, running auto mode with real boundaries, and reducing permission fatigue without giving up review — practiced in a simulated Claude Code workspace with instant feedback.

Start the free interactive lessons

Setting boundaries that hold

The most common auto mode question is some version of: "I want hands-off execution, but never let it push without me." There are three mechanisms, with different strength guarantees. Match the mechanism to how firm the boundary needs to be.

You wantMechanismGuarantee
A prompt before specific actions permissions.ask rules Always prompts, even in auto mode — the classifier cannot auto-approve a matching action
An action that never runs permissions.deny rules Blocks before the classifier is consulted; nothing overrides it
A boundary for this session only Say it in conversation ("don't push until I review") The classifier enforces stated boundaries — but a long session's compaction can drop the message that stated it

The human-checkpoint-before-push recipe, in your settings file:

{
  "permissions": {
    "ask": [
      "Bash(git push *)",
      "Bash(gh pr create *)"
    ]
  }
}

Conversational boundaries are more capable than they sound — "wait until I review before deploying" blocks matching actions even where the default rules would allow them, and Claude's own judgment that your condition was met does not lift the boundary; only your later message does. But they live in the transcript, and long sessions compact. For anything you'd be upset to lose, put it in an ask or deny rule instead. (How compaction works and what survives it is covered in the context management guide.)

Configuring the classifier for your environment

Out of the box, the classifier trusts exactly two things: your working directory and the repo's configured remotes (as of session start — a remote added mid-session isn't trusted). Everything else is treated as a potential exfiltration target. That conservative default is right for a personal laptop and wrong for a company, which is what the autoMode settings block fixes:

{
  "autoMode": {
    "environment": [
      "$defaults",
      "Organization: Acme Corp. Primary use: software development",
      "Source control: github.com/acme-corp and all repos under it",
      "Trusted cloud buckets: s3://acme-build-artifacts",
      "Trusted internal domains: *.corp.acme.com, api.internal.acme.com",
      "Key internal services: Jenkins at ci.acme.com, Artifactory at artifacts.acme.com"
    ]
  }
}

Things to know before you edit:

The inspection loop, all from your shell:

# Print the built-in rules as JSON
claude auto-mode defaults

# Print what YOUR session actually uses (settings applied)
claude auto-mode config

# Get AI review of your custom rules for ambiguity and false-positive risk
claude auto-mode critique

# Remove your customizations from ~/.claude/settings.json
claude auto-mode reset

A reasonable rollout order: run with plain defaults; when a routine action gets blocked, add your source control org and key internal services (this resolves the most common false positives); add trusted domains and buckets as blocks come up. For teams standardizing this across an org via managed settings, the deployment side is covered in the Claude Code for teams guide.

Switching modes and opting out

Auto mode among the other permission modes

ModeWhat runs without askingBest for
default (Manual)Reads onlyReviewing every action yourself, sensitive work
acceptEditsReads, file edits, common filesystem commandsIterating on code you review via git diff
planReads and classifier-vetted exploration; edits blocked until you approve a planScoping work before changes — see the plan mode guide
autoEverything, with classifier review of risky actionsLong tasks, the new default on Pro/Max/Team
dontAskOnly pre-approved tools; everything else auto-deniedLocked-down CI
bypassPermissionsEverything, no review of any kindIsolated containers and VMs only

The pairing that matters most in practice is plan mode + auto mode. As execution gets more autonomous, the leverage moves to the moments your judgment still applies: the plan approval before work starts, and the diff review after it ends. Plan first, approve into auto mode, review the result. Autonomy in the middle is exactly where it's cheap.

And to be precise about the comparison people actually worry about: auto mode is not bypassPermissions with better marketing. Bypass removes all review; auto mode replaces your habitual click-through with a reviewer that reads every risky call, can't be fatigued at prompt fifty, and blocks the categories — exfiltration, self-escalation, injection-driven actions — that matter most. Anthropic's own head-to-head: the classifier blocked 800 dangerous commands that human reviewers approved; humans blocked 6 it allowed. If your threat model still demands isolation, that's a sandboxing question, not a mode question — see the security best practices guide.

Common mistakes

FAQ

What is auto mode in Claude Code?

Auto mode is a permission mode in which Claude Code stops asking you to approve routine actions. Instead, a separate classifier model reviews each risky tool call before it runs and blocks anything irreversible, destructive, or aimed outside your environment — force pushes, curl | bash, production deploys, sending secrets to external endpoints. Reads and ordinary file edits in your working directory skip the classifier entirely. When the classifier blocks something, Claude finds a safer route or asks you directly.

Is auto mode on by default?

Yes, for most people. Since August 14, 2026, new sessions on Pro, Max, and Team plans start in auto mode (Claude Code v2.1.228+, or v2.1.233+ on native Windows). It is not the default for Enterprise plans, Console API keys, claude -p and Agent SDK runs, or sessions on Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry — those still start in Manual. If you had already pinned a different defaultMode, your choice is kept; you may see a one-time prompt asking whether to switch.

Is auto mode the same as --dangerously-skip-permissions?

No. bypassPermissions skips every check — no prompts, no review of any kind. Auto mode replaces your prompts with a second model that inspects each risky action before it runs. In third-party prompt-injection testing, current Claude models in auto mode stopped every attack in the evaluation set; bypass exists precisely to remove that layer. Outside an isolated container, choose auto mode.

How do I turn off auto mode?

Press Shift+Tab to switch mid-session — the first press from auto lands on Manual. To change the default for every session, set permissions.defaultMode to "default" in ~/.claude/settings.json. Organizations can remove auto mode entirely with permissions.disableAutoMode: "disable" in managed settings, which also takes it out of the Shift+Tab cycle.

Does auto mode cost extra tokens?

On Pro, Max, and Team plans, no — Anthropic stopped charging for the classifier's overhead when auto mode became the default. On Enterprise plans and API-billed setups, classifier calls count toward usage: each check sends part of the transcript plus the pending action. Since reads and working-directory edits skip the classifier, the overhead lands mainly on shell commands and network operations. For the broader picture of where session tokens go, see the token usage and costs guide.

Does auto mode work with subagents and agent teams?

Yes, and more thoroughly than most people expect. For subagents, the classifier evaluates the delegated task before the subagent starts, screens each of its actions while it runs, and reviews its full action history when it returns. In agent teams, it also reviews every message agents send each other — and treats one agent's claim that "the user approved this" as untrusted rather than as consent.

Build the autonomy habits, not just the settings

Claude Lessons has 38 free interactive lessons — including bounded auto mode, choosing a permission mode, and reducing permission fatigue — all practiced hands-on in a simulated Claude Code workspace.

Practice hands-on in the free interactive lessons