A tiny macOS overlay that sits under the notch and shows your current AI usage across providers. Hover the top-center of the screen, or click the gauge in the menu bar.
Free and open source (MIT). No accounts, no server, no telemetry.
Download the .dmg for your Mac from the
latest release
(aarch64 for Apple Silicon, x86_64 for Intel), open it, and drag Usage
to Applications.
Until releases are signed with an Apple Developer ID, macOS may say the app is damaged or from an unidentified developer. Clear the quarantine flag once and it will open normally:
xattr -d com.apple.quarantine /Applications/Usage.app
Coming with the first tagged release (brew install --cask vancuren/tap/usage).
npm install
npm run tauri dev # run
npm run tauri build # .app + .dmg in src-tauri/target/release/bundle/Requires Node 20+, Rust stable, and Xcode command line tools.
- Launch Usage. It lives in the menu bar (no Dock icon).
- Hover the notch, or click the gauge icon, to open the panel.
- Open Settings from the gear or the menu. Done, the back arrow, or Escape return to the overview.
- Click Connect on a provider. If that product is already signed in on this Mac, Usage reads those credentials and starts polling. If not, the row tells you what to sign in to.
Click a provider row for that product's own windows (Claude: session + weekly, Antigravity: per model, and so on).
| Provider | Where usage comes from | What the overview bar shows |
|---|---|---|
| Claude | Claude Code's login (Keychain item Claude Code-credentials, read via security so it never prompts; else ~/.claude/.credentials.json). Falls back to the usage Claude Code last cached in ~/.claude.json. Never refreshes Claude Code's token. |
Weekly across all models |
| ChatGPT | Codex CLI login (~/.codex/auth.json) |
Weekly window (5-hour in detail when the plan reports one) |
| Antigravity | The local language server Antigravity runs while open (127.0.0.1 only) | Most-used model's weekly quota |
| Cursor | Cursor's local state.vscdb (opened read-only, never copied) |
Included plan usage |
| Copilot | gh CLI |
Premium requests |
| Perplexity | Coming soon | — |
Several of these are the same unofficial endpoints the official apps call. They can change. Usage fails closed: no fake 0%, just an error on that row.
- Usage only reads credentials that the provider's own app already stores on your Mac, and only sends each one to that provider.
- Nothing is uploaded anywhere else. There is no analytics or crash reporting.
- The only file Usage writes is
state.jsonin its app-data folder, listing which providers you connected. - Disconnecting a provider stops polling and forgets it.
See SECURITY.md to report a problem.
- Bugs and ideas: open an issue or start a discussion. Settings → Send feedback takes you there.
- If Usage is useful to you, you can sponsor the project — it's free either way.
See CONTRIBUTING.md for setup, checks, and how to add a provider. Windows is a follow-on; the provider layer is already OS-agnostic.
Releases are built by the Release workflow. To sign and notarize, set these
repository secrets: APPLE_CERTIFICATE, APPLE_CERTIFICATE_PASSWORD,
APPLE_SIGNING_IDENTITY, APPLE_ID, APPLE_PASSWORD, APPLE_TEAM_ID.
MIT © Russell Van Curen. Claude, ChatGPT, Antigravity, Cursor, GitHub Copilot, and Perplexity are trademarks of their respective owners; this project is not affiliated with or endorsed by any of them.
