ClaudeWatch
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 24 GitHub stars
Code Gecti
- Code scan — Scanned 3 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
ClaudeWatch — beautiful macOS menu bar tracker for Claude Code. Live session & weekly usage, all-models & Sonnet breakdown, Last-24h behavior insights, dynamic Claude Max/Pro/Team plan detection. SwiftUI + Python, zero API tokens consumed.
ClaudeWatch
Note for users downloading from GitHub Releases: macOS may show a security warning because the app is not signed with an Apple Developer certificate. To open the app:
- Try to open the app (it will be blocked)
- Go to System Settings → Privacy & Security
- Scroll down and click "Open Anyway" next to the ClaudeWatch message
- Click Open in the confirmation dialog
A beautiful macOS menu bar app that displays your Claude Code usage statistics in real-time. Monitor your session and weekly limits at a glance with a stunning glassmorphic UI.
Features
- Real-time Usage Tracking — Session, weekly-all-models, and weekly-Sonnet percentages in the menu bar at a glance
- Last 24h Insights — Fully dynamic behavioral signals parsed live from
/usage(long sessions, high context, subagent-heavy runs) with collapsible descriptions - Independent Reset Countdowns — Each tier shows its own reset timestamp plus a live "in Xh Ym" countdown
- Dynamic Plan/Model Detection — Header reflects the actual plan and model reported by the CLI (Claude Max, Pro, Team, etc.) — nothing hardcoded
- GitHub Release Auto-Check — Polls GitHub on launch; a banner appears when a newer build is available with a one-tap Download button
- Dynamic Color Indicators — Progress bars transition green → amber → red based on usage level
- Glassmorphic UI — Warm coral accent, gradient progress bars, animated rings, and subtle glass surfaces
- Configurable Auto-refresh — 30s / 1m / 2m / 5m / 10m / Never
- Native macOS App — SwiftUI, menu-bar only, no dock icon
- Zero Token Usage — Reads account stats locally via the Claude CLI; never invokes a model
Requirements
System Requirements
| Requirement | Version | Notes |
|---|---|---|
| macOS | 13.0 (Ventura) or later | Required for SwiftUI features |
| Python | 3.6+ | Usually pre-installed on macOS |
| Xcode | 14.0+ | Only needed if building from source |
Claude Requirements
| Requirement | Description |
|---|---|
| Claude Code CLI | Must be installed and accessible. Install from claude.ai/code |
| Claude Pro/Max | Active subscription required (usage limits only apply to paid plans) |
| Authenticated | Must be logged into Claude Code CLI (claude command should work) |
Verify Requirements
# Check Python version
python3 --version
# Check if Claude CLI is installed
which claude
# Test Claude CLI is working
claude --version
Installation
Option 1: Download Release (Recommended)
- Download the latest
.appfrom Releases - Move
ClaudeWatch.appto your Applications folder - Open the app (you may need to right-click → Open the first time due to Gatekeeper)
Option 2: Build from Source
Clone this repository:
git clone https://github.com/JohnDimou/ClaudeWatch.git cd ClaudeWatchOpen in Xcode:
open ClaudeWatch.xcodeprojBuild and run (⌘+R)
Or build from command line:
xcodebuild -project ClaudeWatch.xcodeproj -scheme ClaudeWatch -configuration Release build
The built app will be in ~/Library/Developer/Xcode/DerivedData/ClaudeWatch-*/Build/Products/Release/
Usage
- Launch the app - A brain icon appears in your menu bar with usage percentages
- View quick stats - The menu bar shows session and weekly usage
- Click for details - Opens a popup with full usage information
- Configure settings - Click the gear icon to adjust refresh interval
Menu Bar Display
🧠 25% | 22%
↑ ↑
│ └── Weekly usage (all models)
└── Current session usage
Color Indicators
| Usage Level | Color | Meaning |
|---|---|---|
| 0-50% | Green | Plenty of capacity remaining |
| 50-75% | Yellow/Orange | Moderate usage |
| 75-100% | Red | Near or at limit |
Settings
Access settings by clicking the gear icon in the popup:
| Setting | Options | Default | Description |
|---|---|---|---|
| Refresh Interval | 30s, 1m, 2m, 5m, 10m, Never | 1 minute | How often to auto-fetch usage data |
| Refresh on Open | On/Off | On | Fetch fresh data when popup opens |
Settings are persisted and remembered between app restarts.
How It Works
The app uses a Python script to interact with the Claude Code CLI:
- Spawns Claude CLI in a 200-column pseudo-terminal (pty) so the
/usagebox renders fully - Sends the
/usageslash command and waits for the "Last 24h" section to appear as the signal that rendering is complete - Parses the terminal output structurally — section boundaries are detected by the last occurrence of each header, and insights are extracted purely by their
NN%pattern with no hardcoded wording - Displays the results in a native SwiftUI interface
Update Checking
On launch (and on popover open, respecting a 6-hour cache) the app queriesapi.github.com/repos/JohnDimou/ClaudeWatch/releases/latest, comparestag_name against the installed CFBundleShortVersionString using a semver
compare, and surfaces a banner when a newer stable release is published. The
user taps Download to open the release page in their browser — the app
never attempts an in-place install (this distribution is unsigned, so Gatekeeper
would reject any automated replace).
Important: No Token Usage
This app does NOT consume any Claude API tokens. The /usage command is a built-in CLI feature that queries your account statistics directly from Anthropic's servers - it does not invoke any AI model. It's equivalent to checking your usage on the Anthropic dashboard.
Project Structure
ClaudeWatch/
├── ClaudeWatch/
│ ├── ClaudeWatchApp.swift # App entry point & menu bar setup
│ ├── UsageManager.swift # Usage data fetching, parsing & settings
│ ├── UsagePopoverView.swift # SwiftUI popup, Last 24h card, update banner
│ ├── UpdateChecker.swift # GitHub release polling + semver compare
│ └── Info.plist # App configuration
├── get_claude_usage.py # Python script for CLI interaction
├── ClaudeWatch.xcodeproj/ # Xcode project
├── LICENSE # MIT License
└── README.md
Troubleshooting
"Claude CLI not found"
# Check if Claude is installed
which claude
# If not found, install from:
# https://claude.ai/code
# If installed but not found, it might be in a non-standard path
# The app checks these locations automatically:
# - /usr/local/bin/claude
# - /opt/homebrew/bin/claude
# - ~/.local/bin/claude
# - ~/.npm-global/bin/claude
"Python 3 not found"
# Check Python version
python3 --version
# If not installed, install via Homebrew:
brew install python3
Usage not updating
- Click the refresh button (circular arrow) in the popup
- Check Settings → ensure refresh interval isn't set to "Never"
- Ensure you have an active Claude Pro/Max subscription
- Verify
claudeworks in your terminal
App won't open (macOS security)
- Right-click the app → Open → Open
- Or: System Settings → Privacy & Security → Open Anyway
Usage shows 0% for everything
- Make sure you're logged into Claude Code CLI
- Run
claudein terminal and verify it works - Check that you have a Pro/Max subscription
Unexpected permission prompts (Photos, Music, Desktop, etc.)
If you see macOS permission dialogs asking for access to Photos, Music, OneDrive, Desktop, or other folders:
- This should not happen with v1.2.0+ - we fixed issues where the subprocess could trigger these prompts
- Try downloading the latest release
- If the issue persists, please open an issue with:
- Screenshot of the permission dialog
- macOS version
- App version
- Any relevant details about your setup (iCloud sync, OneDrive, etc.)
Privacy & Security
- Local Only - All data stays on your machine
- No External Servers - The app only communicates with the local Claude CLI
- No Tracking - No analytics or telemetry
- Open Source - Full source code available for review
Legal Disclaimer
NO WARRANTY: This software is provided "as is", without warranty of any kind, express or implied. Use at your own risk.
GDPR & DATA PROTECTION: This app processes data locally on your device only. It does not collect, store, transmit, or share any personal data with third parties. The app only reads usage statistics from the Claude CLI running on your machine. No data leaves your computer. The author assumes no responsibility or liability for any data processing that may occur through the use of the Claude CLI itself - please refer to Anthropic's privacy policy for information about how Claude handles your data.
LIABILITY: In no event shall the author be liable for any claim, damages, or other liability arising from the use of this software.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
John Dimou - OptimalVersion.io
Acknowledgments
- Inspired by the need to track Claude usage without constantly running
/usage
Made by John Dimou - OptimalVersion.io
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi