Claude Code Auto Mode Is Now the Default: Check, Disable, Debug

Blog / Developer tools

Claude Code Auto Mode Is Now the Default: Check, Disable, Debug

As of October 2026, Claude Code 2.1.283 and later starts in auto mode whenever no permission mode is specified, in both the terminal and VS Code. Commands are no longer confirmed one by one. Instead, a separate model, the classifier, decides whether to allow or block each one. To go back to per-command confirmation, set permissions.defaultMode to default. To opt out of the server-side classifier, set CLAUDE_CODE_AUTO_MODE_SERVER=0. This article is based on version 2.1.302, released October 16. Everything below comes from Anthropic's official docs and changelog; check your own version with claude --version.

What actually changed when auto mode became the default?

The official permission modes documentation says that from 2.1.283, auto mode is the built-in starting mode for interactive terminal and VS Code sessions. Earlier versions did this only for Pro, Max and Team plans, and only in sessions that could fetch feature flags.

A few points that are easy to mix up:

  • In auto mode, the classifier reviews actions that would otherwise need your confirmation. Low-risk operations such as reads do not go through it.
  • Defaults differ by entry point. claude -p and the Agent SDK default to default in sessions that can fetch feature flags. The 2.1.302 changelog adds that on third-party providers, with telemetry off, or on a fresh install, claude -p and SDK sessions with no configured permission mode also start in default. Passing --permission-mode auto explicitly still gives you auto.
  • If your ~/.claude/settings.json already sets a non-auto defaultMode, sessions keep starting with it.
  • Auto mode has prerequisites (a supported model, not disabled by an admin, not turned off server-side, and so on). When they are not met, Claude Code says auto mode is unavailable and the session stays off; start a new session and try again. See the official docs for details.

What is the server-side classifier, and how do you opt out?

There are two classifier sources: the client-side classifier, where Claude Code makes its own request, and the server-side classifier, where the review is done on the server together with the session's request. The docs state that when connecting directly to the Anthropic API, -p, the SDK, VS Code and the desktop app need 2.1.281 or later. From 2.1.282, sessions that do not fetch feature flags (for example, with telemetry turned off) use server-side review by default.

To pin the client-side classifier:

export CLAUDE_CODE_AUTO_MODE_SERVER=0

2.1.302 added CLAUDE_CODE_AUTO_MODE_MODEL, which sets the model used by the client-side classifier. It does not affect the server-side classifier. For the accepted value format, see the environment variables docs.

How do you check the current mode and pin manual mode?

Press Shift+Tab to cycle through modes during a session; the UI shows the current one. Manual mode is labeled Manual in the interface, and its config value is default.

To make every terminal session on your machine start in manual mode, add this to ~/.claude/settings.json:

{
  "permissions": {
    "defaultMode": "default"
  }
}

To change a single session only, use claude --permission-mode default. The command-line flag takes precedence over defaultMode in settings files, and the built-in default comes last.

Two gotchas:

  • Putting "auto" in a project's .claude/settings.json or .claude/settings.local.json has no effect. It has to go in ~/.claude/settings.json.
  • To disable auto mode entirely for a team, an administrator must set permissions.disableAutoMode to "disable" in managed settings.

A command was blocked or shows "Not run". How do you find out why?

First work out who blocked it. Go through this checklist:

SymptomLikely causeWhat to do
Gray "Not run"Since 2.1.296, calls for which the classifier gave no usable verdict are shown in gray rather than as a red errorRetry; if it keeps happening, see the next rows
Message that the server returned no safety verdictThe review result was dropped or rewritten by a gateway or proxy, or the server-side check timed outSee the official error reference; behind a gateway, try CLAUDE_CODE_AUTO_MODE_SERVER=0
Everything is denied after a long conversationThe context is too long for the classifier to reviewUpgrade to 2.1.302, which compacts before reviewing
Routine operations keep getting blockedThe target repo or service is outside the trusted scopeSee Configure auto mode and declare trusted infrastructure in autoMode.environment
Unclear whether a rule or the classifier blocked itEither could haveTurn on OpenTelemetry and look at the tool_decision event

Since 2.1.301, the tool_decision event carries classifier_verdict and permission_mode, which tell you whether the decision came from the classifier or from a permission rule. With OTEL_LOG_TOOL_DETAILS=1 set, it also includes classifier_category, which names the built-in rule that matched. 2.1.302 fixed that field being missing on most classifier blocks.

You can also run claude auto-mode defaults to print the full JSON of the built-in rules for comparison.

Did connection errors or slowness after upgrading come from auto mode?

Not necessarily. The classifier only affects permission decisions. Network timeouts, 529 errors and quota problems are a different class of issue. Start with cdnping's Anthropic status page and the Claude Code availability page, then work through the Claude Code connection troubleshooting checklist layer by layer. For 529 errors, see how to configure the new retry watchdog and idle compaction. For early-October anomalies, compare against the September 29 outage and the October 7 spend-limit misjudgment. If you use Claude Code through a custom endpoint, read the custom API configuration guide; defaults on third-party providers differ from direct connections, so follow the official docs. For another approach to running agent commands in a sandbox, see Copilot local sandboxing. Anthropic's release notes are also tracked on cdnping's changes page.

Should you turn auto mode off?

It depends on the situation. Auto mode exists to interrupt you less, and the cost is handing approval to a model. For sensitive repositories, production credentials or unfamiliar code, Manual is safer. For everyday iteration in local projects, keeping auto with a well-configured trusted scope is usually enough. Either way, try a few blocked cases in an unimportant directory first, then decide.

References

Related articles

Keep reading