Model guide
The master model catalog — context windows, list prices per million tokens, release timing, and which model to use for which role in the pipeline.
This is the master list. Every model Stella seeds into its catalog, with the numbers you need to make a decision — context window, list price, and what the model is actually good at. The pricing figures come from Stella's seed catalog; prices are list $/Mtok (input / output / cached-input). The Released and Best for columns are editorial — context these docs add, not fields the catalog stores or syncs. Verify with your provider before budgeting — prices and lineups drift.
The seed below is only the offline floor. stella models refresh syncs the live
master list — every valid provider/model slug and its current pricing, from the
public models.dev catalog (no API key) — into a local model-card
database, and stella models list browses it. See
the live model catalog below.
The catalog
| Model | Provider | Context | In $/Mtok | Out $/Mtok | Cached-in $/Mtok | Released | Best for |
|---|---|---|---|---|---|---|---|
claude-fable-5 | anthropic | 200k | 3.00 | 15.00 | 0.30 | 2026 | The strongest coding/agentic model in the catalog — first of the Claude 5 family. Best-in-class worker for hard multi-file changes; superb judge. |
gpt-5.5 | openai | 400k | 1.25 | 10.00 | 0.125 | late 2025 | Top-tier reasoning with a 400k window at a mid price. Excellent cross-family judge over a Claude or GLM worker; strong worker. |
gemini-3-pro | gemini (also vertex) | 1M | 1.25 | 10.00 | 0.31 | Q4 2025 | The 1M-token window: whole-repo comprehension, long-log analysis. Solid worker, good judge. |
grok-4 | xai | 256k | 3.00 | 15.00 | 0.75 | Q3 2025 | Strong reasoning; a distinct model family, useful as an alternate judge. |
deepseek-chat | deepseek | 128k | 0.27 | 1.10 | 0.07 | Q4 2024 (V3 line, revised through 2025) | The price/performance outlier. Ideal triage model; a very capable budget worker. |
glm-5.2 | zai | 200k | 0.60 | 2.20 | 0.11 | 2026 | Excellent coding at a fraction of flagship price — Stella's default worker tier. The coding-plan endpoint makes it a subscription workhorse. |
us.anthropic.claude-sonnet-4-5-20250929-v1:0 | bedrock | 200k | 3.00 | 15.00 | 0.30 | Sep 2025 | Claude under AWS governance — for orgs that must keep inference inside their cloud account. |
openrouter/auto | openrouter | 128k | gateway-priced | gateway-priced | — | rolling | OpenRouter's meta-router; and any vendor/model slug on the gateway routes verbatim (one key, every vendor). |
Which model for which role
Stella's pipeline runs three distinct roles, and they want different things from a model:
- Worker — writes the code. It wants the strongest coding model you can afford; this is where quality is bought. Worker tokens dominate a run, but most of them are cached-input tokens (see below), so the effective price gap between tiers is smaller than the list price suggests.
- Judge — verifies the work at high effort. It wants a different family than the worker: cross-family judging resists same-model bias, where a model forgives the mistakes it would itself have made. A Claude worker with a GPT judge (or vice versa) catches more than either family judging itself.
- Triage — classifies the task. It emits one token under a 10-second ceiling, so it wants the cheapest fast model you have a key for. Paying flagship prices here buys nothing.
Three named lineups, ready to copy:
| Lineup | Worker | Judge | Triage |
|---|---|---|---|
| Max quality | claude-fable-5 | gpt-5.5 | deepseek-chat |
| Balanced | glm-5.2 | claude-fable-5 or gpt-5.5 | deepseek-chat |
| Dirt cheap | deepseek-chat | glm-5.2 | deepseek-chat |
Each links to a worked settings.json profile in Examples; wire any of
them up per agent with
agent_engine_config.
The live model catalog (stella models refresh)
The seed table above can't keep up with weekly model launches — and it used to mean an invalid slug was only caught for seeded providers (OpenRouter and custom gateways accepted anything and failed later, mid-run, on the wire). The live catalog fixes both:
stella models refresh # sync the master list (models.dev, no API key)
stella models list --provider anthropic # browse valid slugs + live pricing- Master list, locally. One public, unauthenticated document covering every provider
Stella can select (plus ~160 more) lands in a user-tier SQLite catalog
(
catalog.db, next tousage.db): model cards keyed per API provider, and model card versions holding each pricing configuration. A refresh appends a new version only when pricing actually changed — the version history is real change history, and the latest version is the pricing that displays everywhere (cost metering,stella models list, the deck's model picker). - Incremental. The HTTP
ETagis persisted and replayed; an unchanged list is one conditional request, zero writes. After your first explicit refresh, Stella re-syncs a stale list (>24h) automatically at startup — never before your first refresh (the no-phone-home rule), andSTELLA_CATALOG_AUTO_REFRESH=0turns the re-sync off. - Strict slug validation, everywhere. Once a provider's master-list rows are synced,
an invalid
--modelslug is a hard, immediate, named error with did-you-mean suggestions — before any wire call, for every provider including OpenRouter and settings.json-defined gateways. The seed always passes, and a custom endpoint the master list doesn't know stays endpoint-authoritative, exactly as before. - Exact telemetry. A model_aliases table joins every string form a model travels
under — bare slug,
provider/slug, date-stamped snapshots, region-prefixed Bedrock profiles, and any id a provider echoes on the wire (learned automatically from telemetry) — to(api provider, model provider, model version, model card), so per-model cost analytics never split one model across its spellings.
Prompt caching changes the math
The cached-input column is what most worker input actually costs mid-run. Stella keeps the prompt prefix byte-stable on purpose — the context engine appends rather than rewrites — so after the first turn, the bulk of every request is a cache hit billed at the cached-input rate: a 10x–20x discount depending on provider. This is why real per-run cost lands far below naive input-tokens-times-list-price math, and why a model's cached-input price matters more than its headline input price for long agentic runs.
stella models lists the full catalog with live key status per provider. And the
Observatory's models view shows your observed $/resolved task per model —
measured on your repo, your tasks, your prompts — which is the ultimate arbiter of what
a model is worth. See The Observatory dashboard.
API Providers
Every provider Stella speaks to — the full matrix, the auto-detection order, and the credential chain. Bring your own key; Stella talks each provider's native dialect.
Anthropic
Claude over the native Anthropic Messages API — extended thinking mapped from Stella's effort tiers, first-class prompt caching, and claude-fable-5 as the default model.