If you're running Codex sessions regularly, you already know what it's like to hit a limit mid-task. WhatsLeft puts the gauge on your deck so you're never caught off guard. No sign-in, no account to configure — it reads the same file the Codex CLI already wrote.
Three actions, one connection
Session
Your 5-hour rolling usage window.
Weekly
Your 7-day rolling window.
Overview
Both session and weekly on one key.
What it does
- Color-coded gauge — purple means healthy, red means under 20% remaining. The color tells you what you need to know before you read a number.
- Reads from
~/.codex/auth.json— no separate sign-in inside the plugin. It uses the credentials the Codex CLI already stored. - All three actions share one connection — connect once from any key's Property Inspector, done for all.
- Tap to open usage page — opens chatgpt.com/codex/cloud/settings/usage in your browser.
- Hold to refresh — skips the polling interval and fetches immediately.
Who it's for
Engineers using Codex for code tasks
When you're in the middle of an agentic Codex run, knowing you're at 12% session means you decide whether to finish the task or split it — not lose the context when it cuts out.
Anyone running Codex in agentic mode
Agentic tasks burn tokens fast. The weekly gauge gives you a horizon — how much is left before the window resets.
Getting set up
- Install the Codex CLI and run
codexonce in your terminal to log in. This writes~/.codex/auth.json. - Install WhatsLeft from the Marketplace and drag whichever actions you want onto your keys.
- Open any key's Property Inspector → Connect to Codex. Configure once; all three actions share the connection.
Good to know
Key shows "Setup needed"
Codex isn't installed or not logged in. Run codex in your terminal to complete login, then click Connect to Codex in the Property Inspector.
Plugin shows nothing after login
The auth.json file must contain both tokens.access_token and tokens.account_id. If either is missing, sign out of Codex and log in again by running codex in your terminal.
My auth.json is in a non-default location
Open the Property Inspector → Advanced settings, and set a custom path to your auth.json file.
"Token expired"
Run codex in your terminal to refresh. The plugin picks up the new token on its next poll. If it doesn't, click Connect to Codex again or use Reset auth from the Property Inspector.