Summary
As a ChatGPT Pro user, I expected Codex CLI to work under my Pro plan without consuming API credits. However, the “Sign in with ChatGPT” flow auto‑creates an API key for my selected API org/project. If I revoke that key to avoid API charges, the CLI fails with 401 Incorrect API key provided and then forces me to sign in again, which creates a new API key. In short, there seems to be no way to use Codex CLI without an API key being generated and billed to the API account.
Environment
- Codex CLI:
0.19.0 (output of codex --version)
- Install method:
npm i -g @openai/codex
- OS: Windows 11 (running in Git Bash / MINGW64; not using WSL for this repro)
- Organization:
Personal → Default project
- Config directory:
~/.codex/ (an auth.json file appears after login)
Steps to Reproduce
-
Ensure no OPENAI_API_KEY is set in the environment and remove any previous Codex state:
- Delete
~/.codex/ (or at least ~/.codex/auth.json).
-
Run codex and select “Sign in with ChatGPT”.
-
In the browser, select my API Organization and Default project, then click Continue.
-
Observe that an API key named “Codex CLI (auto‑generated)” is created in the API dashboard, and ~/.codex/auth.json now holds credentials (including an sk-proj-... key).
-
Revoke that auto‑generated key in the API dashboard.
-
Run codex again.
Actual behavior
Expected behavior
- As a Pro user using “Sign in with ChatGPT”, I expected a mode that does not create or require an API key and does not consume API credits, or at least a clear toggle (“use ChatGPT plan entitlements only”).
- If I “Disconnect” Codex CLI in ChatGPT settings or revoke the key, Codex CLI should not silently recreate a billable key.
What I tried (no change)
- Deleted
~/.codex/ and re‑logged in.
- Ensured
OPENAI_API_KEY is unset.
- Revoked the “Codex CLI (auto‑generated)” key multiple times — CLI always re‑creates a new key after login.
Logs
From the CLI run after revoking the key (redacted):
system ⚠️ OpenAI rejected the request (request ID: req_19a4b978fff39e57e93e03f92d4c027a).
Error details: Status: 401, Code: invalid_api_key, Type: invalid_request_error,
Message: 401 Incorrect API key provided: sk-proj-***eZoA.
I can also provide ~/.codex/log/codex-tui.log with RUST_LOG=codex_core=debug,codex_tui=debug if needed.
Why I believe this is a bug/UX gap
- The official “Sign in with ChatGPT” docs say the flow creates a key automatically and that Disconnect only removes the OAuth grant, not the key itself. This appears to leave no path to run Codex CLI under a Pro plan without a billable API key.
- The README also instructs users migrating from API key billing to ensure
OPENAI_API_KEY is unset and re‑login; however, re‑login still auto‑creates a key, so billing remains tied to API.
Request
- Provide a “Pro/Plus entitlement” mode that does not rely on an API key (or at least a setting to not auto‑create one).
- Alternatively, clearly document that Codex CLI currently requires an API key and will bill the API account (even for Pro users), and outline how/when this will change.
- If a non‑API billing mode is planned, please share timelines or a beta flag we can test.

Summary
As a ChatGPT Pro user, I expected Codex CLI to work under my Pro plan without consuming API credits. However, the “Sign in with ChatGPT” flow auto‑creates an API key for my selected API org/project. If I revoke that key to avoid API charges, the CLI fails with
401 Incorrect API key providedand then forces me to sign in again, which creates a new API key. In short, there seems to be no way to use Codex CLI without an API key being generated and billed to the API account.Environment
0.19.0(output ofcodex --version)npm i -g @openai/codexPersonal→Default project~/.codex/(anauth.jsonfile appears after login)Steps to Reproduce
Ensure no
OPENAI_API_KEYis set in the environment and remove any previous Codex state:~/.codex/(or at least~/.codex/auth.json).Run
codexand select “Sign in with ChatGPT”.In the browser, select my API Organization and Default project, then click Continue.
Observe that an API key named “Codex CLI (auto‑generated)” is created in the API dashboard, and
~/.codex/auth.jsonnow holds credentials (including ansk-proj-...key).Revoke that auto‑generated key in the API dashboard.
Run
codexagain.Actual behavior
The CLI shows:
The CLI asks me to log in again; completing login creates a new API key. I cannot run Codex CLI without having an active API key, which leads to API charges.
Expected behavior
What I tried (no change)
~/.codex/and re‑logged in.OPENAI_API_KEYis unset.Logs
From the CLI run after revoking the key (redacted):
I can also provide
~/.codex/log/codex-tui.logwithRUST_LOG=codex_core=debug,codex_tui=debugif needed.Why I believe this is a bug/UX gap
OPENAI_API_KEYis unset and re‑login; however, re‑login still auto‑creates a key, so billing remains tied to API.Request