# Why Claude Sonnet 5 Appears in Your Usage

You chose Claude Sonnet 5.5 (or Opus) in Claude Code, but the usage statistics in your
[dashboard](/docs/reference/dashboard-guide) also list `claude-sonnet-5`? Usually this is not a wrong model setting and the
requests were not switched to another model: these are **safety-check requests that Claude Code itself sends in the background**.

## Where these Sonnet 5 requests come from

In the `auto` permission mode, before Claude Code runs an action that needs approval (such as a shell command, or an edit outside
the working directory), it first hands that step to a separate **classifier** for review: clearly out-of-scope actions are blocked,
everything else runs without asking you. Claude Code's official documentation says:

> By default, classifier requests go to Claude Sonnet 5.

What to know:

- **You may never have turned it on**: since Claude Code 2.1.283, interactive terminal sessions and VS Code start in `auto` by default.
- **These requests count toward your usage**: classifier requests are sent with your API key, so they appear in your usage and cost
  as `claude-sonnet-5`. Your main conversation stays under the model you picked (for example `claude-sonnet-5-5`).
- **What a single request looks like**: the classifier reads the current session context to make its decision, so the input can be
  sizeable while the output is usually very short. The more commands run, the more of these requests you will see.

For the full mechanism, see the section on the `auto` mode in [Feature Availability](/docs/reference/feature-availability).

## How to check

- Look at the status bar under the Claude Code input box: `⏵⏵ auto mode on` means the `auto` mode is active and classifier requests
  will be sent; `⏸ manual mode on` means manual approval.
- In the dashboard usage statistics, look at the per-model rows: the `claude-sonnet-5` request count grows with the number of
  commands you run, and each request has very few output tokens.

## How to reduce these requests (optional)

The classifier is a safety feature of Claude Code, and there is nothing wrong with keeping it. If you want fewer of these
requests, the most direct way is to switch to another permission mode:

- Press **`Shift+Tab`** in Claude Code: from `auto`, one press switches to manual approval (the status bar shows
  `⏸ manual mode on`). Actions that need approval will ask you directly, and no classifier request is sent.
- At startup: `claude --permission-mode default`.
- Permanently: set `permissions.defaultMode` in a settings file; see [Permission Modes](/docs/usage/permissions).

In addition, since Claude Code 2.1.302 the environment variable `CLAUDE_CODE_AUTO_MODE_MODEL` selects the classifier model
(use a full model ID). According to the official documentation:

- if you set it to Claude Opus 5, Sonnet 5.5 or Opus 5.5, the default classifier model reviews instead, so setting
  `claude-sonnet-5-5` **has no effect**;
- if you set a model your provider cannot serve, classifier checks fail and Claude Code denies every action it checks.

## FAQ

**Were my requests switched to Sonnet 5?**
No. Usage is recorded under the model Claude Code actually sends. Your `claude-sonnet-5-5` requests are recorded as
`claude-sonnet-5-5`; the `claude-sonnet-5` part comes from the classifier.

**I am not in `auto`, but I still see `claude-sonnet-5`.**
First check the status bar for the current mode (in `plan` mode, shell commands during planning may also be reviewed by the
classifier). Then check whether `claude-sonnet-5` is set somewhere as the default or subagent model, for example via `/model`,
`ANTHROPIC_MODEL` or `ANTHROPIC_DEFAULT_SONNET_MODEL`.

**How are these requests billed?**
Like any other request, by tokens; per-model prices are on [qcode.cc/models](https://qcode.cc/models), and the billing rules are in
[Billing](/docs/reference/billing).