Examples & recipes
Ready-to-paste configuration files organized by use case — cost-tier pipeline profiles, provider setups from coding-plan subscriptions to air-gapped local servers, and team-shared config.
Every page in this section is built around a complete, copy-pasteable configuration file — pick the page that matches your situation, paste, verify, adjust.
Setups by use case
| Your situation | Recipe |
|---|---|
| One API key, want the best default setup | Single provider, single key |
| Z.ai GLM coding-plan subscriber | Z.ai coding plan |
| One OpenRouter key for every model family | One gateway key |
| Ollama / vLLM / LM Studio, or no network at all | Local & air-gapped |
| Models must flow through GCP / AWS | Enterprise cloud |
Sharing .stella/ config across a team | Team-shared settings |
Cost-tier profiles
The inference pipeline makes several model calls per run, and each one is independently configurable. Three ready-to-paste tiers — and below, the cost model to reason about your own:
| Profile | Worker | Judge | Triage | Typical run* |
|---|---|---|---|---|
| Maximum quality | claude-fable-5 | gpt-5.5 | deepseek-chat | ~$0.40 – $2.50 |
| Balanced | glm-5.2 | claude-fable-5 | deepseek-chat | ~$0.05 – $0.50 |
| Dirt cheap | deepseek-chat | glm-5.2 | deepseek-chat | ~$0.01 – $0.10 |
*Estimates for a medium task (a focused multi-file change, one revision) at
the catalog's list prices, with prompt caching working normally. A lookup
costs far less; a long refactor costs more. Your actual numbers live in
stella stats and the Observatory. The three
profiles assume keys for two or three providers — with one key, start from
single-key instead.
What a pipeline run is made of
Cost intuition starts with knowing who calls the model, and how much:
| Stage | Calls | Typical size | Cost driver |
|---|---|---|---|
| Triage | 1 | ~1–2k in, ~1 token out | Negligible on any model — but why pay flagship rates for one token? Route it to the cheapest model you have. |
| Plan | 1 (+1 repair, rarely) | ~5–15k in, ~1k out | Small. Rides the worker's settings. |
| Witness | ~1 engine turn | ~10–30k in, ~1–2k out | Only when no --test-command was given. Test runs themselves are local and free. |
| Execute | 5–40+ steps | ~100–500k in (mostly cached), ~5–30k out | The dominant cost. The worker model's price — especially its output price — is most of your bill. |
| Verify | 0 | — | The deterministic ladder (flip oracle, diff budget) is free. |
| Judge | 0–1 per verification | ~3–10k in, ~0.5–1k out | Only when deterministic evidence is inconclusive. Cents, even on a flagship. |
| Revise | 0–2 extra execute rounds | like Execute, smaller | Each revision re-runs part of the execute cost. |
Three consequences worth internalizing:
- The worker's output price dominates. Execute emits the most tokens by far. Moving the worker from $15/Mtok output to $2.20 (Fable 5 → GLM-5.2) changes your bill roughly 5–7×; moving the judge barely changes it at all.
- A flagship judge is cheap insurance. One judge call is a few thousand
input tokens and under a thousand out — around 1–2¢ on gpt-5.5, 2–3¢ on
claude-fable-5. There is almost never a good reason to skimp on the
judge; there is every reason to make it a different family than the
worker. Arm
--test-commandand many runs skip the judge entirely. - Prompt caching is doing heavy lifting. Stella keeps the system prefix
byte-stable specifically so most execute-step input bills at the
cached rate (4–10× cheaper, depending on the model). That is why real
runs cost far less than naive
input tokens × list pricemath suggests. See Context Engine.
Multipliers
- Goal mode repeats pipeline rounds until
the judge signs off — up to 8 rounds. Budget for a multiple of the
single-run estimate, and cap it:
--budget 5.00. - Fleets run one pipeline per task.
--budgetis divided across the concurrency width and enforced fleet-wide, so the cap you set is the cap you spend. - Best-of-N candidates multiply execute cost by N — strictly opt-in.
The safety net
Whatever profile you run, --budget <usd> is a hard cap enforced between
steps — a run aborts cleanly rather than overshooting:
stella --budget 2.00 run "migrate the config loader to the new schema"And everything you actually spent is queryable afterwards — per model, per
run, per resolved task — with stella stats and
stella observe. Let the observed
$/resolved number, not the sticker price, pick your lineup: see the
model guide.