Your Claude Code quota, always on, in the VSCode status bar. Real 5-hour & weekly limits · reset countdown · cost — plus a mission-control details panel.
Why
Claude Code's 5-hour and weekly limits live behind the /usage command — you have to stop and ask. Claude Quota keeps them on screen all the time:
◆ 5h 29% · 7d 26% · 2h28m · $6586
5-hour limit · weekly limit · time until the 5h window resets · spend
The badge color tracks the higher of your two real utilizations — green, amber near the cap, red when you're about to hit it. Click it for the full panel above.
Features
- 🎯 Real numbers, not guesses. The 5h + weekly utilization and reset times come from Claude's own usage endpoint — they match the claude.ai site exactly, including the weekly limit.
- ⏱ Reset countdown for the 5-hour window, always visible.
- 📊 Mission-control panel — ring gauges for 5h + weekly, extra-usage credits, today/week/month spend, active-window telemetry, and a 7-day sparkline.
- 💸 Cost computed locally with
ccusage(notional API-equivalent — handy as a volume gauge). Cache tokens excluded from headline numbers. - 🔌 Works offline too. If the usage API is unreachable, the reset is recomputed from your local transcripts (matches the site to ~1 min).
- 🔒 Private by design. No telemetry. The only network call is to Anthropic's own API, with your own token.
- 🎨 Theme-native. Adapts to any VSCode light/dark theme; respects reduced-motion.
Install
From the Marketplace (once published) Search “Claude Quota” in the Extensions view, or:
ext install andrewaltair.claude-quota
From a .vsix
Grab the latest from Releases → Extensions view → ⋯ → Install from VSIX… → reload.
From source
git clone https://github.com/andrewaltair/CLAUDE_QUOTA.git
cd CLAUDE_QUOTA
npm install
npm run package # -> claude-quota-x.y.z.vsix
How it works
| Number | Source | Exact? |
|---|---|---|
| 5h % + reset, weekly % + reset, extra-usage | Claude usage API (GET /api/oauth/usage) — same as /usage & the site |
✅ exact |
| Cost (today / week / month / window) | local transcripts via ccusage |
≈ notional API-equivalent |
| Reset (fallback, API offline) | local transcripts, no hour-rounding | ≈ ±1 min |
Your OAuth token is read locally from ~/.claude/.credentials.json and sent only to api.anthropic.com over HTTPS — never logged, never stored, never sent anywhere else. Prefer zero network? Set claudeQuota.useServerApi: false for a local-only estimate.
Settings
| Setting | Default | Description |
|---|---|---|
claudeQuota.useServerApi |
true |
Use Claude's usage API for the real reset/utilization. Off = local-only estimate (no token, no network). |
claudeQuota.costScope |
month |
Which $ shows on the badge: window · today · week · month. |
claudeQuota.refreshIntervalSeconds |
60 |
How often the badge refreshes (clock + cost, local). |
claudeQuota.usageApiIntervalSeconds |
180 |
How often the real limits are fetched. Kept slower than the badge because the endpoint is rate-limited; the % is cached and the clock keeps ticking between fetches. |
claudeQuota.claudeConfigDir |
(auto) | Override ~/.claude (sets CLAUDE_CONFIG_DIR for ccusage). |
Commands (⇧⌘P / Ctrl+Shift+P): Claude Quota: Refresh Now · Open Details Panel · Set Cost Scope.
Requirements
- A logged-in Claude Code (
~/.claude/.credentials.json) for the real-API numbers — without it the badge falls back to the local estimate. - Node.js on your PATH (used to run the bundled ccusage CLI for cost).
- Some usage history under
~/.claude/projects/.
FAQ
Does it cost me anything / count against my quota? No. The usage endpoint is a read; ccusage just parses local files.
Is the $ real money? No — Claude Max is a flat subscription. The $ is the API-equivalent value of your tokens, a useful load/volume gauge.
Why was an early build showing the wrong reset? Pure-local tools bucket messages into 5-hour blocks floored to the hour, which can be ~1h off. This extension reads the real reset from the API (with a no-floor local fallback), so it matches the site.
Privacy
No analytics, no third-party servers. One outbound request: Anthropic's /api/oauth/usage, authorized by the token Claude Code already stored on your machine. Turn it off entirely with useServerApi: false.
Contributing
PRs welcome — see CONTRIBUTING.md. Run npm run smoke to see the real numbers from your data without launching VSCode.
License
MIT © Andrew Altair