OpenAI told Cursor on Friday that it's terminating the agreement putting GPT models inside the editor. Access ends 12 November. The reason isn't capacity, isn't pricing, isn't a safety review — it's that Cursor's parent company changed owners.

Two weeks earlier, SpaceX closed a $60 billion all-stock purchase of Anysphere, Cursor's parent, and folded it into a division called SpaceXAI. Merger effective 14 August. OpenAI's contract had a change-of-control clause with a limited window to walk, and OpenAI walked with about two weeks to spare.

The statement is worth reading as written: they cannot be confident SpaceX will use the technology within OpenAI's terms of service, "based on our experience with Elon Musk's companies violating contracts." They pointed at the Twitter acquisition and at sworn testimony that xAI distilled OpenAI models. Musk's reply was "I couldn't care less," which is the sort of thing people say when they care.

Fine. That's the soap opera, and the soap opera isn't the story. The story is what this exposes about the thing you have open in the other window.

About that 5%

Cursor's CEO went straight for the deflation: OpenAI models are roughly 5% of Cursor traffic. Composer 2.5 has been the default first-party model since May, Claude eats most of what's left, and Anthropic — with a speed that would be unseemly if it weren't so predictable — announced extra compute for Cursor within about a day.

On the aggregate numbers he's right, and it is close to a rounding error.

But 5% of traffic is not 5% of users, and traffic share is a terrible instrument for working out who actually gets hurt. Tab completion fires hundreds of times an hour and generates a mountain of requests. Someone who opens agent mode four times a day and deliberately picks a GPT model because it's the one that doesn't mangle their Terraform generates almost none. Both of those people land in the same denominator. Only one of them is having a bad November.

The bit that isn't in any headline

The reflex response — I had it too — is "so bring your own key." Cursor supports custom API keys, you have an OpenAI account, sorted, next.

Except BYOK in Cursor doesn't apply to Tab, to Auto, to Cloud or Background Agents, to Automations, to the CLI, or to the API and SDK. Those run on models Cursor supplies or routes itself, and they will not touch your credentials. There is also a healthy pile of forum threads where merely enabling a BYOK key breaks explicitly selected Composer models.

So bring-your-own-key buys you chat. It does not buy you the product.

And that isn't really a bug — well, the Composer thing is a bug, but the shape of it isn't. Everything interesting in a modern coding tool is server-orchestrated: the harness fans out tool calls, retries, holds context, keeps working while your laptop is shut. You're not buying model access, you're buying the harness. The harness has its own billing relationship, and it isn't with you.

Nothing technical happened

Here's the part I keep turning over.

No model got worse. Nobody ran out of GPUs. No benchmark moved. The weights on 12 November will be bit-identical to the weights on the 11th. What changed is that two legal entities updated their relationship, and a dropdown in a text editor lost some entries.

That's the entire causal chain. model: gpt-… sat in a settings file next to tab width and font size, rendering exactly like a preference, and it was never a preference. It was the visible tip of a supply agreement between two companies, neither of which you have a contract with, containing a termination clause you have never read and could not have read.

Cursor didn't get a vote either, incidentally. Cursor got a notice.

Counterparty risk, but for your editor

We already have a name for this. Finance people have stared at counterparty risk for a century: it doesn't matter how good the asset is if the entity on the other side of the trade stops showing up. We just never pointed it at the IDE, because for thirty years the IDE was a program on your disk and the worst thing that could happen to it was a bad release.

Now every AI-augmented dev tool sits downstream of somebody's legal department, and the failure mode that matters isn't "the model is bad," it's "the model is fine and you can't have it."

The uncomfortable follow-up is that this cuts in every direction. Anthropic is delighted with Cursor this week; enthusiasm is not a contract term. Google, Anthropic, OpenAI and Cursor itself all ship both a model and a competing coding product, which means every supply relationship in this corner of the industry is simultaneously a competitive one. OpenAI has just demonstrated that you can use the supply half to hit the competitive half. That demonstration doesn't un-happen.

What I'd actually do about it

Not much, honestly, and not this week. The 12th is ten weeks out and everyone involved has an incentive to make the transition boring.

Two things are worth an afternoon, though.

Grep your automation for hardcoded model IDs. Not the editor — the editor will show you a friendly migration banner with a button on it. The thing that bites is the CI step, the pre-commit hook, the little script somebody wrote in March with "model": "gpt-…" buried in a JSON blob, which fails at 3am on a Thursday with an error nobody recognises.

And if a GPT model is genuinely in your daily loop, spend one session on the alternative now, while it's a curiosity rather than an outage. Not migrating — just finding out whether your prompts survive the swap. Prompts are far more model-specific than any of us likes to admit, and you'd rather learn that in September.

What I would not do is switch editors over this. Ten weeks of runway and a 5% traffic share is not an emergency, and "my tool vendor fell out with a supplier" describes essentially every tool you own. The others just don't do it in public with a Musk quote attached.

So

The thing that sticks isn't the feud. Feuds are cheap, and this one has been running for years.

It's that a lot of us quietly built our working day on top of a menu we assumed was a technical artefact, and it turns out to be a contract with a change-of-control clause in it. That was always true. It just wasn't legible until somebody pulled the lever in public.

Anyway. Go and see what your CI is actually calling.