System tray monitor for Claude Code token usage
Project description
Claude Code Usage Overlay
A Linux/GNOME system tray application that monitors your Claude Code token usage and alerts you before hitting limits.
Features
- System tray icon with color-coded gauge (green/yellow/red based on usage)
- Panel label showing session and weekly usage percentages
- Popup notifications at configurable thresholds (default: 50%, 75%, 90%)
- Configurable settings via JSON file or Settings menu
- Auto-start on login via XDG autostart
Screenshots
The tray icon shows your current usage with:
- Arc fill = session usage (5-hour window)
- Color = worst-case urgency (max of session/weekly)
- Panel label = "45%|67%" format
Requirements
- Linux with GNOME Shell (or compatible desktop with AppIndicator support)
- Python 3.11+
- Claude Code CLI installed and authenticated
- AppIndicator extension for GNOME Shell
System Dependencies
# Ubuntu/Debian
sudo apt install python3-gi python3-gi-cairo gir1.2-ayatanaappindicator3-0.1 gir1.2-notify-0.7
# Fedora
sudo dnf install python3-gobject python3-cairo libayatana-appindicator-gtk3 libnotify
# Arch
sudo pacman -S python-gobject python-cairo libayatana-appindicator libnotify
GNOME Shell Extension
Install the AppIndicator Support extension for GNOME Shell to see system tray icons.
Installation
From PyPI (recommended)
-
Install system dependencies (see System Dependencies above)
-
Install with pipx (recommended):
pipx install claude-code-usage --system-site-packages
The
--system-site-packagesflag is required to access system GTK libraries. -
Run:
claude-usage
From Source
git clone https://github.com/Maex-z9/CC_Usage.git
cd CC_Usage
./install.sh
This installs system dependencies and the app automatically.
Prerequisites
Make sure you have Claude Code CLI installed and authenticated:
claude
# Follow the authentication flow
Usage
Run the application:
claude-usage
Or if running from source:
python3 -m src.main
Menu Options
Click the tray icon to access:
- Current usage percentages and reset time
- Refresh - Force update usage data
- Settings submenu:
- Pause Notifications - Temporarily disable alerts
- Autostart on Login - Enable/disable auto-start
- Edit Config File - Open config in text editor
- Quit - Exit the application
Configuration
Config file location: ~/.config/claude-usage-overlay/config.json
{
"session_thresholds": [50, 75, 90],
"weekly_thresholds": [50, 75, 90],
"polling_interval": 300,
"pause_notifications": false,
"autostart_enabled": false
}
| Setting | Description | Default |
|---|---|---|
session_thresholds |
Alert thresholds for 5-hour session usage | [50, 75, 90] |
weekly_thresholds |
Alert thresholds for 7-day weekly usage | [50, 75, 90] |
polling_interval |
Seconds between API checks (30-3600) | 300 (5 min) |
pause_notifications |
Disable popup alerts | false |
autostart_enabled |
Start on login | false |
How It Works
- Reads your OAuth token from
~/.claude/.credentials.json(created by Claude Code CLI) - Polls the Anthropic usage API every 5 minutes (configurable)
- Displays usage in the system tray with color-coded urgency
- Shows desktop notifications when thresholds are crossed
Privacy & Security
- No API keys stored in the repo - Uses Claude Code's existing credentials
- Credentials stay local - Reads from
~/.claude/.credentials.json - Config stays local - Stored in
~/.config/claude-usage-overlay/ - No data sent anywhere - Only communicates with Anthropic's API
Known Issues
See KNOWN_ISSUES.md for details on:
- GNOME Shell tooltip limitations (using panel label instead)
- AppIndicator menu accelerator limitations
Contributing
Contributions welcome! Please open an issue or PR.
License
MIT License - See LICENSE for details.
Acknowledgments
Built with Claude Code using the GSD workflow.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file claude_code_usage-1.0.2.tar.gz.
File metadata
- Download URL: claude_code_usage-1.0.2.tar.gz
- Upload date:
- Size: 15.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e8808ea41c1376796c6ca9683c3eeac9c0cb3ed9b7f784b231968343d6054fa
|
|
| MD5 |
7647e77e6c423287a2c53f0de5ed9cc3
|
|
| BLAKE2b-256 |
8e25073e14cd810b55f3e6db4552fa8b522516e0cf8b0d3ebfea8646b21fcebc
|
File details
Details for the file claude_code_usage-1.0.2-py3-none-any.whl.
File metadata
- Download URL: claude_code_usage-1.0.2-py3-none-any.whl
- Upload date:
- Size: 18.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f63597eb62a7ad3d0ca81a9d6c5dd6c3c8e1e61b2f7786fbecc4793646be7a2
|
|
| MD5 |
3fbf0f299e4d1ce2382bb373ae54784e
|
|
| BLAKE2b-256 |
6e8c07d255073caf31586d449919ea3fb913d4438d4c417e33896bd68d81179b
|