AI APIs are rented land
GitHub announced this week that GitHub Models will shut down on 30 July. Not deprecated eventually. Not folded into a new SKU with twelve months of migration runway. The playground, catalog, inference API, and bring-your-own-key endpoints all disappear at the end of the month.
The suggested destinations are Microsoft Foundry for model access and Copilot for AI workflows inside GitHub. Both are reasonable products. That is also exactly the point: the abstraction layer was convenient while it supported the strategy above it, and disposable when it no longer did.
AI infrastructure is rented land all the way down.
Convenience is not a contract
Every AI platform wants to be the place where you compare models, manage keys, evaluate prompts, and eventually run the whole application. The pitch is portability. The business model is gravity.
There is nothing sinister about that. Good platforms remove real work. But teams keep confusing a uniform API with independence. If your prompts, traces, eval datasets, and production routing rules all live inside one vendor's UI, switching the model endpoint is the easy part. Reconstructing the operating knowledge around it is the migration.
GitHub Models was a relatively thin layer, which makes this shutdown manageable. The lesson scales to thicker ones.
What I want to own
I don't think every team needs a grand multi-provider architecture. Most of those become an elegant wrapper around the one provider that actually works. I do want four assets to remain boring files in my own system:
The capability contract. My application asks for structured output, tool use, image understanding, or long context. It should not ask for a marketing name. Provider-specific options belong behind one small adapter.
The eval set. Inputs, expected outcomes, and scoring code live with the application. A vendor dashboard can visualize the results, but it should not be the only place the test cases exist.
The traces. Tool calls, latency, token use, errors, and final outcomes go to storage I control. When a service disappears, the history of why we chose it should not disappear too.
The exit test. Once a quarter, run a small slice of production evals against a second provider. Not because a migration is imminent, but because an untested escape route is architectural fan fiction.
Portability has a price
The wrong response is to sand every model down to the lowest common denominator. Models have different tool semantics, reasoning controls, cache behavior, and failure modes. Pretending otherwise gives you portability by throwing away the features worth switching for.
The useful compromise is a thin waist: keep business intent and evaluation portable, allow the provider adapter to be opinionated, and accept that prompts need tuning when models change. Portability is not "swap one string and everything behaves identically." It is "we can measure the migration, bound the work, and make the decision without panic."
GitHub gave users a month. That is short, but a well-factored AI application should survive it. If yours cannot, the problem is bigger than this shutdown.