- Token auto-refresh - when the OAuth token is expired, the app uses the refresh token to get a new access token in-memory (no disk writes) - Show '...' on error - any poll failure shows the refresh indicator instead of cryptic error text - Exponential backoff retry - on failure, retries at 30s, 60s, 120s... up to the poll interval, then restores normal interval on success - Countdown guard - the countdown timer no longer overwrites '...' with stale cached data during error state - Cleaned up error handling - removed Display impl, error message formatting, extract_error_message, and simplified try_model to return Option<UsageData>
Claude Code Usage Monitor
A lightweight Windows taskbar widget that displays your Claude API rate limit usage in real time.
What it does
Embeds directly into the Windows taskbar and shows two progress bars:
- 5h — Session usage (5-hour rolling window)
- 7d — Weekly usage (7-day rolling window)
Each bar shows the current utilization percentage and a countdown until the rate limit resets.
How it works
- Reads your Claude OAuth token from
~/.claude/.credentials.json - Sends a minimal API request to the Anthropic Messages API
- Parses rate limit headers (
anthropic-ratelimit-unified-*) from the response - Renders the widget using Win32 GDI, embedded as a child window of the taskbar
- Polls every 15 minutes (adjustable) and updates countdown timers between polls
The widget automatically detects dark/light mode from Windows system settings.
Requirements
- Windows 10/11
- Rust toolchain (MSVC target)
- An active Claude Pro/Team subscription with OAuth credentials stored by Claude Code
Building
cargo build --release
The binary will be at target/release/claude-code-usage-monitor.exe.
Usage
Run the executable — the widget appears in your taskbar. Right-click for a context menu with Refresh, Update Frequency and Exit options.
Project structure
src/
├── main.rs # Entry point
├── models.rs # UsageData / UsageSection types
├── poller.rs # API polling, header parsing, formatting
├── window.rs # Win32 window, rendering, message loop
├── native_interop.rs # Win32 helper functions (taskbar, colors, etc.)
└── theme.rs # Dark/light mode detection via registry
Releases
Pre-built Windows executables are available on the Releases page. Download claude-code-usage-monitor.exe and run it directly — no Rust toolchain required.
New releases are published automatically when a version tag is pushed:
git tag v0.1.0
git push origin v0.1.0
