Track every AI subscription, quota, and cost β right from your macOS menu bar.
UsageBar is a lightweight macOS menu bar app that aggregates usage data from 13+ AI providers into a single dashboard. It auto-discovers credentials from OpenCode, standalone CLI tools, macOS Keychain, editor configs, and browser cookies β zero manual setup required.
brew install --cask SHLE1/tap/usage-barDownload the latest .dmg from the Releases page, open it, and drag UsageBar to your Applications folder.
UsageBar can check for new versions from the menu via Check for Updates.... Releases are currently unsigned, so update checks point to the GitHub release page for manual installation instead of replacing the app automatically. macOS Gatekeeper may require manual approval after installing an update:
xattr -cr "/Applications/UsageBar.app"All your AI providers in one menu bar dropdown β pay-as-you-go costs and quota-based remaining percentages at a glance.
βββββββββββββββββββββββββββββ
Pay-as-you-go: $37.61
OpenRouter $37.42 βΈ
OpenCode $0.19 βΈ
βββββββββββββββββββββββββββββ
Quota Status: $219/m
Copilot (0%) βΈ
Claude: 0%, 100% βΈ
Kimi for Coding: 0%, 51% βΈ
ChatGPT (100%) βΈ
Gemini CLI #1 (100%) βΈ
βββββββββββββββββββββββββββββ
Predicted EOM: $451
βββββββββββββββββββββββββββββ
Refresh (βR)
Check for Updates... (βU)
Settings... (β,)
Share Usage Snapshot...
βββββββββββββββββββββββββββββ
UsageBar v0.2.1
Quit (βQ)
UsageBar automatically finds and authenticates with your AI providers:
- OpenCode auth β Primary source (
auth.jsonwith XDG multi-path fallback) - Standalone tools β Codex CLI, Claude Code CLI, GitHub CLI, GitHub Copilot CLI
- macOS Keychain β Claude, GitHub Copilot OAuth tokens
- Editor configs β VS Code / Cursor Copilot settings
- Browser cookies β Chrome, Brave, Arc, Edge (GitHub Copilot only)
- OpenCode plugins β Multi-account support for ChatGPT, Antigravity, Gemini, Claude
- UsageBar-managed Codex accounts β Add the current official
codexlogin manually and keep multiple ChatGPT accounts inside UsageBar
Multi-source accounts are automatically deduplicated by email.
| Provider | Key Metrics |
|---|---|
| OpenRouter | Credits balance, daily/weekly/monthly cost |
| OpenCode | Session-based cost summary |
| GitHub Copilot Add-on | Overage charges beyond included Copilot quota |
| Provider | Key Metrics |
|---|---|
| GitHub Copilot | Multi-account, daily history, overage tracking |
| Claude | 5h / 7d windows, Sonnet / Opus breakdown |
| ChatGPT | Primary / Secondary quotas, plan type |
| Kimi for Coding | 5h / 7d windows, membership level |
| Gemini CLI | Per-model quotas, multi-account with email labels |
| Antigravity | Offline cache parsing (state.vscdb) |
| MiniMax Coding Plan | 5h / weekly dual-window quotas |
| Z.AI Coding Plan | Token / MCP quotas, tool usage (24h) |
| Nano-GPT | Weekly input token quota, USD / NANO balance |
| Chutes AI | Daily quota limits, credits balance |
| Synthetic | 5h usage limit, request limits |
Note: ChatGPT uses the raw provider ID
codexin CLI commands (e.g.,usagebar provider codex).
- Pace indicator β On track, slightly fast, or too fast
- Predicted EOM β Weighted-average estimate of end-of-month cost
- Wait time β Countdown until quota resets when exhausted (format:
1d 5h,3h, or45m)
Set your subscription tier per provider (preset or custom monthly cost). The Quota Status header shows the combined monthly total, and outdated saved settings can be cleared with a localized confirmation.
| Tab | Contents |
|---|---|
| General | Auto Refresh (1 min β 1 hr), Prediction Period (7 / 14 / 21 days), App Language (System / EN / δΈζ), Launch at Login, Critical Badge, Privacy Mode for screenshot-safe account masking, CLI Install, native-first primary action buttons |
| Status Bar | A lighter native macOS preview group, draggable provider ordering, per-provider visibility toggles, edge-to-edge provider cards, disabled items move to the top of the disabled group to reduce layout jumps, a concise quota-only status bar note, preview/menu order follows the Status Bar provider list, Copilot Add-on toggle |
| Advanced Providers | ChatGPT: save the current codex login into UsageBar (Keychain-backed), remove saved accounts, account selection, status bar window mode (5h / weekly / both) |
| Subscriptions | Native macOS menu pickers for preset plans or custom monthly cost per quota-based provider, localized outdated-setting cleanup, native-first Apply button styling, and provider icons for faster scanning |
The macOS status bar can display a compact row of quota-based provider icons with remaining percentages. Configure which providers appear via Settings > Status Bar. When a selected provider has a temporary fetch error, its icon stays visible with an error marker and the menu shows the error details.
Use Check for Updates... from the menu to download new GitHub Releases through Sparkle. Until UsageBar has an Apple Developer certificate, update downloads remain unsigned and may still require the Gatekeeper command shown above.
A bundled command-line tool for scripting and automation:
usagebar status # All providers (table)
usagebar status --json # All providers (JSON)
usagebar list # List configured providers
usagebar provider claude # Detailed info for one providerTable output example
$ usagebar status
Provider Type Usage Key Metrics
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Claude Quota-based 77% 23/100 remaining
ChatGPT Quota-based 0% 100/100 remaining
Copilot (user1) Quota-based 45% 550/1000 remaining
Copilot (user2) Quota-based 12% 880/1000 remaining
Gemini CLI (user@gmail.com) Quota-based 0% 100% remaining
Kimi for Coding Quota-based 26% 74/100 remaining
MiniMax Coding Plan Quota-based 0%, 0% 100/100 remaining
OpenCode Pay-as-you-go - $0.19 spent
OpenRouter Pay-as-you-go - $37.42 spent
JSON output example
{
"claude": {
"type": "quota-based",
"remaining": 23,
"entitlement": 100,
"usagePercentage": 77,
"overagePermitted": false
},
"copilot": {
"type": "quota-based",
"remaining": 1430,
"entitlement": 2000,
"usagePercentage": 28,
"overagePermitted": true,
"accounts": [
{
"index": 0,
"login": "user1",
"authSource": "opencode",
"remaining": 550,
"entitlement": 1000,
"usagePercentage": 45,
"overagePermitted": true
}
]
},
"openrouter": {
"type": "pay-as-you-go",
"cost": 37.42
}
}Exit Codes: 0 Success Β· 1 General error Β· 2 Auth failed Β· 3 Network error Β· 4 Invalid arguments
Install the CLI from Settings > General > Command Line Tool, or run bash scripts/install-cli.sh manually.
- Token Discovery β Reads auth tokens from OpenCode
auth.json(XDG multi-path), Keychain, editor configs, browser cookies, and plugin metadata - Account Deduplication β Merges multi-source accounts using a stable email-first key strategy
- Parallel Fetching β Queries all provider APIs simultaneously via Swift
TaskGroupwith configurable timeouts (default 30s) - Smart Caching β Falls back to cached data on network errors; daily history uses hybrid cache (fresh for recent days, cached for older)
- Graceful Degradation β Shows available providers even when some fail; multi-account providers support partial success
- 100% Local β No data leaves your machine, no third-party analytics
- Read-only β Uses existing tokens only, requests no additional permissions
- Direct API β Queries provider APIs without intermediaries
- Browser cookies β GitHub Copilot optionally reads session cookies (read-only, never stored)
"No providers found"
Verify OpenCode is installed and authenticated. The app searches for auth.json in:
$XDG_DATA_HOME/opencode/auth.json(ifXDG_DATA_HOMEis set)~/.local/share/opencode/auth.json(default)~/Library/Application Support/opencode/auth.json(macOS fallback)
For ChatGPT account discovery, the app checks (in priority order):
- UsageBar Codex Accounts β Stored via Settings β Advanced Providers β Codex β Save Current Login
- OpenCode auth β
auth.jsonwithopenaiprovider entry - OpenCode multi-auth β
~/.opencode/auth/openai.json - OpenCode legacy β
~/.opencode/openai-codex-accounts.jsonand~/.opencode/projects/*/openai-codex-accounts.json codex-lbβ~/.codex-lb/store.db+~/.codex-lb/encryption.key- Official Codex login β
~/.codex/auth.json
To keep multiple ChatGPT accounts in UsageBar, sign in with the official codex CLI first, then add the current account from Settings β Advanced Providers β Codex. UsageBar stores those accounts locally and refreshes them without changing ~/.codex/auth.json.
GitHub Copilot not showing
Copilot accounts are discovered from (in priority order):
- OpenCode auth β
copilotentry inauth.json - Copilot CLI Keychain β macOS Keychain entries for
copilot-cli - GitHub CLI Keychain β macOS Keychain entry for
gh:github.com - VS Code / Cursor β
~/.config/github-copilot/hosts.jsonandapps.json - Browser Cookies β Chrome, Brave, Arc, Edge session cookies
Accounts with the same login are automatically merged. Run usagebar provider copilot to verify detected sources.
OpenCode binary not found
The app dynamically searches for the opencode binary:
- Current PATH (
which opencode) - Login shell PATH
- Common install locations:
~/.opencode/bin/opencode, Homebrew paths,/usr/local/bin/opencode
- macOS 13.0+
- Xcode 15.0+
git clone https://github.com/SHLE1/usage-bar.git
cd usage-bar
make setup # Configure git hooks (SwiftLint + action-validator)# Build
xcodebuild -project UsageBar/UsageBar.xcodeproj \
-scheme UsageBar -configuration Debug build
# Run (auto-detect build path)
open "$(xcodebuild -project UsageBar/UsageBar.xcodeproj \
-scheme UsageBar -configuration Debug -showBuildSettings 2>/dev/null \
| sed -n 's/^[[:space:]]*BUILT_PRODUCTS_DIR = //p' | head -n 1)/UsageBar.app"Or use the VS Code task "Debug: Kill + Build + Run" for a one-click workflow.
make lint # Run all linters
make lint-swift # SwiftLint only
make lint-actions # GitHub Actions YAML validation onlyContributions are welcome! Please submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature) - Run
make setup(once, after clone) - Make your changes and commit β pre-commit hooks run automatically
- Push and open a Pull Request
MIT License β see LICENSE for details.
Built for AI power users who keep one eye on usage


