See Claude Code and Codex cost and quota left
ccdeck shows each Claude Code and Codex session's spend at API prices on its card, today's and this month's totals from ccusage in the Usage panel (press U), and how much of each quota window is used, with the time until it resets.
You will
- Read how much Claude and Codex quota is left
- See your spend for today, this month or all time
- Find the sessions, days and projects your money went to
The film’s lines, in order: What is this costing? What each session costs, and how much quota is left. Claude and Codex quota windows, as they refill. Spend per model and per session. Usage history is read with ccusage. It ends on the ccdeck logo, npx ccdeck, “Cost and quota, live.” and ccdeck.dev.
Before you start
- ccdeck running, with a session that has used tokens. Install ccdeck with npx and see your first session covers that.
- For the totals: the npm registry within reach the first time, where the deck gets ccusage, a separate tool that reads the transcripts both CLIs leave on disk.
- For a quota: Claude Code signed in with a Claude subscription, or Codex signed in with
codex loginand a ChatGPT account.
Steps
-
Open the Usage panel
Press U, or click the Usage icon on the stripe on the right.
Demo data Both CLIs are watched, so both quotas are drawn. The circular arrow in its header reads the quotas and the totals again.
-
Read how much quota is left
Each bar is one quota window, and resets in under it counts down to its next start. A bar turns amber from 70% and red from 90%.
The line beside the countdown compares your use with the time gone, as in on pace or 4% over pace; click it for the share to stay near by now. runs out in means that, at the rate so far, you would reach 100% before the reset.
The chart icon in the panel’s header opens Quota history: what was left of a window at each reading, beside a dashed line for even use.
To be notified instead, click Settings at the right of the topbar, then Notifications, and turn on Quota at 90% and 100%, or Quota reset for when a window that reached 90% starts over. Both cover only the accounts you are on, even with the deck closed.
More about the two quotas
- Claude quota has a 5-hour window and a 7-day window, plus Sonnet (7d) and Opus (7d) when Anthropic reports them.
- Codex quota is the account in use, with a bar for each window OpenAI reports. A 30-day window is paced over its whole length; click its line to see what a day may use.
- Both headings show your plan, such as Max 5x or Plus.
- The line under a 7-day bar, such as Last 4 weeks ended 62% used, 38% unused, says how full your last weeks were at their reset. It starts once a week ends with a reading near its reset.
- Saved limit resets show as a count, with when the first expires. Redeem them in Claude or Codex.
- used up beside a bar means the window is full.
- A Claude or Codex incident shows as a line under that quota’s heading, linking to its status page.
-
Choose the period the totals cover
Click today, month or all under the quotas. month starts on the 1st, not 30 days ago, and all is every transcript on disk.
The totals are ccusage’s, and cover every Claude Code and Codex session on this machine, even ones no longer on the canvas.
These are API prices. Every dollar is at the providers’ published per-token rates. The deck does not know what your plan bills you.
More about how the totals are read
ccusage prices the tokens with its own rates, and Local estimate · ccusage under the figure says so. The first time you click a period, it can take a few seconds to read the transcripts. After that the panel asks again once a minute, and in between adds what the sessions on the canvas have used, priced by ccdeck.
ccdeck’s price table is the base rate: no Batch discount and no data-residency multiplier. Claude Code’s fast mode is priced at its own rates, and a Claude Haiku 5.5 request with a prompt over 100,000 tokens at five times the rate. A Codex session is priced at the tier its settings recorded for each step, Fast or Flex at OpenAI’s published multiplier, though a setting does not prove the tier served. ChatGPT’s auto-review checks cost nothing, and Codex has no long-context surcharge.
-
See what each session cost
Click By session for a row per session active in the period. A session that has left the canvas shows the end of its id, like 8c3f0e17.
Click a row for Session usage: the whole session’s estimated cost, tokens by kind, how much input came from the cache, and models.
Demo data infra is a Codex session, so Estimate using can also price it as a Standard, Fast or Flex scenario. More about the rows, a card’s figure, “not priced” and +
The rows can add up to more than the total: ccusage measures a session and a day separately.
A session’s card, the session list and its detail panel price its tokens, and its subagents’, from ccdeck’s own table. See Claude Code subagents and tool calls live shows where.
not priced stands where a dollar figure would be when there is no published rate for the model. Its tokens are counted and its dollars are not. New rates come with new releases.
A figure ending in +, such as $11.19+, is a minimum: some of its tokens are on a model with no rate. Hover it: a card names the model, and the Usage panel and the Projects report say how many tokens have no rate.
-
Open Usage history
Press H, or click the Usage history icon on the stripe on the right. It opens on 30 days: click 7d, 14d or 90d for another range.
Open the full-size picture
Demo data The last bar is today, clicked. Its $10.09 is the Usage panel’s today. Click a day’s bar for its tokens, and its cost by CLI and by model.
-
See each account’s quota and spend by project
Press A, or click the Accounts icon on the stripe on the left. Each account’s row shows its own windows. With both CLIs, click Claude or Codex in its header.
Click the ⋯ on an account, then Projects. For Claude it needs your accounts in claude-swap, as in Switch between multiple Claude Code accounts.
Demo data A Claude account’s report: its footer says the dollars are matched to ccusage’s. More about how the report counts
It opens on Today. For a Claude account, All is the last 60 days, and work is counted for the account that was active when each message was sent. Work no account can be tied to is listed apart as Unattributed usage, and left out of the totals.
Claude’s dollars are ccdeck’s prices brought into line with ccusage’s, day by day and model by model. Until that is done, or when ccusage is not there, the footer says Dollars estimated and why.
A Codex account’s report reads Codex’s own logs in that account’s folder, and its dollars are ccdeck’s estimate at API prices. Work there under another sign-in is its Unattributed usage.
On decks paired over Local network, one deck reads a shared Claude account’s usage for all of them. Hover the age on the account’s row to see which deck read it.
If something goes wrong
Usage shows “spend on this board” and no today, month or all
ccusage could not be read, so the panel counts only the sessions on the canvas, and Usage history (H) says why. Let this computer reach registry.npmjs.org, where the deck gets ccusage; or put ccusage on the deck’s PATH, or set AGENTS_DECK_CCUSAGE to its full path.
A quota says “Quota unavailable.”
The line under it says what to do. For Claude, run /usage in a Claude Code session, then click the panel’s circular arrow.
Claude quota says “No quota to show.”
Claude Code signs in with an API key, or through Bedrock or Vertex. That has no quota window, and your spend still shows.
By session says “No session falls in this period yet”
ccusage dates sessions by UTC, and the totals by your local day. Click month, or wait for the day to start in UTC.
Usage history says ccusage took more than 90 seconds
A long history takes time to read. Click 7d.
Something else? See Troubleshoot ccdeck: status, logs, port and hooks.