Your Claude usage limits, watching you back.
A macOS menubar app that shows your Claude subscription usage as an animated eye β Mad-Eye Moody style. The Eye gets more agitated as you approach a limit, and its ring shatters when you hit 100%. No numbers in your menubar β just an Eye that tells you how close you are at a glance.
If you live in Claude Code, you want an ambient sense of "how close am I to my limit?" without opening a dashboard. mad-eye puts that in your menubar as a single Eye:
- a calm, slow glance when you've got headroom,
- a frantic dart when you're about to run out,
- a cracked, frozen stare when you've hit the wall.
Click it for the detailed gauges.
The Eye tracks one gauge β your Session limit by default. Click any gauge in the popover to make it the one that drives the Eye (it remembers your choice).
| Usage | Mood | The Eye⦠|
|---|---|---|
< 50% |
π Calm | slow, wide glances |
< 80% |
π Nervous | quicker, tighter darts |
< 95% |
π° Paranoid | fast, wide, restless |
< 100% |
π± Frantic | can't sit still |
100% |
π₯ Shattered | the ring cracks, the eye freezes |
Releases from v0.2.0 on are signed with a Developer ID certificate and notarized by Apple, so Gatekeeper opens them cleanly β no workarounds. (Older releases were unsigned; for those, approve under System Settings β Privacy & Security β Open Anyway.)
brew install --cask kvnwolf/tap/mad-eyeDownload mad-eye_<version>_universal.dmg from Releases,
open it, and drag mad-eye into Applications.
- macOS Monterey or later.
- Claude Code installed and logged in. mad-eye reads your usage from the same credentials Claude Code stores β no Claude Code, no data (the Eye goes dark).
mad-eye reads your Claude OAuth token from the macOS Keychain (read-only) and calls
Anthropic's usage endpoint β the same data behind Claude Code's /usage panel. That's the whole
story:
- π Your token never leaves your Mac except to
api.anthropic.com. - π« No telemetry, no analytics, no servers. There's no backend β just your Mac and Anthropic.
- π Diagnostic logs stay local at
~/Library/Logs/mad-eye/mad-eye.log; they contain status and error metadata, never tokens or response bodies. Right-click the Eye β Reveal Logs in Finder. - π It never writes or refreshes your credentials β strictly read-only. If the token expires, the Eye just goes blind until Claude Code refreshes it.
- On first launch macOS asks to read the "Claude Code-credentials" Keychain item β click Always Allow.
Don't take my word for it β read the Keychain read and the usage fetch yourself. That's the whole point of open-sourcing it.
- A Rust core renders the Eye directly to a monochrome template tray icon (tiny-skia, no image assets) and animates the pupil ~30fps by mood.
- It polls Anthropic's OAuth usage endpoint (undocumented β a future change on their side could break it) and maps the limits to gauges + a mood.
- The popover is a native frosted panel β vanilla TypeScript, macOS vibrancy, theme-aware.
- It's a ghost app: no Dock icon, no β-Tab. Launch-at-login, Reveal Logs, and Quit live in the Eye's right-click menu.
git clone https://github.com/kvnwolf/mad-eye
cd mad-eye
bun install
bun tauri dev # the native app: menubar Eye + popoverDrive the Eye through every mood without burning real usage β the same value also seeds a coherent popover (Fable as the driving gauge), so screenshots match the Eye:
MAD_EYE_FAKE_PCT=97 bun tauri dev # 40 calm Β· 70 nervous Β· 90 paranoid Β· 97 frantic Β· 100 shatteredReleases are cut with /dobby:release (universal DMG β Developer ID signing + notarization β
GitHub Release β Homebrew cask).
MIT Β© Kevin Wolf
