ccpace
Pace your Claude quota. Multi-account usage monitor for Claude subscriptions: real utilization from the official usage endpoint — not estimates from transcripts — a countable 5h-window budget, weekday forecasts learned from your own history, and push notifications.
── [20x] work · period ends ~Aug 11 ────────────────────────────────
5h 7% █▒░░░░░░░░ 3h 48m @19:00 0.3x
7d 3% █░░░░░░░░░ 6d 8h @Thu 13 00:00 0.3x
fable 3% █░░░░░░░░░ 6d 8h @Thu 13 00:00 0.3x
··▁▮▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫┤
budget: ~24 windows left · 4.0%/window stays even · period ends ~Aug 11
forecast: +38% rest of week on your pattern · lands ~41% (12d history)
Install
uvx ccpace # one glance, all discovered accounts
uvx ccpace --watch # live TUI: r=refresh, q=quit
Or grab 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 inside Claude Code):
/plugin marketplace add thevibeworks/ccpace
/plugin install ccpace@ccpace
Requires uv and a Claude subscription
you are logged into (claude login); credentials are discovered from
~/.claude/.credentials*.json. Multiple credential files = fleet view,
sorted by tier.
What it shows
- One block per account: 5h window, 7d window, per-model caps, extra usage spend, prepaid credit balance when nonzero.
- Dual bars merge usage with window-elapsed time:
█both passed,▓usage ahead (hot),▒time ahead (headroom),░untouched. - The window ledger: the 7d period as its 5h windows, one cell each.
▁▂▃▄▅▆▇█what a window burned (from your sample history),·idle,░unknown,▮now,▫ahead,×won't be covered at current pace,┤access ends there. Cells right of▮are countable — they equal the advisor's "windows left". - The advisor: pace warnings (
!), budget per remaining window, and a weekday forecast once it has 3+ days of your history. - Budget math truncates at the subscription period end (derived from
the billing anniversary — the API exposes no cancel/renew date, so
the boundary is assumed and marked with
~).
Notifications
System notifications (macOS/Linux) fire on threshold, quota-full, pace, and reset events. Add push channels:
ccpace --watch --ntfy https://ntfy.sh/your-topic
ccpace --watch --bark https://api.day.app/YOUR_KEY
ccpace --watch --notifier ~/bin/my-hook.sh # JSON on stdin
Env: CCPACE_NTFY, CCPACE_BARK, CCPACE_NOTIFIER, CCPACE_INTERVAL,
CCPACE_THRESHOLD, CCPACE_TZ (e.g. America/New_York,Asia/Tokyo).
Data
Samples append to a shared store compatible with
claude-code-statusline
(~/.claude/statusline/accounts/<alias>/usage.jsonl): both tools feed
one history, so the ledger and forecasts get richer whichever tool you
run. Contract in docs/data.md. --no-log disables
writing; CCPACE_DATA_DIR relocates the store.
Honest caveats
- Uses the same undocumented OAuth endpoints as the Claude Code CLI, read-only, against your own account. Anthropic can change or gate them at any release; expect breakage, report it, don't build a business on it.
- One deliberate write: expired tokens are refreshed via the official OAuth flow and written back to the credentials file — the same thing Claude Code does on your behalf.
- Polling is deliberately polite: 15 min default interval with jitter, minimum 60 s, exponential backoff on errors, no polling of accounts pinned at 100%.
- Forecasts are your own history extrapolated, not a promise. Below 3 days of samples the forecast stays silent instead of guessing.
- Not affiliated with Anthropic.
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ccpace-0.1.0.tar.gz.
File metadata
- Download URL: ccpace-0.1.0.tar.gz
- Upload date:
- Size: 35.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f8451391237d7ef68e6a37d901d01cd36634372396581117db743f6e427dd42
|
|
| MD5 |
d7755bf945b4c91663d458dc663e553b
|
|
| BLAKE2b-256 |
a0f8b4aa53b0160d4eb99f94eec221e89327177aadb58fde7fd25aff50eb2231
|
File details
Details for the file ccpace-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ccpace-0.1.0-py3-none-any.whl
- Upload date:
- Size: 34.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4da793888a3402406e04532ba5560b9d500b4f200a372743e11bccabce0f3937
|
|
| MD5 |
86417b82ab40f650ca0042c49dfeb55d
|
|
| BLAKE2b-256 |
06cc0ecbae0d93aab9b859a8b098dfbd5a288210cab2274289f0b95c34573f88
|