OpenRouter and
multi-model
Last chapter ended with a promise: a real council needs genuinely different models, from different labs, arguing over the same question. This chapter is how you get them. The short version is that you do not sign up for five separate services and juggle five bills. You get one key that reaches almost all of them.
That key is OpenRouter. It is a single account with a single API that routes your request to whichever model you name, from most of the major labs, through one consistent interface. You put a little credit on it, you get a key, and from then on asking a model from one lab or a model from another is a one-word change. That is the whole unlock, and it is what makes the multi-model council from the last chapter something you can actually run instead of just admire.
But the key is the easy part. The real skill in this chapter is not wiring. It is judgment: knowing which model to reach for, and resisting the pull to always grab the biggest one.
That line is worth sitting with, because it is the opposite of how most people choose. The instinct is to always use the most capable model, on the theory that more is safer. But most of what you send a model is not hard. It is classifying, extracting, tidying, drafting a first pass. Handing all of that to the biggest, slowest, priciest model is like couriering every letter by taxi. It works, and it quietly costs you a fortune while being slower than it needed to be.
Every lab sells roughly the same three rungs, under different names: a small fast one, a balanced middle one, and a big deep one. The names change constantly and they are not worth memorising. What matters is the shape and how you climb it.
You climb the ladder from the bottom, not the top. Start with the cheapest model that could plausibly do the job. If its output is something you would actually put your name on, stop. You are finished, and you spent almost nothing. Only when the cheap answer genuinely is not good enough do you step up a rung. Most people do this backwards: they start at the top out of anxiety and never come down, because they never checked whether they needed to be up there.
Here is the move that turns that discipline from a vibe into something real. Before you commit to a model for a recurring job, you build a tiny test. Not a benchmark, nothing formal. You take twenty or thirty real examples of the actual task, run the same task through two or three models, and lay the answers side by side. Now the choice is not a guess. You can see which model is good enough and pocket the difference in cost.
You do not need to write code to think this through. Here is a prompt that helps you design the eval for one of your real recurring tasks. The runnable version, the one that actually calls several models through your OpenRouter key and scores them, lives in the companion repo under council/. You clone that repo in the terminal chapter later; for now, this is how you decide what to even test.
What you get back is a scoring sheet you can actually apply. Run it once and you have a real answer for now: this job is fine on the cheap model, that one really does need the top tier. It is a snapshot, not a permanent verdict, so for anything where a single miss is costly, spot-check a sample now and then and re-run the test when your inputs or the models change. Multiply that across the ten tasks you do most, and you have a routing map, cheap models doing the bulk, the expensive brain saved for the few things that earn it.
Two things the excited version of this chapter would skip, so here they are plainly.
The privacy one deserves a beat, because it is easy to get burned. On a paid Claude plan your prompts sit under one company's terms you already accepted. Route through OpenRouter and the same prompt can pass through several labs, each with its own terms. In practice you will send your real work through these tools, everyone does, and pretending otherwise would be dishonest. The move is not to hold back, it is to know it is happening and use the one control that matters: the setting that limits which providers your prompt can reach. Ask Claude where it lives on today's version, point it at providers you are willing to trust, and get on with the work.
Take one task you already hand to AI regularly, the kind you do most weeks. Use the eval-design prompt above. Be honest about what 'good enough to ship' means for that specific task, in checkable terms. Then decide, on the evidence you would gather, which rung of the ladder it actually needs. The win is catching one task you have been overpaying for, or one you have been under-serving.
Show the worked solution
- OpenRouter is one account and one key that reaches most major models from most labs, which is what makes a real multi-model council practical.
- The core discipline: the right model is the cheapest one whose output you would actually ship, not the biggest one you can reach.
- Climb the ladder from the bottom. Start on the cheap fast model, judge the real output, and step up only when it genuinely falls short.
- A tiny eval, twenty or thirty of your own real examples run across a few models, turns model choice from a guess into evidence you can point at.
- The honest costs: bigger is slower, you pay per use so loops can burn money, and your data now crosses into third parties, so use the provider controls.
Take the one recurring task you run most, and design its eval with the prompt above. You do not have to run it for real yet, that waits for the terminal chapter and the companion repo. But decide now which rung it should sit on, and start the routing map for your real work. Next chapter turns the review habit into a discipline: two loops of review, and why the second reviewer catches what the first one could not.
Reaching for the biggest model every time feels responsible and is usually just expensive. The operator move is quieter: find the cheapest model that clears your bar, prove it on your own examples, and spend the difference on the decisions that actually deserve the best.