Codex quotas and reset times

Last updated: 8 September 2026 · Deutsch

What the ChatGPT/Codex card reads, why there are exactly two windows and not one per model, how the two kinds of credit differ, and where the reset time comes from.

Exactly two windows — no model split

The Codex quota state the app keeps has four parts: a five-hour window, a weekly window, the plan type, and a credit balance. That is the whole list. Unlike the Claude side, there is no field for model-scoped windows, because the interface offers none.

So if you are looking for a separate GPT-5 bar next to a Codex bar, or a model-specific sub-limit inside the weekly window: it does not exist here. Anything resembling one on this card would be a decoration, not a reading. The two windows are the quota.

Matched by length, never by position

The response labels its two windows “primary” and “secondary”, and those labels are not stable — the five-hour window is not reliably the first one. AI-Cockpit therefore ignores the order entirely and matches purely on the stated window length: 300 minutes is the five-hour window, 10,080 minutes is the weekly one. The same rule applies to both sources, the live fetch and the local log fallback, so both end up with identical windows.

This sounds like a detail and is not. Assigning by position is exactly the mistake that produces a card confidently showing a weekly figure as a five-hour one.

Live figures since version 6.5

Since 6.5 the Mac app fetches the numbers live from https://chatgpt.com/backend-api/wham/usage, after a one-time sign-in inside the app. There is no API key for this card. The sign-in is a device-code flow, but — a warning for anyone rebuilding it — not RFC 8628: the identifier is named differently, requests carry JSON rather than form data, “not redeemed yet” arrives as an HTTP 403 or 404 instead of a pending status, and the PKCE pair is generated by the server, not the client. The resulting token is stored in the Keychain.

The live path needs no folder access

A common misreading: the ChatGPT card does not require the folder permission. The live path reads the Keychain and nothing else — no file, no directory, no permission dialog.

Only the fallback touches the disk. If there is no sign-in, or the fetch fails, the app falls back to a locally installed Codex and reads its session logs from ~/.codex/sessions/. That is what the folder grant is for, and it is read-only. Sign in inside the app and the question never comes up.

Two kinds of credit, deliberately kept apart

“Credit” means two different things on a ChatGPT account, and the app does not blend them:

Both are fetched at most once every five minutes. They are a side note, not the core quota: if either endpoint disappears or changes shape, that line quietly goes away and the two windows keep working.

The reset time

Each window carries its own reset timestamp as a Unix time, and the card shows it both ways: relative, so you can see how long you have to wait, and absolute, so you can plan around it. A relative figure alone is useless the moment you want to know whether it lands before or after a meeting.

The limits, plainly

On iPhone and iPad

The mobile app uses the same live path, with the same one-time sign-in. What it does not have is the fallback: there is no locally installed Codex on a phone, so there are no session logs to read. Without the sign-in, the card stays empty on purpose.

Shorter answers to the neighbouring questions — why a card shows nothing, where keys live, what the app costs — are on the FAQ page. How the sign-in token is stored and handled is covered on the Security page.