Will your Claude Code quota last?Your menu bar now answers.
CCQuota shows the 5-hour window and weekly limits for the Claude Code CLI, and works out tokens — cache tiers included — and cost from your own logs. If the current pace reaches the limit before the reset, it says so ahead of time.
Built for Claude Code CLI
CCQuota lines up your current burn rate against the time left in the window and shows which one runs out first — the quota or the window.
That is what matters in the middle of a long task, with the work still unfinished.
Menu bar showing 62% with a red upward arrow next to it. Below, the 5-hour window at 62% used, its bar continued by a faint tail all the way to the limit, captioned “↗ Limit at 16:04”, resetting in 1 hour 12 minutes. Below that, the weekly limit for all models at 41% used, its tail stopping at about 58%, captioned “~58% at reset”, resetting in 3 days 12 hours.
Not how much you've used.When you run out.
CCQuota keeps a history of your own usage and measures how fast it is growing over the last hours. When that rate reaches 100% before the window resets, the bar continues as a faint tail to the limit and the row reads ↗ Limit at 16:04. At the same moment the menu bar adds a red arrow next to the percentage, so you see it without opening anything. Otherwise the row reads ~58% at reset, or ~58% at this pace when the projection stops before the reset. A forecast appears once there are at least three samples and the history covers 5% of the window — about fifteen minutes for the 5-hour one, several hours for the weekly.
Calculated from your local logs.
CCQuota reads the JSONL files Claude Code already writes to ~/.claude/projects/ and computes token usage with cache-aware breakdowns — read, write 5m, write 1h — using each model's current public pricing.
Cache reads, five-minute cache writes and one-hour cache writes are billed at three different rates — a cache read costs a tenth of an input token — so CCQuota prices each of them separately, per model, instead of folding them into one number.
A scale from 0 to 100 with two movable marks: Warning at 50 percent, Critical at 80. Under it, a macOS notification titled “Session at 80%” reading “At this pace you hit the limit at 14:32 — reset is at 16:12.” Under that, the Alerts tab of Settings with the same two values as steppers and the notification switches — Session, Weekly (all), Weekly per-model, When session resets.
You pick the numbersthat mean “slow down”.
Two levels, Warning and Critical, set the colour of the percentage in the menu bar and of every bar in the popover, and the moment macOS puts a banner on your screen. They start at 50% and 80%; Warning goes down to 1, Critical up to 99, and Warning always stays below Critical. One notification per crossing — cross 30% to 85% in one refresh and you get Critical only. It does not repeat while usage stays above the level, and it re-arms when the window resets or usage drops 3 points below. The banners come from macOS itself, on your Mac; there is no push service. The master switch in Settings › Alerts turns all of it off.
And a widget for service status.
Pin a desktop widget to see if api.anthropic.com, claude.ai, and Claude Code are operational. Updates every 30 minutes, or every 10 while an incident is open, from the official status page.
What happens locally,stays locally.
CCQuota doesn't ask you to sign in to Claude.ai. It doesn't proxy your account through a server. There is no server. The app reads files Claude Code already wrote and shows you the numbers.
One authenticated GET request to api.anthropic.com/api/oauth/usage, its Authorization header taken from the macOS Keychain, and the limits array that comes back: session at 62 percent, weekly_all at 41 percent, weekly_scoped for fable at 71 percent.
The same numbersClaude Code sees.
The percentages are not guessed from your logs. CCQuota asks api.anthropic.com/api/oauth/usage — the endpoint the CLI itself calls — with the token Claude Code already keeps in your Keychain, and shows what comes back: the 5-hour window, the weekly limit, and the per-model weekly limits the API reports. Nothing is scraped from a web page, so there is no layout to break and no session to expire. When the API returns something unexpected, CCQuota keeps the last good numbers and marks them stale instead of showing a zero.
Questions.
No. CCQuota is built for the Claude Code CLI: it reads the quota the CLI itself reports and the transcripts Claude Code writes on your Mac. It never logs in to Claude.ai and does not watch the web chat.
No. CCQuota reads your existing Claude Code OAuth token from the macOS Keychain — the same one claude uses. If you have Claude Code installed, you're already set up.
Three things: quota requests to api.anthropic.com using your existing token, Claude service status from status.claude.com, and a daily update check on dl.ccquota.app — it downloads a signed release feed and sends nothing about you. Your local token counts never leave the machine. Threshold notifications are generated locally by macOS; no push service is involved.
Token counts come from the JSONL files in ~/.claude/projects/. We multiply by each model's current public pricing — Opus, Sonnet and Fable — including the three cache tiers and fast mode rates. It's an estimate; your actual Anthropic invoice is the source of truth.
Once there are at least three samples and the stored history covers 5% of the window — about fifteen minutes for the 5-hour window, several hours for the weekly one. Until then CCQuota shows no forecast at all rather than a number it cannot support.
Every 5 minutes by default, and the interval is adjustable from 100 to 3600 seconds. Opening the popover also refreshes the data when the last successful refresh is older than 30 seconds. The 100-second floor exists because the quota endpoint starts answering 429 at shorter intervals.
App Store sandboxing forbids reading other apps' files. CCQuota needs ~/.claude/ access to compute token usage accurately. We chose accuracy over distribution channel.
Yes. HTTPS proxy with optional auth is configurable in settings.
Automatically. CCQuota checks a signed release feed on dl.ccquota.app once a day and offers a one-click update — every build is EdDSA-signed and notarized by Apple. You can also check manually from Settings.