---
lastModified: 2026-10-23
---

<script>
  import ClaudeSubscriptionMode from '#lib/docs/claude-subscription-mode.svelte'
</script>

# The Dial

The Dial controls how hard Amp works on a task. Choose a mode based on how much the agent needs to
figure out, not on which model happens to be behind it.

<div class="docs-media-stage">
  <img class="docs-transparent-media" width="1666" style="aspect-ratio: 1666/1311" src="https://static.ampcode.com/docs/the-dial.png" alt="Amp's mode picker in the web app showing the Dial and the low, medium, high, and ultra modes" />
</div>

## Choose a Mode

- **`low`** is for small, well-defined tasks. Use it when you know exactly what you want, such as a
  focused bug fix, test, or refactor.
- **`medium`** is the default for most work. Use it for messy or multi-part tasks where Amp needs to
  fill in some of the steps.
- **`high`** is for hard tasks where a subtle miss would be expensive. It spends more time reasoning
  and usually produces a result that is closer to review-ready.
- **`ultra`** is for hard, open-ended work where the outcome is clear but the path is not. Use it for
  migrations, architecture, and changes that cross many files or systems.

Starting too low can cost more if you need several attempts. Starting too high can waste time and
credits on a simple change. Use `medium` for most threads. Choose a lower mode when the task is
clear, and a higher mode when a miss costs more than the wait.

## Choose the Mode Before the First Message

A thread keeps the mode you chose when you sent its first message. You cannot change the mode
later in that thread. To work in a different mode, start a new thread.

The mode is fixed for two reasons. First, most models get confused when they continue a
conversation that another model started, and in our experience the results were never good.
Second, each mode has its own system prompt and tool definitions. Switching mid-thread would
mean rewriting them, which invalidates the prompt cache and makes the thread more expensive.

In the CLI, press <kbd>Ctrl+S</kbd> before your first message to turn the Dial. You can also open
the command palette with <kbd>Ctrl+O</kbd> and type `mode`. After the first message,
<kbd>Ctrl+S</kbd> shows the thread's mode and its models but does not change them. In the web
app, choose the mode in the new thread form. An existing thread shows its mode in the thread menu.

<img width="726" style="aspect-ratio: 1452/466" src="https://static.ampcode.com/docs/the-dial-cli-dial.png?v=3" alt="Amp's mode dial in the CLI showing low, medium, high, and ultra, with medium selected" />

## Models Behind the Dial

Amp chooses the model, reasoning effort, system prompt, and tools for each mode. That routing
changes as models improve, but the meaning of each position on the Dial stays the same. See
[Modes](/modes) for the current model behind each mode.

Amp may customize the main agent's routing based on connected model provider subscriptions,
workspace restrictions, and model availability.

The [Task and Read Thread subagents](/docs/models-and-subagents#subagents) that a mode starts run
the same model and reasoning effort as its main agent. If you want a built-in mode to always use
a specific model, you can [pin one per mode](#tune-the-modes) in the dial editor.

## Use a ChatGPT Subscription

When you [sign in with ChatGPT](/settings/model-routing?add=chatgpt) and allow token sharing, OpenAI model usage
is billed to your ChatGPT subscription instead of Amp credits. This includes the GPT-6 Astra main
agent in `high` and the Task and Read Thread subagents it starts.

From the CLI, run `amp config model-providers add-chatgpt-subscription` (or `amp add-chatgpt-sub`)
to open the same sign-in flow in your browser. Existing legacy ChatGPT connections keep working;
you do not need to reconnect them.

By default, some modes, such as `medium`, run a main agent model your subscription does not
serve, and those bill to Amp credits. If you have not changed your mode dial
or Tune Modes, and your workspace has not tuned its modes, linking ChatGPT applies the
**ChatGPT Only** preset for you. Otherwise Amp leaves your modes as they are and offers to apply
the preset in one click, as it also does when you reactivate the subscription. You can also open
[Tune Modes](#tune-the-modes), press the preset at the bottom, and save. It pins the main agent
of `low`, `medium`, and `high` to OpenAI models (GPT-5.6 Terra for `low`, GPT-6.1 Sol for
`medium`, and GPT-6 Astra for `high`), so later changes to Amp's default models do not move these
modes off your subscription. The Task and Read Thread subagents in these modes run the same
models.

Each of these main agent roles follows the preset instead of holding its own copy of the model.
When Amp changes the preset, for example to a newer OpenAI model, the roles change with it and you
do not need to apply the preset again. A role that follows the preset shows the preset's name in
Tune Modes.

You can still change one thing. If you set the model or the effort of such a role, the role uses
your setting and keeps following the preset for everything else. The other modes are not
affected. Press **Preset** on the role to drop your setting, or **Auto** to stop that role
following the preset. Press the preset at the bottom again to stop following it: the roles you
did not change return to Auto, and the roles you changed keep your model or effort as ordinary
pins.

If you deactivate or delete the subscription, Amp offers to return the roles it served to Auto,
so they follow Amp's default models instead of billing their pinned models to Amp credits.

`ultra` keeps Amp's routing so it can run the strongest model Amp has selected for the hardest
tasks. [Modes](/modes) shows both routings side by side.

### Costs and Limitations

You can use [runners](/docs/cli/runners) on your own machine for free. When using orbs, you pay for
the orbs (from Amp Megawatt/Gigawatt or Amp credits); the orbs aren't covered by your ChatGPT plan.

Image generation with [Painter](/docs/tools#painter) still uses Amp credits because OpenAI does not
support it through ChatGPT subscriptions. Web search, reading web pages, and voice also use Amp
credits.

<ClaudeSubscriptionMode />

## Custom Modes

[Plugins](/docs/customize/plugins#define-a-custom-agent-mode) can add custom agent modes with their
own model, prompt, tools, and display settings. Custom modes are always available in the mode
picker, whether or not they are on your dial. See
[Use Modes That Are Not on Your Dial](#use-modes-that-are-not-on-your-dial).

## Customize Your Dial

You can customize the dial in two ways under [Settings → Mode Dial](/settings/dial):

- **Tune Modes** lets you choose the model and reasoning effort behind a builtin mode's main
  agent, which the mode's subagents also run. Use models served by your own API key or
  subscription while keeping the mode's prompt and tools.
- **Build Dial** lets you put two to four builtin or plugin modes on the dial in your preferred
  order. Add a specialist agent you use often, e.g., a reviewer with your team's instructions.

Workspace admins can configure both tabs for their members, and personal settings take precedence.

Enterprise workspace admins can also disable models for their members in
[Allowed Models](/docs/enterprise/allowed-models). A disabled model is marked "Disabled" in the
**Tune Modes** list, and a personal pin to a disabled model is ignored until the model is enabled
again.

The dial holds the modes you reach for most often. It is not the full list. Every other mode,
including plugin modes and modes that run a single model, stays one step away in the mode picker.
You do not need a dial slot for a mode to use it.

## Tune the Modes

Open **Tune Modes** and turn the dial to a builtin mode. Each mode has one role, **Main Agent**,
which runs the conversation. You can pin its model and reasoning effort. Subagents have no model
setting of their own: [Task and Read Thread](/docs/models-and-subagents#subagents) run the same
model and reasoning effort as the thread that started them, so they follow your pin.
[Supporting system models](/docs/models-and-subagents#system-models) keep Amp's routing.

<div class="docs-media-stage">
  <img class="docs-transparent-media docs-media-light" width="1858" height="775" style="aspect-ratio: 1858/775" src="https://static.ampcode.com/docs/the-dial-tune-modes-light.png" alt="Tune Modes with high selected. The Main Agent role, the only role, is pinned to GPT-6 Astra at medium reasoning effort, and the dial's screen shows that model." />
  <img class="docs-transparent-media docs-media-dark" width="1858" height="775" style="aspect-ratio: 1858/775" src="https://static.ampcode.com/docs/the-dial-tune-modes-dark.png" alt="Tune Modes with high selected. The Main Agent role, the only role, is pinned to GPT-6 Astra at medium reasoning effort, and the dial's screen shows that model." />
</div>

Choose a model from the **Main Agent** list, adjust its reasoning effort if needed, and press
**Save**.
The mode keeps its prompt and tools.

Puck is not on the dial, but you can tune it too. Press the **Puck** button under the dial to pin
its **Main Agent** model.

Plugin agents and other modes with their own routing appear
for reference. Their routing cannot be changed in **Tune Modes**; plugin agent models must be
changed in their agent definitions. This includes plugin agents that extend a builtin mode: pinning
a model for `medium` does not change the main model of an agent that extends `medium`.

### Automatic Models and Reasoning Effort

A model set to **Auto** follows Amp's model choices as they change. You can pin the model for some
modes and leave the others on Auto.

Reasoning effort controls how much thinking the model does before it answers. You can pin effort
without pinning a model, or keep effort on Auto while choosing a model. Only supported effort
levels are available, and models without an effort control have no adjustable levels.

If a pinned model becomes unavailable or your workspace restricts it, Amp falls back to automatic
model selection. If an effort level is not supported by the model, Amp uses the closest supported
level.

### Save or Reset Tuning

- **Save** applies your model and effort changes. **Discard** returns to the saved settings.
- **Revert** on a role discards only that role's unsaved changes.
- **Auto** on a role clears both its model and effort pins. Press **Save** to apply it.
- **Reset to default** clears your pins for the selected mode and saves immediately. If your
  workspace has pins for that mode, you follow those instead.

### Use Your Own Key or Subscription

1. Add your API key (BYOK) or link your ChatGPT subscription in
   [Model Routing](/settings/model-routing).
2. In **Tune Modes**, select models that your connection supports for the modes you want to change.
3. Save, then check the routing preview in **Model Routing** to see which connection serves each
   model.

Tune Modes selects the model, while Model Routing determines which provider serves it. A pin takes
precedence over Amp's automatic model choices. It does not give your subscription access to models
your plan does not support.

Usage through your key bills to your provider account. Usage through your subscription counts
against that plan, and usage served by Amp bills to Amp credits. Workspace provider restrictions
still apply.

Tuning a mode does not change
[supporting system models](/docs/models-and-subagents#system-models), e.g., image generation.
Do not assume that pinning the main agent puts every model call on your subscription.

## Build Your Dial

Open **Build Dial** to choose two to four modes and their order. The catalog includes builtin modes
and the plugin agents available to you. You do not need to change your dial to use Tune Modes.

<div class="docs-media-stage">
  <img class="docs-transparent-media" width="1852" height="1394" style="aspect-ratio: 1852/1394" src="https://static.ampcode.com/docs/build-your-own-dial-build-dial-20260910.png" alt="Build Dial with Medium, High, and the Grok 4.6 plugin mode in three slots, one vacant slot, and a catalog of available modes" />
</div>

1. Drag a mode onto a slot, or click it to add it to the next free slot. Remove a mode to free a slot.
2. Drag modes on the dial to reorder them, or select one and use the arrow keys.
3. Hold the save button to apply your dial. **Revert** discards unsaved changes.

Presets fill the dial in one click and appear only when all their modes are available. The
**Factory** preset also returns every mode to Auto. Hold the save button to apply both resets. A
personal Factory reset clears only your personal dial and pins, so you follow your workspace's
settings if it has any, or Amp's defaults otherwise.

When you start a new thread, the mode picker in the app and <kbd>Ctrl+S</kbd> in the CLI turn
through your saved modes.

## Use Modes That Are Not on Your Dial

The dial has at most four slots, but you can start a thread in any mode you have access to. Keep
the standard `low`, `medium`, `high`, and `ultra` on the dial and pick everything else from the
full list when you need it.

In the web app, open the mode picker when you create a thread. The **Amp Modes** tab shows your
dial. The **Raw Models** tab shows every other mode, e.g., a plugin mode you installed or a mode
that runs one specific model as its main agent. A single-model mode runs that model for its main
agent and its Task and Read Thread subagents. Typing in the picker searches all modes at once, so
you can type a mode's name without switching tabs.

<div class="docs-media-stage">
  <img class="docs-transparent-media" width="1712" style="aspect-ratio: 1712/1478" src="https://static.ampcode.com/docs/the-dial-raw-models.png" alt="The mode picker in the web app with the Raw Models tab selected, listing modes that are not on the dial" />
</div>

In the CLI, press <kbd>Ctrl+S</kbd> to open the dial, then press <kbd>Tab</kbd> to switch to a
list of every mode. Your dial modes come first and the rest follow. Use <kbd>↑</kbd> and
<kbd>↓</kbd> to choose one, and press <kbd>Tab</kbd> again to return to the dial.

<img width="726" style="aspect-ratio: 1452/466" src="https://static.ampcode.com/docs/the-dial-cli-mode-list.png?v=3" alt="The mode list in the CLI showing the dial modes first, followed by plugin modes that are not on the dial" />

## Plugin Modes on the Dial

Use a plugin mode for work you repeat, e.g., a security review with your team's checks. The agent
has its own instructions and tools, so you do not need to repeat those instructions each time you
select it.

Ask Amp to create a personal plugin agent, or follow
[Define a Custom Agent Mode](/docs/customize/plugins#define-a-custom-agent-mode). A plugin agent can
extend `low`, `medium`, `high`, or `ultra` and add instructions to that mode's prompt. It inherits
the mode's tools and, unless you specify another model, its model and effort.

Keep the plugin in your [personal plugins](/docs/customize/plugins#personal-workspace-plugins) to use it
across projects, or have a workspace admin publish it as a workspace plugin. The mode is then
available in the mode picker right away. Add it to your dial from the Build Dial catalog only if
you want it in one of the four slots. Plugin models are defined by the agent, while billing follows
your provider connections just as it does for builtin modes.

### Example Dials

- Keep `medium` and `high` for coding, and add your reviewer mode for checking changes.
- Keep `medium` for coding, and add your security agent for reviewing sensitive changes.

These are examples of agents you can create, not builtin presets.

If a mode on your dial disappears, e.g., because the plugin is uninstalled or the mode is renamed,
the dial skips it. If fewer than two modes remain available, Amp shows the standard dial until you
fix the selection.

## Share Your Dial

**Copy link** copies a URL containing your selected modes and their order. Opening it loads an
unsaved draft in Build Dial and drops modes the recipient cannot access. The recipient must save
the draft to use it.

The link does not install plugins or copy model tuning. Share the plugin separately if the
recipient does not already have it.

## Personal and Workspace Dials

Workspace admins can configure both tabs under **Workspace Settings → Dial**. A personal dial
overrides the workspace lineup. Personal model and effort pins override workspace pins for the
same setting, so you can choose your own model for one mode while following the workspace's
models for the others.

Without a personal pin, a role follows the workspace's pin if there is one, or Amp's automatic
choices otherwise. The model list shows **Workspace** when it inherits a workspace model.

Read [The Dial](/news/the-dial) and [A Dial for You](/news/a-dial-for-you) for the original
announcements.
See [Customize Your Dial](/news/build-your-own-dial) for the customization announcement.
