How it works
ClaudeMeter reads the same numbers claude.ai/settings/usage shows you, using your existing session, and renders them in the menu bar.
The short version
- Browser extension observes that you are signed into claude.ai.
- The extension forwards the session token over a local IPC socket to the menu bar app.
- The menu bar app calls the internal usage endpoint Anthropic already serves to its own Settings page.
- Numbers render in the popover. Nothing leaves your machine except the request to claude.ai itself.
Why server-truth
Tools like ccusage estimate Claude Code spend by reading ~/.claude/projects JSONL files. That is useful for token accounting, but those tokens are not the quota Anthropic enforces on your subscription. Anthropic decides when to cut you off based on a server-side rolling window and a weekly budget. The only place that exact number appears is the Settings → Usage page, which has no documented API.
ClaudeMeter reads the exact same JSON payload the Settings page renders. That is why the percentages match, and it is why local-log-based tools sometimes report 5% used while Anthropic says you are rate-limited: they are measuring different things.
What the browser extension does
- Detects a logged-in claude.ai tab.
- Reads the session cookie from the claude.ai origin (same-origin script, no cross-site access).
- Sends the cookie over a localhost-only WebSocket to the menu bar app.
- Does not send, store, or log anything to any other server.
If you prefer not to install the extension, you can paste the session cookie manually from DevTools. The extension exists because that workflow is miserable and is the number-one complaint about competing tools.
What the menu bar app does
- Polls the internal usage endpoint once per minute by default (configurable).
- Caches the last successful response so the popover stays responsive offline.
- Renders a small Rust/SwiftUI popover with the three numbers and their reset times.
- Exposes a CLI (
claude-meter status) that prints the same numbers as JSON, for tmux/Starship status lines.
What leaves your machine
One HTTPS request per minute to claude.ai, using your own session cookie. That is it. There is no analytics beacon, no crash reporter, no telemetry. The source is on GitHub if you want to verify:
Caveat
The usage endpoint is internal and undocumented. Anthropic can change or remove it at any time, in which case ClaudeMeter will show stale numbers until we ship a patch. Subscribe to the GitHub releases feed to hear about these patches early.