Pace your Claude quota.
Your subscription is a 5-hour window and a weekly budget. ccpace watches both, for every account you have, from the official usage endpoint — real percentages, not transcript estimates — and tells you whether your pace survives the week.
- single file
- multi-account
- read-only
- ntfy · bark · system notify
- Claude Code plugin
- MIT
watch mode
Hover the ledger strip — each cell is one real 5h window.
▁▂▃▄▅▆▇█ what a window burned · · idle ·
░ unknown · ▮ now · ▫ ahead ·
× won't be covered at this pace · ┤ access ends.
Count ▮ and what follows: that is the budget number.
install
# needs uv and a Claude login (~/.claude/.credentials*.json) $ uvx ccpace # one glance, all accounts $ uvx ccpace --watch # live TUI: r=refresh, q=quit $ uvx ccpace --watch --ntfy https://ntfy.sh/mytopic # or the single file — it is the whole tool $ curl -fsSLO https://raw.githubusercontent.com/thevibeworks/ccpace/main/ccpace.py $ uv run --script ccpace.py # as a Claude Code plugin (/ccpace in any session) $ /plugin marketplace add thevibeworks/ccpace $ /plugin install ccpace@ccpace
how pacing works
-
The window model
Anthropic meters a rolling 5h session window and a 7d pool. ccpace derives what the API doesn't say: window start (
reset − length), elapsed fraction, and pace = usage% / elapsed%. Pace > 1 means you cap before the reset; the advisor names the hour. -
The countable budget
The 7d period is 34 windows of 5h. Windows you cannot spend are not budget: the strip ends at
┤when your subscription period ends before the reset. What's left is a number you can act on —%/window stays even. -
Forecasts from your history
Every sample appends to a local JSONL store (shared with claude-code-statusline). ccpace learns your weekday burn signature (EWMA, 14-day half-life) and projects where the week lands. Under 3 days of history it says nothing rather than guessing.
what it does not do
- No inference, no writes to your account. One exception, stated plainly: expired tokens are refreshed via the official OAuth flow and written back to the credentials file — the same thing Claude Code does.
- No guarantees: it reads the same undocumented endpoints the Claude Code CLI uses. Anthropic can change them any release.
- No cost invoices: percentages of your quota, not dollars.
- No cloud: samples stay in
~/.claude/statusline/on your machine. Notifications go only where you point them. - Not affiliated with Anthropic.