A native macOS menu bar app that displays your Claude Code API usage limits in real time.
- Real-time usage monitoring — 5-hour, 7-day, and 7-day Sonnet rate limits from Anthropic's API
- Circular progress ring with color-coded menu bar icon (green/yellow/red)
- Reset times for each limit window
- Plan recommendation — suggests upgrade, downgrade, or stay based on 7-day usage projection
- Usage history charts — 5-hour and 7-day window bar charts with persistent history
- Adaptive refresh — automatically adjusts polling interval when usage is stable
- Auto-update — checks GitHub for new releases and self-installs updates
- Notifications — alerts at 80%, 90%, and 100% usage thresholds
- Launch at Login — optional auto-start via LaunchAgent
- Subscription info — shows your plan tier and renewal date
- Debug mode — mock data sliders, test notifications, and API request log
The app reads your Claude Code OAuth token from the macOS Keychain and makes a minimal API call (max_tokens=1) to Anthropic's Messages API. The response headers contain real-time rate limit data:
anthropic-ratelimit-unified-5h-utilizationanthropic-ratelimit-unified-7d-utilizationanthropic-ratelimit-unified-7d_sonnet-utilization
Your profile and subscription info are fetched from the OAuth profile endpoint.
- macOS 14.0 (Sonoma) or later
- Claude Code installed and authenticated (the app reads its OAuth token from Keychain)
- Download
ClaudeMonitorBar.zipfrom the latest release - Unzip and move
ClaudeMonitorBar.appto/Applications/ - On first launch macOS will block the app — go to System Settings → Privacy & Security and click "Open Anyway"
git clone https://github.com/paradoxlabdev/claudemonitorbar.git
cd claudemonitorbar
# Build .app bundle
./build-app.sh
# Move to Applications (optional)
mv ClaudeMonitorBar.app /Applications/# Build
swift build
# Run from terminal
.build/arm64-apple-macosx/debug/ClaudeMonitorBar
# Run tests
swift testSources/ClaudeMonitorBar/
ClaudeMonitorBarApp.swift # App entry point (MenuBarExtra + icon rendering)
Models/
UsageLimit.swift # Rate limit data model
PlanRecommendation.swift # Upgrade/downgrade logic (linear projection)
PlanTier.swift # Plan tier definitions
UsageHistory.swift # Persistent usage snapshots
Services/
RateLimitFetcher.swift # API calls (usage data + profile)
SessionManager.swift # Observable state + adaptive refresh
AppPreferences.swift # Settings (UserDefaults + LaunchAgent)
NotificationManager.swift # Usage threshold alerts
UpdateChecker.swift # GitHub release auto-updater
Views/
MenuBarView.swift # Main popup UI + settings panel
CircularProgressView.swift # Progress ring
LimitRowView.swift # Individual limit row
UsageChartView.swift # 5-hour and 7-day history charts
- OAuth token is read from the macOS Keychain (never stored or exported by this app)
- Only connects to
api.anthropic.comandapi.github.com(update checks) - Each refresh consumes 1 API token (minimal call to retrieve rate limit headers)
- Usage history stored locally in
~/Library/Application Support/ClaudeMonitorBar/ - Ad-hoc code signed for local use
MIT - see LICENSE for details.
Made by ParadoxLab.dev

