Troubleshooting

Atlas error: To use Codex with your ChatGPT plan, upgrade to Plus

Updated 6 min read

Atlas fails the run with "To use Codex with your ChatGPT plan, upgrade to Plus: https://chatgpt.com/explore/plus." because parseStreamError maps the provider error code usage_not_included to a non-retryable api_error carrying that upgrade message verbatim. Fix it by upgrading the ChatGPT plan tied to the account you authenticated with, or by authenticating a different OpenAI credential, specifically an API key rather than a ChatGPT OAuth session. Run `atlas auth login` and pick the API-key path for OpenAI instead of the Codex device flow.

Why does Atlas say my ChatGPT plan does not include Codex usage

Atlas prints "To use Codex with your ChatGPT plan, upgrade to Plus: https://chatgpt.com/explore/plus." because the provider returned the error code usage_not_included. parseStreamError maps usage_not_included to exactly 1 non-retryable api_error and carries that upgrade message verbatim into the transcript.

The sentence is the provider's own upgrade message, passed through unchanged. parseStreamError recognizes the usage_not_included code and attaches the message rather than rewriting it, which is why the link to https://chatgpt.com/explore/plus appears exactly as the provider sent it. The classification is non-retryable, so Atlas stops rather than trying the same request again. The underlying fact is simple: the ChatGPT account whose OAuth session you authenticated with is on a plan whose entitlements do not cover Codex usage, and no retry changes an entitlement.

How do I fix usage_not_included in Atlas

Step 1 of the documented fix is to upgrade the ChatGPT plan tied to the account you authenticated with. The provider returned usage_not_included specifically because that account's plan does not include Codex usage, and the Atlas message names the upgrade path: https://chatgpt.com/explore/plus.

Upgrade the plan on the exact account you authenticated with, not another account you happen to own. That is the detail that trips people up, since a household or team can have several ChatGPT accounts and Atlas is using whichever one completed the OAuth flow. Once the plan is upgraded, restart the request. If you would rather not change the plan at all, the alternative is to stop using the ChatGPT OAuth session as your credential and authenticate with an OpenAI API key instead, which is a different entitlement path entirely.

How to use an OpenAI API key instead of a ChatGPT OAuth session

Steps 2 and 3 of the documented fix are to authenticate a different OpenAI credential: an API key rather than a ChatGPT OAuth session. Run `atlas auth login` and pick the API-key path for OpenAI instead of the Codex device flow, and Atlas bills against the API key rather than a ChatGPT plan.

The Codex device flow authenticates a ChatGPT account, which means your ChatGPT plan determines what you can call, and a plan without Codex usage produces usage_not_included. An OpenAI API key is a separate credential with separate entitlements. Run `atlas auth login`, choose the API-key path for OpenAI, and Atlas stops depending on the ChatGPT plan altogether. The honest caveat is that an API key has its own billing, so you are choosing which account pays rather than avoiding payment. For many developers that is a cleaner arrangement than upgrading a personal ChatGPT plan.

Can I use Atlas without Codex if my plan does not include it

Yes. Step 4 of the documented fix is to select a non-Codex model with `atlas models` if you only need general coding help. The usage_not_included error is specific to Codex usage on a ChatGPT plan that does not cover it, so a model outside that entitlement runs on the credential you already have.

Atlas lets you switch the active model and provider on the fly with favorites and recents, so moving off Codex takes seconds. If your work is general coding assistance, a non-Codex model chosen with `atlas models` avoids the entitlement problem entirely and keeps the session going. Everything else Atlas does stays available regardless of model. Atlas still searches code with hybrid semantic and keyword retrieval fused by reciprocal rank fusion, still computes a unified diff for every file edit and surfaces it for approval before writing, and still permission-gates every tool call.

Does Atlas retry the Codex usage not included error

Atlas does not retry the Codex usage error and makes 0 attempts to do so. parseStreamError maps usage_not_included to a non-retryable api_error, so the run stops immediately rather than backing off. An entitlement gap on a ChatGPT plan cannot be cured by waiting, and Atlas does not pretend otherwise.

The non-retryable classification tells you what kind of problem you have. Retryable errors are transient. usage_not_included is not transient, it is a statement about what the authenticated ChatGPT plan covers, and it will return identically on every attempt until the plan changes or the credential changes. Re-running the same command is wasted effort. Either upgrade the plan at https://chatgpt.com/explore/plus, switch to an OpenAI API key with `atlas auth login`, or move to a non-Codex model with `atlas models`.

How to verify the Codex plan fix worked

Verify the fix by running 1 Codex request again and confirming the upgrade message does not return. When Atlas completes a normal reply, the provider is no longer returning usage_not_included, which means the authenticated account's plan now covers Codex usage or the credential changed to an OpenAI API key.

Run the same request that failed, against the same model, so the test is meaningful. A successful reply is conclusive, because parseStreamError maps usage_not_included deterministically and would raise the same non-retryable api_error again if the entitlement were still missing. If you took the API-key route rather than upgrading, confirm with `atlas auth login` that the OpenAI credential in use is the API key and not the Codex device flow session, since an unchanged OAuth session will keep producing the same upgrade message.

How to fix it

  1. 01Upgrade the ChatGPT plan tied to the account you authenticated with.
  2. 02Or authenticate a different OpenAI credential, an API key rather than a ChatGPT OAuth session.
  3. 03Run `atlas auth login` and pick the API-key path for OpenAI instead of the Codex device flow.
  4. 04Select a non-Codex model with `atlas models` if you only need general coding help.

Frequently asked questions

how to fix To use Codex with your ChatGPT plan upgrade to Plus in atlas
Upgrade the ChatGPT plan tied to the account you authenticated with at https://chatgpt.com/explore/plus, or run `atlas auth login` and pick the API-key path for OpenAI instead of the Codex device flow.
what is usage_not_included in atlas
usage_not_included is the provider error code Atlas maps, via parseStreamError, to a non-retryable api_error carrying the message "To use Codex with your ChatGPT plan, upgrade to Plus: https://chatgpt.com/explore/plus."
can I use an openai api key instead of chatgpt oauth in atlas
Yes. Run `atlas auth login` and pick the API-key path for OpenAI instead of the Codex device flow. An API key has separate entitlements from a ChatGPT plan, so usage_not_included no longer applies.
does atlas retry the codex usage not included error
No. parseStreamError maps usage_not_included to a non-retryable api_error, so Atlas stops the run immediately. An entitlement gap on a ChatGPT plan does not resolve by waiting or retrying.
which chatgpt account does atlas use for codex
Atlas uses whichever ChatGPT account completed the OAuth device flow. Upgrade the plan tied to that specific account, since another account you own does not affect the usage_not_included error.
can I use atlas without codex
Yes. Select a non-Codex model with `atlas models` if you only need general coding help. Atlas lets you switch the active model and provider on the fly with favorites and recents.
how do I confirm the codex upgrade worked in atlas
Re-run the same Codex request against the same model. A normal reply means the provider no longer returns usage_not_included. If you switched to an API key, confirm with `atlas auth login` that the API-key path is the active OpenAI credential.

Try Atlas in your terminal

The terminal-native AI coding agent. Free core, single binary.

Install Atlas

Related guides

Atlas with GPT-5.2: The 400K General Purpose GPT in 2026

GPT-5.2 runs Atlas on a 400K context with 128K max output at $1.75 per Mtok input, $14 per Mtok output. Setup, the price rise from GPT-5.1, and the Codex tradeoff.

Atlas with OpenAI o3-mini in 2026: Still Worth Pinning?

OpenAI o3-mini runs in Atlas at $1.10 per Mtok input and $4.40 per Mtok output on a 200K context, but o4-mini costs exactly the same and is newer. Here is the call.

Atlas with Mistral Small 3.2 (local via Ollama) in 2026

Run Atlas on Mistral Small 3.2 (local via Ollama) in 2026: a 15GB pull, Free (self-hosted), 128,000 tokens of context, and function-calling tuned 2506 weights.

Atlas with NVIDIA Nemotron Nano 9B v2 in 2026

Nemotron Nano 9B v2 in Atlas, 2026: a dense 9B reasoning model at $0.06/$0.23 per Mtok on Vercel AI Gateway and Amazon Bedrock, free on the NVIDIA NIM tier.

Atlas with Qwen2.5 14B Instruct in 2026: The Open-Weights Main Model Tier

Qwen2.5 14B Instruct drives Atlas at $0.35 per Mtok input and $1.40 per Mtok output, fits a single 24 GB GPU at 4-bit, and holds a real multi-file edit plan.

Atlas with Azure OpenAI (gateway) in 2026: The GPT-5 Codex Line Under Enterprise IAM

Azure OpenAI (gateway) runs Atlas on the full GPT-5 lineup including gpt-5.3-codex, with up to 1.05M context and passthrough Azure pricing in your own region.

Atlas with IBM Granite 4 Small-H (Ollama): a 1M-Token Local Window in 2026

IBM Granite 4 Small-H (Ollama) is a hybrid Mamba model with 1M tokens (1,048,576) of context from a 19GB download, Free (self-hosted). Atlas setup and memory notes.

Atlas vs Aider: Terminal AI Coding Agents in 2026

Comparing Atlas and Aider for 2026 developers. Atlas offers a rich TUI, permission-gated tool calls, and plugin support, while Aider provides a repo-map and commits every change as a discrete git revision.

Browse this resource hub