ccbar 0.2 · now with OpenAI Codex

Meter your Claude Code and OpenAI Codex spend.

ccbar is a tiny desktop app that reads ~/.claude/ and ~/.codex/ on disk and surfaces live 5h + 7-day windows for both providers. No accounts, no servers, no telemetry — just the receipt your CLI never quite gives you.

Install ccbar View on GitHub Free · open source · no signup
ccbar tray popup with 5h and weekly bars
ccbar hero panel with sparkline
The whole window

Four panels, one paperback-sized window.

Today, daily activity, time windows, models — auto-refreshing every fifteen seconds, all read straight from disk.

ccbar full dashboard at noon
Two providers, one window

Claude tab. Codex tab. Same numbers, same shape.

Each tab is a complete dashboard for one provider — Hero today, 30-day sparkline, time windows with API value vs. flat subscription, model breakdown. Switching tabs swaps the data source; the layout never moves on you.

  • Claude tab — walks ~/.claude/projects/<cwd>/<sessionId>.jsonl, dedupes assistant messages by message.id, prices Opus / Sonnet / Haiku separately.
  • Codex tab — walks ~/.codex/sessions/**/*.jsonl + archived, dedupes token_count events, attributes tokens to the turn_context.model in effect for that turn.
  • Tray switcher — system tray popup has the same Claude / Codex tabs at 340×280px, so the bar you stare at all day always reflects the provider you care about right now.
Codex sign-in

Connect once, then it's local-first.

Click Continue with OpenAI on the Codex tab. Browser opens to auth.openai.com, you sign in, ccbar receives the OAuth token via a short-lived loopback listener on localhost:1455, and stores it in its own keystore at <config>/ccbar/codex-auth.json.

We never touch ~/.codex/auth.json (Codex CLI's own token). The token never leaves the HTTPS request to OpenAI's token endpoint, and the frontend only sees { connected, email, expiresAt, sessionCount } — never the bearer.

Auth host
auth.openai.com
Loopback port
127.0.0.1:1455 (fallback :1457)
Scope
openid profile email offline_access
Token storage
<config>/ccbar/codex-auth.json
Features

Built like a meter, not a dashboard.

Quiet defaults. Real numbers. No fake gauges, no synthetic averages, no "growth" tips.

Sparkline

Fourteen days, no axis decoration.

Two-hundred-pixel area chart, peak day annotated, dashed average line — just the shape of your usage.

30-day daily activity
Models

Side by side, by API list dollars.

Opus, Sonnet, Haiku — each in its own row with an honest cost. Haiku 4.5 priced separately from 3.5.

4 distinct · 30d
Quota

Goes faint when stale. No fake gauges.

quota pill
Why ccbar exists

Claude Code never quite tells you how much you've spent today. ccbar reads the JSONL files it writes after every assistant message and shows the receipt — with live 5h and weekly bars from the API itself.

Install ccbar
Privacy
ccbar reads files. It does not write files. It does not upload.

The desktop app opens three things in your ~/.claude/ folder, only those: per-session JSONL, the rate-limit log, and a directory listing. The only network call ccbar makes is a tiny ping to Anthropic for the live 5h and weekly headers — opt out with CCBAR_LIVE_QUOTA=0.

Read the full privacy page →

Try ccbar in sixty seconds.

Build from source on Windows, macOS, or Linux. No accounts to create, nothing to subscribe to.