- Desktop widget (Python/pystray): system tray icon showing 5h usage as
circular progress bar with Claude starburst logo, 10-step green-to-red
color scale, right-click menu with usage stats and configuration
- Shared cache: both widget and CLI statusline read/write the same
/tmp/claude_usage.json — only one fetcher needs to run
- Installer wizard (install_wizard.py): interactive cross-platform setup
with component selection, session key prompt, cron/autostart config
- OS wrappers: install.sh (Linux/macOS) and install.ps1 (Windows) find
Python 3.9+ and launch the wizard
- README with topology diagram, usage docs, and configuration reference
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The */5 in the cron example inside the JSDoc block comment was parsed
as end-of-comment, causing a SyntaxError. Replaced with a reference
to install.sh.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When the fetcher gets a 401/403, it writes an error state to the cache
file instead of silently failing. The statusline reads this and shows
"Token: session expired — refresh cookie" so the user knows to re-extract
the sessionKey cookie from claude.ai.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add .gitattributes enforcing LF line endings
- Renormalize all files from CRLF to LF
- Replace fragile sed-based JSON manipulation with node -e
- Add Node.js 18+ version check (required for built-in fetch)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Headless-friendly statusline with context window bar and optional
token usage fetcher (cron-based, no browser needed).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>