A macOS menu bar application that monitors AI coding assistant usage quotas. Keep track of your Claude, Codex, Antigravity ,and Gemini usage at a glance.
1,478
stars
971
commits
Swift
primary language
Sep 10, 2026
updated
A macOS menu bar application that monitors AI coding assistant usage quotas in real time. Keep track of your Claude, OpenAI Codex, Google Gemini, GitHub Copilot, Google Antigravity, Cursor, AWS Bedrock, AWS Kiro, Kimi, DeepSeek, Mistral, MiniMax, Alibaba Coding Plan, Z.ai, Amp Code, OpenCode Go, Oh My Pi, Grok Build, and Vercel at a glance.
Featuring full MacBook Touch Bar integration with persistent, centered multi-provider quota gauges, MacBook Notch Live Activity, Multi-Account Switching, and Raycast-style User Extensions.
![]() Dark Mode | ![]() Light Mode |
![]() CLI Theme | ![]() Christmas Theme |
ClaudeBar supports seamless Multi-Account Switching for providers that support multiple logins (e.g. personal, work, client accounts). Configure multiple credentials in Settings > Providers, and quickly switch between them using the dedicated account selector dropdown.
Each provider displays separate progress bars for multiple quota windows—for example, tracking your 5-hour session quota and 7-day weekly quota simultaneously with dedicated countdown timers.
Every quota is tracked in real time and color-coded based on remaining capacity:
| Remaining | Status | Color | Description |
|---|---|---|---|
| > 50% | Healthy | Blue / Green | Ample quota available |
| 20-50% | Warning | Yellow / Amber | Approaching usage threshold or accelerated burn rate |
| < 20% | Critical | Red | Low quota remaining; alerts triggered |
| 0% | Depleted | Gray | Quota exhausted |
Some companies support ClaudeBar's open source development through GitHub Sponsors. We'd like to give a special mention to the following sponsors:
|
| TestMu AI (formerly LambdaTest) is the world's first full-stack agentic AI quality engineering platform, trusted by 18,000+ enterprises. |
Editorial independence: Sponsorship does not influence which providers ClaudeBar supports, how they are ordered in the app, or how their quota data is reported.
⌘D (Dashboard) and ⌘R (Refresh)[!TIP] You can also enable Burn Rate Warnings in Settings > General to trigger alerts based on your real-time consumption velocity against remaining time rather than fixed percentage cutoffs.
ClaudeBar features native, system-wide Touch Bar integration for MacBook Pro models equipped with an Apple Touch Bar (including M1/M2 and Intel). This runs 100% natively inside ClaudeBar—requiring zero third-party apps (no BetterTouchTool or MTMR required) and no special accessibility permissions.
placement: 0): Uses macOS system-modal function bar presentation. The widget remains persistently visible across all full-screen windows and apps, automatically re-asserting on app switching and system unlock while keeping your system Escape key and Control Strip media/volume controls intact.[Logo] Gemini 40% | [Logo] Claude 0%).!) when quota is critical (≥ 90%).2:15, 35m, 3d).claudebar://open).[!TIP] For detailed architecture, Touch Bar configuration, and customization details, see the Full Touch Bar Guide.
ClaudeBar can render Claude Code's session and quota state directly in your MacBook notch (Settings > General > Notch Live Activity):
[!NOTE] Read the complete documentation at docs/features/notch-live-activity.md.
claude) or direct OAuth API modecodex) or ChatGPT backend API modegemini CLIkiro-cli via uv tool install kiro-clikimi CLI mode (recommended) or API cookie modeamp CLI is installedomp usage --json~/.claudebar/extensions/Kimi supports two probe modes, configurable in Settings > Kimi Configuration:
kimi and executes /usage. Requires uv tool install kimi-cli or pip install kimi-cli. No Full Disk Access required.KIMI_AUTH_TOKEN).Kiro monitors AWS Kiro (formerly CodeWhisperer) usage via kiro-cli.
uv tool install kiro-cli or pip install kiro-clikiro-cli and complete the login prompt (or use Kiro IDE).Monitors daily spend, token counts, and per-model breakdowns via CloudWatch.
us-east-1, us-west-2).Monitors 5-hour session, weekly, and monthly quotas on Alibaba Model Studio / Bailian.
modelstudio.console.alibabacloud.com) or China Mainland (bailian.console.aliyun.com).Automatically detects your active Cursor IDE installation and reads authentication tokens from Cursor's local SQLite database. Displays included requests and on-demand spend.
ClaudeBar supports the claudebar:// URL scheme for quick actions from Raycast, Alfred, Touch Bar widgets, or terminal:
| URL Scheme | Action | CLI Example |
|---|---|---|
claudebar://open | Toggles the ClaudeBar dropdown popover | open claudebar://open |
claudebar://refresh | Triggers immediate quota refresh for all providers | open claudebar://refresh |
claudebar://settings | Opens the ClaudeBar Settings window | open claudebar://settings |
Publishing quota state to your iPhone is optional and off by default. It is configured in Settings > Notify!.
The Live Activity needs an iPhone or iPad ID. Notify! also issues IDs for Macs and browsers, and those keep both widgets perfectly well, but Notify! cannot start a Live Activity on one, so ClaudeBar disables just that switch and says why. A group ID receives notifications but owns no Lock Screen or Home Screen of its own, so it gets none of the three.
All three surfaces can be turned off separately, and you can choose which quota the gauge shows. The Home Screen widget shows the same thing as the Live Activity, and the difference is that it stays: a Live Activity appears while something is happening and then goes away, while the Home Screen widget sits where you put it and always shows the latest state. It needs a recent Notify! app, where you turn it on under Settings > Home Screen Widgets, and you place it yourself through iOS's own widget picker. Notify! can also switch the surface off at its own end while it is still rolling out; ClaudeBar treats that as "not yet", pauses just that widget, and carries on publishing the other two.
Note that this sends provider names, quota window labels and remaining percentages to a third-party service. The device token is stored in the Keychain, not in ~/.claudebar/settings.json. A build you compile yourself is ad-hoc signed and the Keychain refuses it, so on those the token falls back to ClaudeBar's app credentials and the pane says so.
Full details: docs/features/notify.md.
Install via Homebrew:
brew install --cask claudebar
Download the latest release from GitHub Releases:
Both are code-signed and notarized for Gatekeeper.
git clone https://github.com/tddworks/ClaudeBar.git
cd ClaudeBar
# Install Tuist (if not installed)
brew install tuist
# Install dependencies and build
tuist install
tuist build ClaudeBar -C Release
After building, open the generated Xcode workspace and run the app:
tuist generate
open ClaudeBar.xcworkspace
Then press Cmd+R in Xcode to run. The app will appear in your menu bar. Click to view quota details for each provider.
The project uses Tuist for dependency management and Xcode project generation.
# Install Tuist (if not installed)
brew install tuist
# Install dependencies
tuist install
# Generate Xcode project and open
tuist generate
open ClaudeBar.xcworkspace
# Build the project
tuist build
# Run all tests
tuist test
# Run tests with coverage
tuist test --result-bundle-path TestResults.xcresult -- -enableCodeCoverage YES
# Build release configuration
tuist build ClaudeBar -C Release
After opening in Xcode, SwiftUI previews will work with Cmd+Option+Return. The project is configured with ENABLE_DEBUG_DYLIB for preview support.
Full documentation: docs/architecture/ARCHITECTURE.md
ClaudeBar uses a layered architecture with QuotaMonitor as the single source of truth:
| Layer | Purpose |
|---|---|
| App | SwiftUI views consuming domain directly (no ViewModel) |
| Domain | Rich models, QuotaMonitor, repository protocols |
| Infrastructure | Probes, storage implementations, adapters, drivers |
QuotaMonitor owns all provider stateJSONSettingsRepository)@Mockable protocols enable testabilityMatch ClaudeBar's appearance to your terminal. Import any .itermcolors file:
450+ pre-made schemes available at iTerm2-Color-Schemes.
Imported themes are saved in ~/.claudebar/themes/ and persist across restarts.
Create your own provider monitoring modules by dropping a manifest and script into ~/.claudebar/extensions/. Extensions can define quota grids, daily usage cards, and automated HTTP health checks.
See docs/features/extensions.md for full specification and example implementations.
Use the add-provider skill to guide you through adding new providers with TDD:
Tell Claude Code: "I want to add a new provider for [ProviderName]"
The skill guides you through: Parsing Tests → Probe Tests → Implementation → Registration.
See .claude/skills/add-provider/SKILL.md for details and AntigravityUsageProbe as a reference implementation.
Releases are automated via GitHub Actions. Push a version tag to create a new release.
For detailed setup instructions, see docs/release/RELEASE_SETUP.md.
The workflow uses Tuist to generate the Xcode project:
Tag v1.0.0 → Update Info.plist → tuist generate → xcodebuild → Sign & Notarize → GitHub Release
Version is set in Sources/App/Info.plist and flows through to Sparkle auto-updates.
Configure GitHub Secrets (see full guide):
| Secret | Description |
|---|---|
APPLE_CERTIFICATE_P12 | Developer ID certificate (base64) |
APPLE_CERTIFICATE_PASSWORD | Password for .p12 |
APP_STORE_CONNECT_API_KEY_P8 | API key (base64) |
APP_STORE_CONNECT_KEY_ID | Key ID |
APP_STORE_CONNECT_ISSUER_ID | Issuer ID |
Verify your certificate:
./scripts/verify-p12.sh /path/to/certificate.p12
Create a release:
git tag v1.0.0
git push origin v1.0.0
The workflow will automatically build, sign, notarize, and publish to GitHub Releases.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
To credit someone, comment on any issue or pull request:
@all-contributors please add @username for code, doc
MIT
(top 30 of 40)
Swift
96.6%
Shell
1.9%
HTML
1.3%
A macOS menu bar application that monitors AI coding assistant usage quotas. Keep track of your Claude, Codex, Antigravity ,and Gemini usage at a glance.
1,478
stars
971
commits
Swift
primary language
Sep 10, 2026
updated
A macOS menu bar application that monitors AI coding assistant usage quotas in real time. Keep track of your Claude, OpenAI Codex, Google Gemini, GitHub Copilot, Google Antigravity, Cursor, AWS Bedrock, AWS Kiro, Kimi, DeepSeek, Mistral, MiniMax, Alibaba Coding Plan, Z.ai, Amp Code, OpenCode Go, Oh My Pi, Grok Build, and Vercel at a glance.
Featuring full MacBook Touch Bar integration with persistent, centered multi-provider quota gauges, MacBook Notch Live Activity, Multi-Account Switching, and Raycast-style User Extensions.
![]() Dark Mode | ![]() Light Mode |
![]() CLI Theme | ![]() Christmas Theme |
ClaudeBar supports seamless Multi-Account Switching for providers that support multiple logins (e.g. personal, work, client accounts). Configure multiple credentials in Settings > Providers, and quickly switch between them using the dedicated account selector dropdown.
Each provider displays separate progress bars for multiple quota windows—for example, tracking your 5-hour session quota and 7-day weekly quota simultaneously with dedicated countdown timers.
Every quota is tracked in real time and color-coded based on remaining capacity:
| Remaining | Status | Color | Description |
|---|---|---|---|
| > 50% | Healthy | Blue / Green | Ample quota available |
| 20-50% | Warning | Yellow / Amber | Approaching usage threshold or accelerated burn rate |
| < 20% | Critical | Red | Low quota remaining; alerts triggered |
| 0% | Depleted | Gray | Quota exhausted |
Some companies support ClaudeBar's open source development through GitHub Sponsors. We'd like to give a special mention to the following sponsors:
|
| TestMu AI (formerly LambdaTest) is the world's first full-stack agentic AI quality engineering platform, trusted by 18,000+ enterprises. |
Editorial independence: Sponsorship does not influence which providers ClaudeBar supports, how they are ordered in the app, or how their quota data is reported.
⌘D (Dashboard) and ⌘R (Refresh)[!TIP] You can also enable Burn Rate Warnings in Settings > General to trigger alerts based on your real-time consumption velocity against remaining time rather than fixed percentage cutoffs.
ClaudeBar features native, system-wide Touch Bar integration for MacBook Pro models equipped with an Apple Touch Bar (including M1/M2 and Intel). This runs 100% natively inside ClaudeBar—requiring zero third-party apps (no BetterTouchTool or MTMR required) and no special accessibility permissions.
placement: 0): Uses macOS system-modal function bar presentation. The widget remains persistently visible across all full-screen windows and apps, automatically re-asserting on app switching and system unlock while keeping your system Escape key and Control Strip media/volume controls intact.[Logo] Gemini 40% | [Logo] Claude 0%).!) when quota is critical (≥ 90%).2:15, 35m, 3d).claudebar://open).[!TIP] For detailed architecture, Touch Bar configuration, and customization details, see the Full Touch Bar Guide.
ClaudeBar can render Claude Code's session and quota state directly in your MacBook notch (Settings > General > Notch Live Activity):
[!NOTE] Read the complete documentation at docs/features/notch-live-activity.md.
claude) or direct OAuth API modecodex) or ChatGPT backend API modegemini CLIkiro-cli via uv tool install kiro-clikimi CLI mode (recommended) or API cookie modeamp CLI is installedomp usage --json~/.claudebar/extensions/Kimi supports two probe modes, configurable in Settings > Kimi Configuration:
kimi and executes /usage. Requires uv tool install kimi-cli or pip install kimi-cli. No Full Disk Access required.KIMI_AUTH_TOKEN).Kiro monitors AWS Kiro (formerly CodeWhisperer) usage via kiro-cli.
uv tool install kiro-cli or pip install kiro-clikiro-cli and complete the login prompt (or use Kiro IDE).Monitors daily spend, token counts, and per-model breakdowns via CloudWatch.
us-east-1, us-west-2).Monitors 5-hour session, weekly, and monthly quotas on Alibaba Model Studio / Bailian.
modelstudio.console.alibabacloud.com) or China Mainland (bailian.console.aliyun.com).Automatically detects your active Cursor IDE installation and reads authentication tokens from Cursor's local SQLite database. Displays included requests and on-demand spend.
ClaudeBar supports the claudebar:// URL scheme for quick actions from Raycast, Alfred, Touch Bar widgets, or terminal:
| URL Scheme | Action | CLI Example |
|---|---|---|
claudebar://open | Toggles the ClaudeBar dropdown popover | open claudebar://open |
claudebar://refresh | Triggers immediate quota refresh for all providers | open claudebar://refresh |
claudebar://settings | Opens the ClaudeBar Settings window | open claudebar://settings |
Publishing quota state to your iPhone is optional and off by default. It is configured in Settings > Notify!.
The Live Activity needs an iPhone or iPad ID. Notify! also issues IDs for Macs and browsers, and those keep both widgets perfectly well, but Notify! cannot start a Live Activity on one, so ClaudeBar disables just that switch and says why. A group ID receives notifications but owns no Lock Screen or Home Screen of its own, so it gets none of the three.
All three surfaces can be turned off separately, and you can choose which quota the gauge shows. The Home Screen widget shows the same thing as the Live Activity, and the difference is that it stays: a Live Activity appears while something is happening and then goes away, while the Home Screen widget sits where you put it and always shows the latest state. It needs a recent Notify! app, where you turn it on under Settings > Home Screen Widgets, and you place it yourself through iOS's own widget picker. Notify! can also switch the surface off at its own end while it is still rolling out; ClaudeBar treats that as "not yet", pauses just that widget, and carries on publishing the other two.
Note that this sends provider names, quota window labels and remaining percentages to a third-party service. The device token is stored in the Keychain, not in ~/.claudebar/settings.json. A build you compile yourself is ad-hoc signed and the Keychain refuses it, so on those the token falls back to ClaudeBar's app credentials and the pane says so.
Full details: docs/features/notify.md.
Install via Homebrew:
brew install --cask claudebar
Download the latest release from GitHub Releases:
Both are code-signed and notarized for Gatekeeper.
git clone https://github.com/tddworks/ClaudeBar.git
cd ClaudeBar
# Install Tuist (if not installed)
brew install tuist
# Install dependencies and build
tuist install
tuist build ClaudeBar -C Release
After building, open the generated Xcode workspace and run the app:
tuist generate
open ClaudeBar.xcworkspace
Then press Cmd+R in Xcode to run. The app will appear in your menu bar. Click to view quota details for each provider.
The project uses Tuist for dependency management and Xcode project generation.
# Install Tuist (if not installed)
brew install tuist
# Install dependencies
tuist install
# Generate Xcode project and open
tuist generate
open ClaudeBar.xcworkspace
# Build the project
tuist build
# Run all tests
tuist test
# Run tests with coverage
tuist test --result-bundle-path TestResults.xcresult -- -enableCodeCoverage YES
# Build release configuration
tuist build ClaudeBar -C Release
After opening in Xcode, SwiftUI previews will work with Cmd+Option+Return. The project is configured with ENABLE_DEBUG_DYLIB for preview support.
Full documentation: docs/architecture/ARCHITECTURE.md
ClaudeBar uses a layered architecture with QuotaMonitor as the single source of truth:
| Layer | Purpose |
|---|---|
| App | SwiftUI views consuming domain directly (no ViewModel) |
| Domain | Rich models, QuotaMonitor, repository protocols |
| Infrastructure | Probes, storage implementations, adapters, drivers |
QuotaMonitor owns all provider stateJSONSettingsRepository)@Mockable protocols enable testabilityMatch ClaudeBar's appearance to your terminal. Import any .itermcolors file:
450+ pre-made schemes available at iTerm2-Color-Schemes.
Imported themes are saved in ~/.claudebar/themes/ and persist across restarts.
Create your own provider monitoring modules by dropping a manifest and script into ~/.claudebar/extensions/. Extensions can define quota grids, daily usage cards, and automated HTTP health checks.
See docs/features/extensions.md for full specification and example implementations.
Use the add-provider skill to guide you through adding new providers with TDD:
Tell Claude Code: "I want to add a new provider for [ProviderName]"
The skill guides you through: Parsing Tests → Probe Tests → Implementation → Registration.
See .claude/skills/add-provider/SKILL.md for details and AntigravityUsageProbe as a reference implementation.
Releases are automated via GitHub Actions. Push a version tag to create a new release.
For detailed setup instructions, see docs/release/RELEASE_SETUP.md.
The workflow uses Tuist to generate the Xcode project:
Tag v1.0.0 → Update Info.plist → tuist generate → xcodebuild → Sign & Notarize → GitHub Release
Version is set in Sources/App/Info.plist and flows through to Sparkle auto-updates.
Configure GitHub Secrets (see full guide):
| Secret | Description |
|---|---|
APPLE_CERTIFICATE_P12 | Developer ID certificate (base64) |
APPLE_CERTIFICATE_PASSWORD | Password for .p12 |
APP_STORE_CONNECT_API_KEY_P8 | API key (base64) |
APP_STORE_CONNECT_KEY_ID | Key ID |
APP_STORE_CONNECT_ISSUER_ID | Issuer ID |
Verify your certificate:
./scripts/verify-p12.sh /path/to/certificate.p12
Create a release:
git tag v1.0.0
git push origin v1.0.0
The workflow will automatically build, sign, notarize, and publish to GitHub Releases.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
To credit someone, comment on any issue or pull request:
@all-contributors please add @username for code, doc
MIT
(top 30 of 40)
Swift
96.6%
Shell
1.9%
HTML
1.3%