When a Codex account reaches a usage limit, its reset time can look like a promise that work will resume at a particular moment. CodexMarathon treats that value as metadata from the latest provider-authored observation. The release exposes five-hour and weekly windows, exact reset times, and observation freshness so you can check the account state before relying on it.
This guide explains the codex rate limit reset data in the current build. It also covers what a fresh observation means and which reset actions are available. For the account-switch sequence that keeps a conversation and its parked continuation intact, see Safely Switch Codex Accounts Without Losing Your Conversation.
Read both quota windows
The release ships the modified codex CLI alongside codexmarathon-accountd, a private, long-lived, user-scoped metadata daemon. Accountd receives quota observations from the native Codex app-server and stores account IDs, aliases, window values, reset times, freshness, and other bounded metadata. It does not read or serve credentials. The CodexMarathon repository documents this metadata boundary, and the CodexMarathon blog has related usage-limit guides.
Each managed account can expose a five-hour window and a weekly window. The two windows have separate observations, so check both before deciding whether the account is available. An exact reset time tells you what the latest observation reported for that window. It does not confirm that the provider has restored capacity now.
Freshness matters for the same reason. If a reset time has elapsed, the corresponding observation is stale. Elapsed time by itself does not prove that quota is available, and missing, ambiguous, or failed observations cannot authorize a switch.
Query reset metadata from the CLI
Ask the private daemon for the latest account metadata without credentials:
codex marathon accounts --daemon --format table
The table is useful for a quick check across aliases. It includes the five-hour and weekly quota windows, reset times, and observation freshness without printing credential snapshots. Use JSON when another local tool needs to inspect the same fields:
codex marathon accounts --daemon --format json
These commands read the latest stored observations. Running them does not ask a provider to reset an account or turn an old timestamp into a fresh observation. You can also inspect Marathon’s local transition and enabled state with:
codex marathon status
Obtain a fresh observation before relying on a reset
The native app-server supplies provider-authored quota observations after Codex activity. If you need to work under another managed profile, switch to it first and let the safe-boundary transition finish:
codex marathon switch work
Use Codex normally with that profile. After native activity produces a new quota observation, query accountd again:
codex marathon accounts --daemon --format table
The switch command itself does not guarantee a fresh quota observation, and the metadata query only reads what accountd has stored. Check the observation freshness together with both quota windows. If the transition is rejected or uncertain, resolve it before relying on the selected identity. The safe account-switch guide describes that state machine in detail.
What reset controls do in the current build
The CLI exposes an explicit reset control, disabled by default:
codex marathon auto-reset status
codex marathon auto-reset on
codex marathon auto-reset off
The policy can consider a provider-supported reset capability only after every managed account reports zero weekly quota. The current build has no real provider reset executor. Development and test paths use fake capabilities and executors, and no provider reset action is called by this project.
When no managed account has fresh usable quota, Codex keeps a usage-limit recovery continuation parked while policy waits for quota state to change and revalidates it. A displayed reset time does not release that continuation by itself. Codex releases the existing continuation exactly once only after a safe account transition verifies the target identity.
Supported account profiles
Accountd’s metadata and Marathon’s switching controls are for managed ChatGPT authentication profiles. API keys, external bearer credentials, workload identity, and other unsupported authentication modes are rejected for managed switching.
For the broader login and profile workflow, read Use Multiple Codex Accounts Safely in the Codex CLI.
After native activity, rerun codex marathon accounts --daemon --format table. If either window remains stale or reports no usable quota, leave recovery parked and wait for another provider-authored observation. The command reads metadata; it does not perform a reset.