On November 6, 2026, OpenRouter launched a rebuilt Auto Router and a new coding-focused sibling, Auto Code. Set the model to openrouter/auto or openrouter/auto-code and the router picks a model and reasoning effort for each request. You pay the selected model’s standard price; there is no extra routing fee.
Last updated: November 8, 2026
Table of contents
- What changed on November 6
- Which slug to use
- How routing works
- How to use Auto Code
- Allow lists, exclusions and cost tiers
- Sessions, cache and metadata
- Pricing, benchmarks and limits
- Frequently asked questions
- Sources
What changed on November 6, 2026
OpenRouter’s announcement says it rebuilt Auto Router after three years of running the original. In OpenRouter’s tests, the new generation outperformed the previous router by up to 4× depending on the benchmark, and the routing step was 3× faster at the p90 in a live test (0.65 seconds against 1.96 seconds). OpenRouter says Auto Router sees more than 2.5 trillion tokens from more than 100,000 people every month.
The launch also adds Auto Code for coding harnesses. OpenRouter reported that, across five internal benchmarks, Auto Code scored in line with Claude Opus 5.5 while costing 74% less per task. Those figures come from the launch post; OpenRouter also publishes comparisons on its model routing benchmarks page. The new routers weigh eleven factors plus live pricing, provider health, and cache status, inside the pool your guardrails, zero data retention rules, provider restrictions, allowed lists, and bring-your-own keys allow. The new default costs more per task than the previous generation’s recent low so it can pick from more models. Set cost_tier to low to stay closer to the older, cheaper mix.
Which slug to use
The model routing overview treats a router like any other model string: send the slug as model, then read the response model field. After the pick, ordinary provider routing still chooses a host from your preferences, live uptime and latency, price, and prompt-cache state.
| Router | Slug | Use it when |
|---|---|---|
| Auto Router | openrouter/auto |
Mixed traffic, apps, and general agents. |
| Auto Code | openrouter/auto-code |
Coding agents and harnesses; tuned for pass rate, speed, and cost per solved task. |
| Auto Beta | openrouter/auto-beta |
Next Auto Router changes. Use plugin id auto-beta-router for per-request settings. |
Each slug reads settings only under its own plugin id; settings sent under another id are accepted but ignored. Catalog routers such as openrouter/free and openrouter/fusion are separate products, not part of this rebuild.
How routing works
The Auto Router docs and the Auto Code docs describe the same loop:
- Narrow the model pool with your policies and allow or exclude lists.
- Rate the request with a fast decision model that scores eleven aspects in one call, including task type, difficulty, speed, and whether more thinking would help.
- Pick a model and reasoning effort from live prices, cache status, and benchmarks. Auto Code also weighs pass rate, speed, and cost per solved task, and starts in a higher coding tier.
- Send the request through ordinary provider routing for that model.
- Carry signals into the next turn, including whether the model is struggling and how much context is already cached.
The router prefers changing reasoning effort over switching models, because a switch rebuilds the prompt cache. In OpenRouter’s beta it stayed on the same model for nearly nine of every ten agent turns. OpenRouter said invalid tool calls were 4× lower than with the previous router and agentic responses were cut off half as often.
How to use Auto Code in a coding agent
Auto Code works anywhere you can send a model string, including Chat Completions and the Responses API. It can drop into tools such as Claude Code, Codex CLI, Gemini CLI, Kimi Code, or Simon Willison’s LLM CLI if the tool accepts an OpenRouter slug.
- Create an OpenRouter API key and export it as
OPENROUTER_API_KEY. - Point the client at
https://openrouter.ai/api/v1/chat/completions, or use/api/v1/responses. - Set
modeltoopenrouter/auto-codefor a coding harness, oropenrouter/autofor mixed traffic. - Send a
session_idor thex-session-idheader so every turn is one conversation. - Optional: add an
auto-routerplugin withallowed_modelsandexcluded_models. Auto Code reads those lists. SendX-OpenRouter-Metadata: enabledif you want the routing reason. - Read the response
modelfield to see which model answered.
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "openrouter/auto-code", "messages": [{"role": "user", "content": "Add a retry with backoff to fetchUser in api/users.ts"}]}'
Allow lists, exclusions and cost tiers
Use allowed_models to hard-restrict the pool, including older models the router would not otherwise consider. Use excluded_models to block slugs after that list; matching is case-sensitive. If nothing remains eligible, the request fails with HTTP 404 and names the fields to change.
| Pattern | Matches |
|---|---|
anthropic/* |
All Anthropic models |
openai/gpt-5* |
All GPT-5 variants |
openai/gpt-5.1 |
That exact slug only |
~openai/gpt-luna-latest |
Every revision of that family |
On Auto Router, cost_tier sets the routing policy, not reasoning effort: low, medium, or high. The values xhigh and max still route as high. Auto Code ignores cost_tier on the auto-router plugin and uses its own coding tier; to override that, set cost_tier on a jev-router plugin entry. You can save lists and a cost preference on your workspace Routing page; request values override them unless you turn on “prevent overrides.” Saved lists apply to Auto, Auto Beta, and Auto Code. Older cost_quality_tradeoff and pin_model settings still succeed but the current router ignores them unless it falls back to the previous generation.
Sessions, cache and metadata
The routers can pick a different model on every turn. OpenRouter recognizes the conversation from a session_id, or from a fingerprint of your messages if you omit one, and sessions also stay on the same provider. Send X-OpenRouter-Metadata: enabled to see resolved models, candidates, estimated cost, and the reason for the pick. The chatroom shows the same analysis in a routing insights panel.
Pricing, benchmarks and limits
You pay the selected model’s standard rate, with no extra routing fee, and the context length is that model’s. provider.max_price still caps cost by filtering the endpoints the router resolves. OpenRouter says no router, including this one, beats the single best frontier model at every point on the cost and quality curve. If you already know the right model, keep sending that slug.
The router needs conversational input on the Responses or Chat Completions APIs, not the legacy prompt field. It is available only in the global data region. Do not combine openrouter/auto with another router model in the same request. Streaming and tool calling work with the selected model.
Frequently asked questions
What is OpenRouter Auto Code?
Auto Code (openrouter/auto-code) is OpenRouter’s router for coding agents. It uses the same engine as Auto Router, starts in a higher coding-model tier, weighs speed more heavily, and switches faster when tests fail or the same error repeats.
What is the difference between Auto Router and Auto Code?
Both pick a model and reasoning effort per request. Auto Router (openrouter/auto) is for mixed traffic, apps, and general agents. Auto Code is tuned for coding work, pass rate, speed, and cost per solved task.
Does OpenRouter Auto Code cost extra?
No. You pay the standard price of whichever model serves the request. The response model field names that model. There is no separate routing fee.
Do I need to change anything if I already use openrouter/auto?
No. The slug is still openrouter/auto, and cost_tier, allowed_models, and excluded_models still work. Set cost_tier to low if you want cost behavior closer to the previous generation.
Do the routers respect guardrails and zero data retention?
Yes. Guardrails, zero data retention, provider restrictions, allow and exclude lists, and bring-your-own keys define the model pool. The router then picks inside that pool.
How do I see why a model was chosen?
In the OpenRouter chatroom, a routing insights panel appears beside each reply. On the API, send the X-OpenRouter-Metadata: enabled header to see candidates, estimated cost, and the reason for the pick.
Sources
- Introducing the New Auto and Auto Code Routers on OpenRouter
- OpenRouter docs: Auto Router (openrouter/auto)
- OpenRouter docs: Auto Code (openrouter/auto-code)
- OpenRouter docs: Model routing overview
- OpenRouter model routing benchmarks
Image: Official OpenRouter horizontal logo (grape colorway for light backgrounds) from the OpenRouter brand assets page, placed on a white background without recoloring the mark. OpenRouter asks that the mark not be stretched, recolored, or remixed.