Amp Retires the Dial: A Model Selector Puts Models, Effort and Billing Back in Your Hands
Amp replaced its low/medium/high/ultra Dial with a model selector: per-thread model and effort picks, mid-thread switching, and visible billing lanes.
Amp — the coding agent that spun out of Sourcegraph and now runs as Amp Frontier Corporation — has retired the Dial, its abstract four-mode control (low, medium, high, ultra), and replaced it with a direct model selector. Announced Nov. 12, the change lets you pick the exact model and its reasoning effort for each thread, switch both mid-thread, and see which subscription or API key pays before you send the prompt.

Why Amp reversed itself
In January, Amp argued publicly against a model selector. In July it shipped the Dial so users would “focus on how hard a task is instead of thinking about model names and version numbers” — and it worked. When Amp swapped the default model behind the Dial overnight in July, nobody complained.
What broke the abstraction was billing, not model quality. Amp then added bring-your-own subscriptions and keys, and became free when you bring your own compute (September’s “Free Agent” change, with “Use Your Claude Plan in Amp” following in October). Suddenly “medium” might draw tokens from your Claude plan, your ChatGPT plan, or Amp credits — and the Dial gave you no way to tell who was paying for which model when.
What you get now
- Per-thread model and effort. Each thread pins an explicit model plus an effort level, replacing the opaque mode.
- Mid-thread switching. Change the model mid-conversation; after your next message the new model runs and the transcript records the switch (for example, “Switched to GPT-6.1 Sol · High”). Amp previously locked the model per thread because earlier models got confused continuing another model’s conversation — it now considers models good enough to recover.
- Billing visibility. The selector shows which subscription or API key each model bills, or whether it uses Amp credits. The homepage confirms the ChatGPT lane: link a subscription and the OpenAI models in the selector run on it.
- Staff Pick default. New threads start on Staff Pick — “the model we would choose,” currently Claude Opus 5.5 — unless you pinned something. Settings also let you start new threads on your last-picked model or one fixed model.
The migration table that matters
Dial settings do not carry over. If you tuned modes in Tune Modes or put custom agents on the Dial in Build Dial, re-pin them in Settings → Model Selector (custom agents now appear under Other Models). For everyone else, the defaults were:
| Old Dial mode | Model that actually ran |
|---|---|
| low | GLM-5.3-Flash |
| medium | Claude Opus 5.5 |
| high | GPT-6 Astra |
| ultra | Claude Fable 5.2 (under Other Models) |
That table is the quiet story here: one “mode” already hid models from four different vendors. A fleet that standardized on “medium” was Opus 5.5 whether it meant to be or not. If you run several harnesses, keep a mode-to-model assignment table so a silent default change on any vendor cannot drift past you.
Two operator cautions
Switching has a cache price. Prompt caches belong to one model, so after a switch the new model reads the whole thread uncached and the first message costs more. If you run long threads, plan switches at natural checkpoints rather than mid-task — the same prefix-stability logic behind Claude Code prompt caching.
A default is a vendor decision. Staff Pick is benchmark-driven and will change when another model does better. Fine for individuals; for fleets, pin exact models per lane instead of inheriting Amp’s pick, and record the choice so the next silent default change can’t drift past you.
An agent is still more than a model, as Amp notes: each model in the selector gets a system prompt and tools optimized for it, and both switch when you switch models mid-thread. Threads running a plugin’s agent keep that agent regardless of selector changes.
The trend worth watching
Amp was the most opinionated holdout on model abstraction. Its reversal — driven by billing complexity, not user demand — is a signal for the whole market: when agents can draw from multiple subscriptions, API keys and credit pools, hiding the model behind a mode hides the invoice. Expect other harnesses that offer bring-your-own-model to face the same pressure toward explicit, per-lane model selection. It is also a reminder of the portability rule in owning the loop while renting the model: abstraction belongs in your routing policy, not in the vendor’s UI.