§1The angle: the model is the commodity now
Moonshot's Kimi K3 landed this month at roughly a third of frontier prices, with open weights and near-frontier scores. In the same fortnight Microsoft, alongside more than two hundred other companies including the labs that sell you closed models, asked Washington not to restrict open-weight models, on the argument that customers must not become locked into a single provider. Read those two together and the direction is plain. The frontier model is turning into a commodity input, and it turns over every few weeks.
If your stack is welded to one lab, that is a problem wearing a party hat. Every price cut you cannot take, every new state-of-the-art release you cannot adopt, is a migration you are not equipped to perform. The moat was never the model. It is how fast, and how safely, you can swap it. Call it building the second door before you need it.
§2The tool class: one endpoint in front of every lab
There is now a whole category of tooling whose only job is to make the model a swappable component: an OpenAI-compatible gateway that sits in front of every provider, so changing model means changing a string, not rewriting your integration. The clearest current example is OmniRoute, MIT-licensed and self-hostable. One local endpoint, with a claimed 290-plus providers and 500-plus models behind it. It drops into Claude Code, Codex, Cursor and the rest by pointing their base URL at localhost, and does quota-aware fallback down a tier cascade, subscription, then API key, then cheap, then free, with circuit breakers when a provider stalls. It also ships prompt and tool-output compression it claims saves on the order of 15 to 95 per cent of tokens.
We verified the repository is real and active: MIT licence, tens of thousands of stars, shipping under live version tags. We have not benchmarked those compression numbers ourselves, so read them as the project's claims until you have. The point is not this one tool, which will be joined or replaced by three others by autumn. The point is that the swap layer is now off-the-shelf, and free, which quietly removes the last good excuse for hard-wiring one vendor.
§3The gateway is necessary, not sufficient
Here is the part most write-ups skip. A gateway makes the call portable. It does not make your system portable. The real lock-in was never the API shape, which was always a thin adapter anyone could swap in an afternoon. It is everywhere your prompts, your tool schemas, your few-shot examples and your evals have quietly overfit to one model's quirks. Change the model underneath and the endpoint keeps answering while the behaviour drifts, sometimes better, often subtly worse, and you will not notice until something downstream cracks.
Two things travel with the model and have to be made portable in their own right. Your context: keep what the system knows in plain files you own, not buried in one vendor's chat history, so any model can read the same folder tomorrow. Your evals: keep a model-agnostic test set you can run against a candidate before you trust it, so a swap is a decision you can verify rather than a leap of faith. The gateway is the plumbing. The portable context and the portable eval are what actually let you pull the lever without holding your breath.
§4The costs a swap layer adds, named plainly
No free lunch, and the honesty is the point. A gateway is another hop on your hottest path, which means added latency and a fresh single point of failure sitting on all your model traffic: if it goes down, everything does. It is third-party code with a full view of your prompts and completions, a supply-chain and data-exposure surface you did not have before. Self-hosting the open build helps here; a hosted router you do not control would not.
Auto-fallback is double-edged. Routing to the next available provider when your first choice is rate-limited keeps you running, but it also silently changes the model doing the work, so a fallback can mask a real quality regression as a blip. And "works with 290 providers" is breadth, not depth: the long tail of free endpoints varies wildly in reliability and rate limits. Use the layer, but treat its defaults as suggestions. Pin the models that matter, and log which provider actually served each request, so you can tell a routing decision from a regression.
§5What we do, and what to take from it
At Workloft the rule is boring and it holds: the model is a component, never a foundation. Context lives in plain files we own. Evals run against any model, not one. So switching lab is a config change we can verify in an afternoon, not a rebuild we dread. That is the whole reason this class of tooling matters, and why the open-weight fight in Washington is worth watching even if you never touch policy. The cheaper and more interchangeable models get, the more the advantage flows to whoever can move between them fastest.
You do not have to adopt OmniRoute, or any specific gateway. You do have to assume the best model for your job will change again within the quarter, and build so that when it does, you walk through the second door instead of rebuilding the house.
