OpenAI has put a date on the end of its direct deal with Cursor. In its post on the decision, OpenAI says it notified SpaceX that it intends to wind down the contract providing OpenAI models to Cursor, with a proposed shutoff date of November 12, 2026. The word proposed matters. OpenAI says it will share the official termination date as soon as both companies confirm it, and Cursor says talks are still going on.
That uncertainty is not a reason to wait. OpenAI also says Cursor may choose to end access sooner, and no future OpenAI models will be added while the contract winds down. If a GPT model is your default in Cursor today, the safe move is to treat November 12 as the deadline, finish the swap while you can still compare results side by side, and keep a tested backup path for the work that truly needs an OpenAI model.
What You’ll Build or Learn
You will end with a Cursor setup that no longer depends on OpenAI models supplied through Cursor itself. Each job you run in the editor will have a named replacement model, tested on tasks from your own code. Jobs that run away from your desk, such as Automations and Cloud Agents, will have a replacement too, because the backup paths in this tutorial cannot cover them.
You will also end with a clear record of the one gap that remains. A personal OpenAI key keeps GPT available in local Chat and Agent work, billed to your own OpenAI account. It does not restore the old arrangement, and Step 5 states its limits in full before you spend anything.
Before You Begin
Read the status of the date with care, because it shapes how you plan. OpenAI announced the decision after SpaceX acquired Cursor. Its stated reason is that it cannot be confident SpaceX will use its technology within its terms of service, based on its experience with companies run by Elon Musk. OpenAI says the custom deal it had with Cursor gave it a limited window to cancel after a change of control, and that it chose the latest date that window allows.
Cursor chief executive Michael Truell has said OpenAI models serve about 5 percent of Cursor user traffic, and that the two companies are speaking to try to resolve the issue. Treat that figure as a claim from Cursor about its whole user base. It tells you nothing about your own setup. Your audit in Step 1 is the number that counts for you.
Back up nothing yet. This tutorial changes model choices and settings, not code. Still, run the tests in Step 4 on a branch or in a copy of a small project first if your repo has no easy way to undo an agent edit. An agent working with a new model can produce a large diff, and you want that diff where you can throw it away.

Step 1: Audit Every Place an OpenAI Model Serves You
Action: open Cursor and work through four lists in order. First, the model picker in Chat and Agent: note which model you use for daily work, which model you use for hard problems, and whether Auto is your normal choice. Second, your saved habits: prompts you paste in, team guidance and project rules that name a GPT model or assume its style of answer. Third, work that runs without you: Automations and Cloud Agents, with the model each one uses. Fourth, the CLI and any script that calls Cursor from outside the editor.
Write the audit as a short table in your own notes. One row per job, with the job, the model it uses today, and where that choice lives. Mark each row local or remote. Local means the work runs in Chat or Agent on your machine. Remote means Cursor runs it for you, as it does with Cloud Agents and Automations.
Expected result: every row that names an OpenAI model is a row you must move or cover. Rows marked remote are the urgent ones, because no backup path in this tutorial covers them. If your audit has no OpenAI rows at all, you still owe Step 3 a quick check, because Auto can route work in ways that are not obvious from the picker alone.
Step 2: Pick a Replacement Model for Each Job
Action: choose a replacement for each audited job from the models Cursor still supplies. Cursor lists its own models as Grok 4.7, Grok 4.6, Grok 4.5 and Composer 2.5, covered by the weekly pool on paid plans. It also lists models from other providers on Premium and higher, billed at the API list price from prepaid credit. The table below uses the rates on the Cursor Models and Pricing page as checked on November 9, 2026. Rates are per million tokens, input price first and output price second in the note for each row.
| Job | First replacement to test | Rate note from Cursor |
|---|---|---|
| Daily agent work and edits | Composer 2.5 | $0.50 input, $2.50 output; in the weekly pool |
| Daily work where you prefer Grok | Grok 4.5 | $2 input, $6 output; in the weekly pool |
| Hard problems and careful review | Claude Sonnet 5.5 | $2 input, $10 output; billed at list price on Premium or higher |
| Large context work | Gemini 3.1 Pro | $2 input, $12 output; billed at list price on Premium or higher |
| Work you want to keep on GPT for now | GPT 5.6 Terra, while it lasts | $2 input, $12 output; leaves with the OpenAI deal |
Do not read this table as a claim that any model matches another on your code. Cursor publishes rates and context facts, not a promise of equal results on your tasks. The table is a starting point for the tests in Step 4, and the tests decide. If a replacement fails a job, try the next row for that job before you reach for the backup paths.
Expected result: each audited job has a named replacement and a named second choice. Jobs where the model choice is part of a team agreement need a team decision now, not on November 12, when the picker may change under you.
Step 3: Change the Picker and Clean Up Auto
Action: open Cursor Settings, then Models, and enable each replacement model from Step 2 so it appears in the model picker. Then open Chat and Agent and select the replacement in the picker for each kind of work. Run one small task on the new selection right away, so the selection you leave open at the end of the day is the new one and not a GPT model you forgot to change.
Next, deal with Auto. Auto is a routing choice, not a model, and OpenAI notes that your own key does not apply to Auto model selection and routing. If Auto has been serving you OpenAI models, its results can change when those models leave, with no change in the label you see. While you test, pick named models instead of Auto, so each result in Step 4 belongs to a model you can name.
Finally, search your project rules and team guidance for model names. Where a rule names a GPT model, replace the name with the job it describes, such as the model for careful review, or with the replacement you chose. Rules outlive pickers, and a rule that names a model that no longer exists helps no agent.
Expected result: the picker shows your replacements enabled, your normal work runs on a named replacement, and no rule or prompt in your project names an OpenAI model as if it will always be there.
Step 4: Test Each Replacement on Real Tasks From Your Repo
Action: build a small test set from work you have already done well. Four tasks cover most of what an agent does. Task one: explain a file or a function and name where a named behaviour lives. Task two: make a small edit with a clear test, such as a fix you already know the shape of. Task three: make an edit across several files, such as a rename with all call sites updated. Task four: read a failing test output and propose a fix, then apply it on your scratch branch.
Run each task once on the OpenAI model while you still can, and save the result you accept as the reference. Then run the same task on the replacement, in a fresh chat, on the same branch point. Judge on facts you can check: did the tests pass, is the diff the size you expected, did the agent invent a file, a flag or a function that does not exist.
Expected result: for each job, you have a replacement that passes your own test set, or a written note that it does not and the second choice is now first. If a job fails on every replacement, mark it for the backup paths in Steps 5 and 6, and note that those paths cover local work only. A job that runs as an Automation or a Cloud Agent cannot be saved that way, and needs a replacement that passes, even if the result is a little worse than the GPT result.
Running more than one agent tool on the same repo is a related skill. Our guide to running Claude Code, Codex and OpenCode with Corgi covers the workspace side of keeping those tools apart while they share one codebase.
Step 5: Set Up Your Own OpenAI Key for Local Work Only
Action: take this step only if a job from Step 4 truly needs an OpenAI model and that job runs in local Chat or Agent. OpenAI lists this as the first of its three routes for keeping its models inside the Cursor app. Follow its order exactly.
First, create an OpenAI API key in an OpenAI API account with billing configured. A ChatGPT subscription does not include API usage, and requests on the key are billed through the API account at API prices, apart from any Cursor or ChatGPT bill. Second, open Cursor Settings, then select Models. Third, find the OpenAI API key setting, paste your key, and save or verify it. Fourth, enable the OpenAI model you want to use. Fifth, select that model in Cursor Chat or Agent.
Cursor adds facts you need before you rely on this route. Its own key guide covers OpenAI, Anthropic, Google, Azure and AWS Bedrock. For OpenAI it limits the route to standard chat models that do not do the deep reasoning mode, and says the picker shows which OpenAI models are available. It also says custom keys only work with chat models, Tab completion keeps using the models Cursor supplies, your key is not stored on its servers but is sent to its backend with every request for final prompt building, and its Zero Data Retention policy does not apply when you use your own key. Your data handling then follows the policy of the provider you chose.
| Feature | Covered by your own OpenAI key? |
|---|---|
| Local Chat and Agent in the desktop app | Yes, per OpenAI |
| Cursor Tab and autocomplete | No |
| Auto model selection and routing | No |
| Cloud Agents and Background Agents | No |
| Automations | No |
| Cursor CLI | No |
| Cursor API and SDK | No |
Expected result: a local Chat or Agent request on the model you enabled runs and bills to your OpenAI API account. Test it with one small task and then check the usage view in your OpenAI account, so the billing path is a fact and not a hope. If the request fails, see the Troubleshooting section before you change anything else. Cursor warns that an invalid or rejected key makes requests for that provider fail until you update or remove the key.

Step 6: Or Install the Codex Extension Inside Cursor
Action: if you want OpenAI agent work in Cursor without tying it to the Cursor picker, install the Codex IDE extension. OpenAI gives this order. First, open the Codex IDE extension page and select Cursor to install the extension. Second, open Codex from the Activity Bar. Third, select Sign in with ChatGPT to use an eligible ChatGPT subscription, or select Use API Key to use an OpenAI API account. Fourth, open your project and start a task from the Codex panel.
Keep the boundary clear in your notes. OpenAI states that the extension provides its own agent experience inside Cursor, and that it does not change the model used by Cursor Chat, Agent, Tab, Auto, Cloud Agents or other Cursor services. It is a second agent in the same window, not a repair for the picker. Teams that adopt it should say which jobs belong to Codex and which belong to Cursor, or results will be hard to compare.
Expected result: the Codex panel opens in Cursor, accepts a task on your project, and runs under the sign in route you chose. One small task from your Step 4 test set is enough to prove the route works before you need it.
Step 7: Move Remote Work and Settle the Team Plan Question
Action: return to the remote rows in your audit. For each Automation and each Cloud Agent, open its settings and change its model to a replacement that passed Step 4, or to a model Cursor supplies if that job never got a test of its own. Run each changed job once by hand where the product allows it, and read the result in full. A silent failure in an Automation is worse than a loud one in chat, because nobody watches it fail.
Then settle the plan question for your team. On the plan facts Cursor publishes today, Free and Plus include no models from other providers and no use of your own keys. Premium or higher is the floor for both routes, and on Teams and Enterprise plans the Cursor Token Rate of $0.25 per million tokens still applies on eligible models, including requests made with your own key. If your team is on Plus seats today, the decision to move seats is a money decision, and it belongs to whoever owns the budget. Surface it now with the audit table attached, not after the cutoff.
Expected result: no Automation, Cloud Agent or CLI job in your audit still points at an OpenAI model supplied through Cursor, and every person affected knows which plan and billing route their work now uses.
Verification
Work through this list before you call the swap done.
First, open the model picker and confirm each job from your audit runs on its named replacement. Second, rerun one task from each row of your Step 4 test set and confirm the results still pass. Third, check each Automation and Cloud Agent from Step 7 and confirm its model setting names a replacement. Fourth, if you set up your own key, run one local request and confirm the usage appears in your OpenAI API account and not in your Cursor usage. Fifth, search your project rules and saved prompts once more for GPT model names and confirm each one is either gone or tied to a backup path you tested.
If all five hold, state the result plainly in your notes. Direct OpenAI access through Cursor can end on November 12, or sooner if Cursor chooses, and your daily work will not stop when it does. Your local backup path, if you built one, covers Chat and Agent only, and you know exactly which features sit outside it.
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| A replacement model is missing from the picker | The model is not enabled, or your plan does not include models from other providers | Enable it in Cursor Settings, then Models. If it still does not appear, check the plan: Free and Plus include no such models, per Cursor |
| Requests fail after you paste your own key | The key is invalid or the provider rejected it | Update or remove the key in Cursor Settings, then Models. Cursor says requests for that provider fail until you do |
| Tab completion did not switch to your OpenAI model | Custom keys only work with chat models, by design | Leave Tab on the models Cursor supplies. No setting in this tutorial changes that, and none should claim to |
| A Cloud Agent or Automation broke after the cutoff | That work used an OpenAI model supplied through Cursor, and your own key cannot cover it | Change that job to a replacement model from Step 2 and run it once by hand to prove it works |
| Auto gives results that feel different after the swap | Auto routing changed when the OpenAI models left, with no change in its label | Test on named models, not Auto, until you trust the new routing on your own tasks |
| Your OpenAI bill rises and Cursor usage does not | Own key requests bill to your OpenAI API account, apart from Cursor | Check usage and limits in your OpenAI API account, where OpenAI says available models and usage limits are set for your organization |
| Your team relies on Zero Data Retention | That policy does not apply to requests made with your own key, per Cursor | Use the models Cursor supplies for that work, or move the work to a route whose data terms your team accepts |
| A GPT model still works on November 13 | The date was proposed, talks were ongoing, and OpenAI said the official date would be shared once confirmed | Keep the swap. A delay is not a reversal, and OpenAI has said no future models will be added while the deal winds down |
Next Steps
Keep the test set from Step 4 and run it again whenever Cursor changes its model list or its plans. A model swap you have rehearsed takes minutes. A model swap you meet for the first time on a deadline takes a day and your temper with it.
Watch for two confirmed facts in the days after November 12: the official termination date OpenAI says it will share once both companies confirm it, and any transition plan Cursor publishes for Auto and Cloud Agents. Until one of those lands in a primary source, treat every claim about a rescue deal as a claim, including the hopeful ones.
Facts checked November 9, 2026, against the OpenAI post on its Cursor decision, the OpenAI Help Center guide to using OpenAI models in Cursor, the Cursor guide to using your own API key, and the Cursor Models and Pricing page. This tutorial follows the setup orders those sources publish. It does not claim the full swap was run in a live Cursor account for this article.
Sources
- The wind down decision, the proposed November 12, 2026 date, the reason given, the change of control window, and the Astra note: Our decision on Cursor following its acquisition by SpaceX, OpenAI
- The three routes for keeping OpenAI models in the Cursor app, the own key order, the Codex extension order, the gateway route, and the list of features a key cannot cover: Using OpenAI models in Cursor, OpenAI Help Center
- The own key order, the provider limits, the Tab limit, key handling, and the Zero Data Retention limit: Bring your own API key, Cursor
- Plan tiers, the weekly pool models, rates for Composer, Grok, Claude, Gemini and GPT models, and the Token Rate: Models and Pricing, Cursor Docs
- The summary of what may change after November 12 and the 5 percent traffic figure attributed to Michael Truell: What Will Happen to OpenAI Models in Cursor After November 12?, Cursor Community Forum
- Hero and body art: Dirty Static.
END OF TRANSMISSION
Stay curious. Question everything.


