Use a ChatGPT subscription
If you pay for a ChatGPT Plus or Pro plan, Thermite’s agents can work on that plan instead of a paid API key. You sign in with ChatGPT from the dashboard, and control keeps the login. Its models then run in Pi, OpenCode v2 or Codex, the programs Thermite’s agents work in.
A subscription is for your own Thermite only. A Thermite that several people use takes API keys.
Before you start
Section titled “Before you start”- A ChatGPT Plus or Pro plan.
- You are signed in to Thermite’s dashboard, in a browser where you can also sign in to ChatGPT.
Sign in
Section titled “Sign in”-
Press the cog icon, Settings, at the foot of the sidebar. The Providers page opens.
-
In Add a provider, set Type to ChatGPT subscription (Plus or Pro).
-
Enter a Name, for example
chatgpt-pro. -
Press Sign in with ChatGPT ↗.
A ChatGPT page opens in a new tab. Sign in there, and allow Thermite to use your plan.
-
The tab then goes to an address that starts with
http://127.0.0.1:1455/auth/callbackand shows an error.That is expected: the address is meant for an app on your own computer, and nothing there needs to answer. It holds a one-time code that control needs. If a program on your computer already uses port 1455, close it before you sign in.
-
Copy that whole address from the tab’s address bar. Go back to Thermite’s tab and paste it into The address the tab went to. Do this soon: control waits 30 minutes for the address, but the code in it is ChatGPT’s, and ChatGPT may end it sooner.
-
Tick Unattended use: “I allow Thermite’s agents to use my ChatGPT plan when I am not there, for my own research.” Its ⓘ says: “OpenAI asks apps to get your consent before they use your plan when you are not there. Thermite’s agents work for hours without you: workers, the planner and the advisors, on the rigs you give its models.”
-
Press Finish the sign-in.
The page shows "chatgpt-pro" is signed in: its 6 models run in Pi, OpenCode v2 or Codex. Choose one for a rig below. with your name and count. Control reads the models from OpenAI’s list for your plan, so which ones you get, and how many, depends on OpenAI. The subscription’s row under Providers lists them as chatgpt: and the model’s name.
Give a rig one of its models
Section titled “Give a rig one of its models”- In Harness and model for each rig, find the rig’s row.
- Choose the worker harness, the program the agents run in: Pi, OpenCode v2 or Codex. Codex is the Codex CLI, OpenAI’s own program for agents; see Run the agents in Codex. Claude Code does not take a ChatGPT subscription.
- Choose a model from the group “chatgpt-pro (ChatGPT subscription: Pi, OpenCode or Codex)”, and press Use.
After a minute, press refresh in the status bar, the line along the bottom of the page. The model check’s result shows below the rig’s row. To give the planner or an advisor the subscription, use Edit rig: see Give each agent its own model.
Run the agents in Codex
Section titled “Run the agents in Codex”A ChatGPT subscription runs in Pi unless you choose another harness. To run the workers in the Codex CLI instead:
- On Providers, in the rig’s row of Harness and model for each rig, choose Codex and the subscription’s model, and press Use. On the rig’s Edit rig page, it is Codex in the workers’ Runs in column. An agent can do the same over MCP with
set_rig_modelandharness: "codex". - After a minute, the model check runs in Codex. When it passes, its result says
<model> answered with a correct tool call in <seconds> s (Codex).
Then:
- Each worker’s trial runs in Codex, as the lane’s own user, and submits with
thermite-trial. - The planner runs in Codex too, unless you give it a model of its own on Edit rig. Its Runs in cell says “as the workers: Codex”.
- Research workers keep running in Pi, with the same model.
- Codex never gets the subscription’s token. It reaches OpenAI through the harness’s proxy, with its trial’s own token, and the proxy adds the token on the way out.
The published harness images carry the Codex CLI. An image you build with an empty CODEX_VERSION does not (build arguments).
How the login is kept
Section titled “How the login is kept”Control exchanges the code for the login, seals it, and renews it from then on. Only control renews it. A rig whose agents use the subscription gets a token that lasts one hour, and control gives it a fresh one while it uses it. The row on Providers says “control renews the login” while all is well.
If the login ends, for example because you disconnected Thermite in ChatGPT, the row shows “its ChatGPT sign-in ended” and the reason, ending “sign in again”. To sign in again:
- Open the subscription’s row and press Sign in with ChatGPT ↗ there.
- Sign in, copy the address the tab goes to, and paste it into The address the tab went to in the same row.
- Press Finish the sign-in. You gave your consent the first time, so there is no box to tick.
When the plan is full
Section titled “When the plan is full”OpenAI does not tell apps how much of a plan is used. See it in ChatGPT, under Settings › Usage.
When the plan is full, the agents on the subscription wait and try again every 15 minutes. No new trial (a worker’s session) or plan starts on that rig while they wait. Nothing pays for more.
Sign out
Section titled “Sign out”Open the subscription’s row and press Sign out and delete. Control ends the login at OpenAI and deletes the subscription. The page says "chatgpt-pro" deleted. OpenAI confirmed the sign-out.
If it says instead that “OpenAI did not confirm the sign-out”, disconnect Thermite yourself in ChatGPT, under Settings › Security and login › Sign in with ChatGPT.
If a rig or an agent still uses the subscription, the row says “In use: give its rigs another model before deleting it.” Give them another model first.
If something goes wrong
Section titled “If something goes wrong”| You see | What to do |
|---|---|
| “Tick the box that allows Thermite’s agents to use your plan when you are not there: OpenAI asks apps for your consent.” | Tick Unattended use, then paste the address again. |
| “The address must start with http://127.0.0.1:1455/auth/callback.” | Copy the address from the tab that ChatGPT sent you to, not another one. |
| “Control did not start this sign-in, or it is older than 30 minutes: press Sign in with ChatGPT again.” | Start again from Sign in with ChatGPT ↗. A restart of control in between also causes this. |
| “ChatGPT did not allow the sign-in” and a reason | You declined, or ChatGPT refused. Sign in again and allow Thermite. |
| “The address has no sign-in code in it.” | Copy the whole address, including everything after ?. |
| “The sign-in failed:” and a reason | Control could not exchange the code for the login. Start again from Sign in with ChatGPT ↗. |
| “Claude Code runs only with a Claude subscription here: choose Pi or OpenCode v2 for this provider.” | Choose Pi, OpenCode v2 or Codex for that rig. |
| The model check fails right after you chose Codex | Check that the rig’s harness image has the Codex CLI. The published images do; an image built with an empty CODEX_VERSION does not. |