ccdeck

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.

Claude Code and Codex Checked against ccdeck 3.81.3 on

You will

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.

Demo data What each session costs, and how much quota is left. Illustrated costs, not a bill. Drawn as a reconstruction of the deck.

Before you start

Steps

  1. Open the Usage panel

    Press U, or click the Usage icon on the stripe on the right.

    The Usage panel, with a chart icon, a circular arrow and a cross in its header. Claude quota, Max 5x, 2m ago: 5-hour window 64%, resets in 3h 0m, runs out in 1h 7m; 7-day window 38%, resets in 4d 5h, on pace; then Last 4 weeks ended 62% used, 38% unused. Codex quota, Plus, 30s ago: 5-hour window 18%, resets in 4h 10m, on pace; 7-day window 71% in amber, resets in 2d 7h, 4% over pace; then Last 3 weeks ended 87% used, 13% unused, and 2 rate-limit resets available with the date and time the first expires. Then today pressed, $10.09 today, Local estimate · ccusage, in 115.0k, out 252.4k, cache r 4.18M, cache c 257.2k. By model: Opus 5 4.02M $8.22, GPT-5.5 317.6k $1.41, Sonnet 5 469.7k 46¢. By session, active today, each row ending in an arrow: web-api $4.28, 8c3f0e17 $3.94, b7f2c958 88¢, infra 53¢, data-pipeline 46¢. Last, Watch · 30 s.
    Demo data Both CLIs are watched, so both quotas are drawn.

    The circular arrow in its header reads the quotas and the totals again.

  2. 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.
  3. 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.

  4. 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.

    Session usage for infra, with a circular arrow and a cross in its header. Codex, whole session. Estimate using is set to Session settings / config. Estimated cost 53¢, total tokens 119.4k. Token breakdown: Cached input reuse 91.5%, 1 of 1 model groups measured, then a bar split into input 8.9k (7.4%), output 14.6k (12.2%), cache read 95.9k (80.3%) and cache write 0, and 9.8k reasoning tokens, included in output. Models: GPT-5.5, 119.4k. First and last activity on Nov 4, 2026, at 10:24 PM and 10:36 PM. At the foot: Estimated from local logs, not an invoice. Includes the whole session. Then Estimate details and Session ID, both folded.
    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.

  5. 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.

    Usage history, via ccusage · local Claude Code and Codex logs, with 30d pressed among 7d, 14d, 30d and 90d, then a circular arrow and a cross: total cost $244, tokens 120.47M, input+output 10.18M, cache reads 103.94M. A bar splits the cost into Claude Code $188, 77.0%, and Codex $56.03, 23.0%. Below it thirty daily bars stacked by model, from 10-06 to 11-04, every other one dated, the last one selected, and a legend: Opus 5 $158, GPT-5.5 $56.03, Sonnet 5 $29.96. The selected day, 2026-11-04, $10.09, reads Claude Code $8.68 · Codex $1.41, then input 115.0k, output 252.4k, cache write 257.2k and cache read 4.18M, and a cost for each model. 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.

  6. 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.

    The Projects report for the account work, with Today, 7d, 30d and All in its header and 7d pressed: $30.30, 16.99M tokens, the last 7 days, under a bar split three ways. A chart By day · click a bar runs from 10/29 to 11/4. Rows: web-api $19.65, docs-site $6.59, data-pipeline $4.06, each with its tokens and an ⓘ button. The footer reads Dollars from ccusage · split by activity · Tracked since Sep 7, 2026.
    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.

Next

All guides Troubleshoot What you get in the README