macOS 14+ · Native SwiftUI · No Electron
Every AI coding limit,
in your menu bar.
Live usage percentages, reset countdowns and threshold alerts for the AI coding tools you already pay for. Read-only by design — it reuses your existing CLI logins and never stores a token.
v0.1.0 · macOS arm64
Interface mock-up rendered in CSS
Features
Features
Small surface, thoughtful behavior.
Live menu bar
Four display modes: icon only, combined highest usage, per-provider, or critical-only. Monospaced digits so the number never jitters.
Warning thresholds
Set warning and critical percentages. Cards, bars and the menu bar shift from provider color to amber to red.
Reset countdowns
Every window shows when it resets — relative by default with the exact time one hover away.
Codex account switching
Register multiple Codex homes and swap the live one from Settings. Only folders move; credentials are never touched.
Honest stale states
Failures keep your last good snapshot, clearly labeled stale with the error — never a silent zero.
Launch at login
Starts with your Mac and refreshes on a schedule you choose: 1 to 15 minutes, or manual only.
Providers
Providers
One monitor, every quota that matters. Each integration reads the login you already have.
Claude Code
Session, weekly and model-scoped windows plus usage credits. Reads CLAUDE_CODE_OAUTH_TOKEN, ~/.claude credentials or the login Keychain item.
Codex
5-hour and weekly rate limits with resets. Spawns the Codex CLI you installed; supports multiple homes with one-click folder-swap switching.
Cursor
Reads Cursor.app’s signed-in session from its local database without modifying it. Optional cursor.com cookie fallback in Keychain.
Copilot
Connect your GitHub account with device authorization. The token lives in Keychain, never in the app.
OpenCode
Paste a dashboard Cookie header once; only OpenCode auth cookies are kept in Keychain.
Privacy
Privacy
Read-only by design. Nothing leaves your Mac.
| Providers | Privacy |
|---|---|
| Claude Code | OAuth token from env, ~/.claude, or login Keychain. Read, never written or cached. |
| Codex | Local app-server protocol. Auth files are never opened by the app. |
| Cursor | Local session database opened read-only. Optional cookie lives in Keychain. |
| Copilot | GitHub device-flow token in Keychain. |
| OpenCode | Dashboard session cookies in Keychain. |
- No passwords or tokens in preferences, logs, screenshots or the app bundle.
- Provider endpoints are unofficial and may change — the app degrades to clear unavailable states.
- Snapshots cached locally under ~/Library/Application Support/AIUsage; credentials never cached.
Install
Install
Build from source in under a minute. Requires macOS 14+ and Swift 6. Sign in to each provider CLI first.
1.Clone the repository
git clone https://github.com/thienle99-dev/ai-usage.git2.Build the app bundle
cd ai-usage && ./scripts/package-app.sh3.Open it and enable providers in Settings
open dist/"AI Usage Monitor.app"
Prefer binaries? Tagged releases attach a signed .app under Releases.
FAQ
FAQ
Does it store my tokens?
No. It reads the logins your CLIs already created, keeps nothing credential-like in preferences or logs, and never writes back to provider files (Codex account switching only moves folders).
Why is my data marked stale?
A refresh failed — network, expired auth, or a changed endpoint. The last good snapshot stays visible with its age and the error, and the next scheduled refresh retries automatically.
How do I switch Codex accounts?
Register each Codex home folder once in Settings → Providers → Codex homes, then press “Make active”. The app swaps the folders into ~/.codex and refreshes.
The numbers disagree with my CLI. Why?
Provider endpoints are unofficial and evolve. Usage windows, scopes and reset semantics can differ between the OAuth/API view and the CLI view. Unknown payloads show as unavailable rather than guessed.
Which macOS versions work?
macOS Sonoma (14) and later, Apple Silicon and Intel.