Field Notes · October 2026

Use the cheapest model that can do the job

Not every task needs the biggest model. Here is the routing rule I use to send work to a free local model, Sonnet or Opus, with a monthly cap on anything billed.

The problem: everything went to the biggest model

When I started with Claude Code, every task went to the top model. Reading a long file, writing boilerplate, renaming things across a folder. It all worked, and it all burned through my usage limit.

Most of that work did not need the best model. It needed a model that could follow clear steps. I wanted a simple rule for who gets what.

The ladder

I sort every task from the cheapest option up, and I only pay for a bigger model when the job needs it.

Five tiers, cheapest first. Most work stops at the first three.
  • Local model. It runs on my own graphics card, so it is free. I use it for reading big files and for boilerplate. In my notes, a local summary of a file costs roughly 84% fewer tokens than reading the file myself.
  • Haiku. Mechanical sweeps, like finding every place a name is used.
  • Sonnet. The workhorse. Clear steps, writing, docs.
  • Opus. Hard debugging, design, security and the final review.
  • Gemini. Web research, long documents and images. It is billed, so it always asks first.

Lead and workers

The top model does not do everything. It plans, splits the job into pieces, and hands them out. Then it checks what comes back.

A lead model splits a task between two Sonnet agents and a local model, then reviews the results
The lead keeps the hard parts and reviews every result.

A few rules keep this from getting messy:

  • Own branch. A worker that changes code gets its own copy of the repo, so parallel work never collides.
  • Three at a time. More than that and I can no longer follow what is happening.
  • Set the model every time. If an agent starts without a model, it quietly inherits the most expensive one.
  • Review before merge. The lead reads every diff. A worker is fast, not trusted.

The one tier that costs real money

The Claude tiers run on my plan, which has a usage limit. Gemini is different. Each call is billed, so I set a $10 monthly cap and made a rule: say what the call is for and what it should cost, then wait for a yes.

Every paid call gets one line in a ledger file.

2026-10-13 · lone-herd · image 2K x1
  est ~$0.13 · approved
2026-10-16 · hippo-heist · image 1K x4
  est ~$0.52 · approved
2026-10-28 · setup · text call x1
  est < $0.001 · approved
About $1.09 of a $10 monthly cap used in October, with a breakdown by project
October so far: about $1.09 of the $10 cap. Estimates from list prices.

Enforce it, do not just say it

A rule in a prompt can be forgotten. So the ask rule lives in the settings file, where the harness checks it before the paid tool runs.

{
  "permissions": {
    "ask": ["mcp__gemini"]
  }
}

It is the same idea as the hooks post: put the rule that must never break into code.

Honest limits

  • The cap only covers Gemini. Claude usage is a plan limit, not a per call bill, so I cannot show a dollar chart for it.
  • The ledger numbers are estimates from list prices. The real bill is on the billing page.
  • A local model is weaker. Its output needs a check, and it is wrong more often on anything that needs judgment.
  • Routing costs a little thinking up front. For a five minute task, just do it.

How to implement

  1. Write your ladder in your rules file: which jobs go to which model, cheapest first.
  2. Add one line to the rules: set the model on every agent you start, and never use the top tier for a worker without asking.
  3. Put a permission rule in front of any paid tool, so it asks before every call.
  4. Keep a ledger file. One line per paid call, with a running total.
  5. Review the diff from every worker before you merge it.

Start with the ladder and the review rule. Those two alone cut most of the waste.

Lone Herd badge: a longhorn steer head in a ring
Lone Herd

Gather it. Connect it. Move it.