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 |
mad-eye isn't code-signed yet (free, unsigned build), so macOS Gatekeeper flags it on first launch. Both paths below get you past that.
brew install --cask kvnwolf/tap/mad-eye && xattr -dr com.apple.quarantine /Applications/mad-eye.appThe xattr half clears the Gatekeeper quarantine so the unsigned app opens β Homebrew can't skip it,
and the source is right here to audit. Prefer clicking? Install with just the brew
half, then approve mad-eye under System Settings β Privacy & Security β Open Anyway.
Download mad-eye_<version>_universal.dmg from Releases,
open it, and drag mad-eye into Applications. Then approve it under System Settings β Privacy &
Security β Open Anyway, or clear the quarantine flag yourself:
xattr -dr com.apple.quarantine /Applications/mad-eye.app- 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.
- π 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 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 the release skill (universal DMG β
GitHub Release β Homebrew cask).
MIT Β© Kevin Wolf