
What Claude Code auto mode actually does
Auto Mode is now Claude Code's default for Pro, Max, and Team plans. Here's what it actually blocks, how to configure it, and the real security tradeoff.
Claude Code auto mode lets the agent run tool calls without stopping to ask permission for every action, routing each call through a classifier instead of a human. Anthropic made it the default for Pro, Max, and Team plans on August 14, 2026, and the reason is more specific than "convenience": the company's own research found that users approve 97% of permission prompts reflexively, without actually reviewing what they're approving. A prompt nobody reads isn't a safety check, it's friction with no payoff.
What Auto Mode actually does
Auto Mode is a second gate that runs after Claude Code's normal permission system. Explicit permissions.deny and permissions.ask rules are evaluated first and always win, a classifier only sees what those rules haven't already settled. For everything else, the classifier scores the action and blocks anything it judges irreversible, destructive, or aimed outside your working environment.
By default, the classifier trusts only your working directory and the current repo's configured remotes. Pushing to a different org's repo, writing to a shared cloud bucket, anything outside that narrow default gets blocked until you explicitly tell the classifier it's safe. If Auto Mode blocks the same real destination repeatedly in one session, that's usually a sign the classifier is missing context about your environment, worth fixing in the settings rather than repeatedly overriding by hand.
Anthropic backs the approach with a real study: across 1,053 testers, Auto Mode caught 89% of dangerous commands, compared to a 13.6% catch rate for humans reviewing the same prompts manually. That gap is the same evidence already covered in more depth in "From code writer to orchestrator", which looks at what this classifier rollout means for the senior engineer's actual role. Here, the more useful detail is what happens when the classifier itself gets stuck: after 3 consecutive blocks or 20 total blocks in one session, Claude Code falls back to manual approval rather than letting a repeatedly-denied session keep grinding against the same wall.
Auto Mode vs Accept Edits vs skipping permissions entirely
Claude Code actually ships six permission modes, and mixing up Auto Mode with the other two people usually ask about, Accept Edits and --dangerously-skip-permissions, leads to real config mistakes. Here's what each one actually auto-approves, per Anthropic's own current documentation:
| Mode | What runs without asking | Classifier still checking? | Best for |
|---|---|---|---|
Manual (default) | Reads only | N/A | Reviewing every action yourself |
Accept Edits (acceptEdits) | Reads, file edits, common filesystem commands (mkdir, touch, mv, cp) | No | Iterating on code you're already watching |
Auto (auto) | Everything | Yes, a classifier reviews actions in the background | Long tasks, reducing prompt fatigue |
Bypass (--dangerously-skip-permissions) | Everything | No, every check is skipped | Isolated containers and VMs only |
The distinction that actually matters: Accept Edits auto-approves a narrow, low-risk slice of actions with no classifier involved at all. It assumes you're watching the edits happen in real time. Auto Mode works differently. It auto-approves everything, file edits, Bash, network calls, but keeps the classifier reviewing in the background the whole time.
--dangerously-skip-permissions (the bypassPermissions mode) approves everything with no review of any kind, including no classifier check at all, which is exactly why Anthropic's own guidance restricts it to an isolated container or VM, never a real development machine with real credentials on it.
How to actually configure it
The part most coverage skips is that Auto Mode is meant to be configured, a step past just switching it on. The real work lives in autoMode.environment, a setting in ~/.claude/settings.json (deliberately not the project-level .claude/settings.json, so a checked-in repo can't quietly inject its own trust rules). This is where you tell the classifier which repos, cloud buckets, and internal domains actually belong to your organization, in plain prose, not regex:
{
"autoMode": {
"environment": [
"$defaults",
"Source control: github.example.com/acme-corp and all repos under it",
"Trusted cloud buckets: s3://acme-build-artifacts",
"Trusted internal domains: *.corp.example.com"
]
}
}Running /auto-mode-setup drafts these entries automatically from your actual project and recent session history, rather than making you write them from scratch. Once configured, claude auto-mode config shows the effective ruleset Claude Code is actually using, and claude auto-mode critique flags your custom rules if they're ambiguous or likely to cause false positives.
One default is worth knowing about even if you never touch the settings file: as of Claude Code v2.1.211, Auto Mode allows pushes to any branch of your working repo, including the default branch, a looser default than earlier versions shipped with. Branches named like production, release, or gh-pages are judged on their own terms as likely deploy targets, but a plain main push is not treated as automatically risky the way it once was. If you want a hard checkpoint before every push regardless of branch, add an explicit permissions.ask rule for Bash(git push *), that rule is evaluated before the classifier and can't be silently overridden by it.
If Auto Mode isn't showing up
A session that stays in Manual mode despite being on a Pro, Max, or Team plan usually comes down to one of a few real, checkable causes rather than a broken account. The built-in Auto default requires Claude Code v2.1.228 or later on macOS, Linux, and WSL, and v2.1.233 or later on native Windows, an outdated CLI install is the most common real cause.
Beyond version, three other things can block it. The selected model might not support it. A settings file might have explicitly turned it off (disableAutoMode). Or Anthropic might have temporarily disabled it server-side for that session. None of these are permanent: updating Claude Code, switching models, or checking ~/.claude/settings.json for a defaultMode or disableAutoMode override covers the real, common cases.
The tradeoff Anthropic won't put this plainly
The real limit of Auto Mode showed up within weeks of the rollout. A security researcher demonstrated a way to trick Claude Code into running malware just by asking it to summarize a malicious website. The exploit worked by chaining Auto Mode's own fallback behavior, when Claude's web-fetch tool failed, it fell back to running curl through Bash, then wrote its own decoder script that got hijacked by a maliciously named local file shadowing a real Python standard-library module. The attack succeeded 60 to 80% of the time across variants tested.
Anthropic's own response to that report was direct: Auto Mode is "a convenience feature backed by a best-effort classifier, not a security guarantee." That's a meaningfully different claim than "89% of dangerous commands caught," and it's the sentence worth remembering before trusting Auto Mode with anything that touches real credentials or production infrastructure. A classifier trained to catch obviously destructive commands isn't the same thing as a system that can reliably detect a multi-step social-engineering chain aimed at itself.
The practical version of that distinction: run agentic sessions that touch real infrastructure inside a sandboxed environment with restricted network egress, treat autoMode.environment as a real configuration task rather than something to leave on defaults, and add permissions.ask checkpoints anywhere you'd genuinely want a human in the loop before something ships. Auto Mode earns its convenience on routine, low-stakes work. Keep your own attention on anything that touches your production database.
The actual verdict
Auto Mode is a real improvement over a permission system nobody was actually reading, the 97% reflexive-approval number alone justifies that. What it isn't is a substitute for knowing what your own environment configuration actually trusts. Spend the ten minutes running /auto-mode-setup and reviewing the draft it produces, then decide deliberately where a permissions.ask checkpoint is worth the friction Anthropic just spent this whole feature trying to remove.