Skip to content

davidpflugpeil/cookie-monster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Cookie Monster πŸͺ

Cookie Monster app icon

Build Latest release Downloads License: MIT Platform Swift PRs welcome

A tiny native macOS menu-bar app that shows your Claude subscription usage β€” the same numbers as Claude Code's "Plan usage limits" panel β€” right in your menu bar.

Why "Cookie Monster"? It started life as Token Monster β€” it watches Claude gobble through your tokens. "Cookie Monster" just has the better appetite. πŸͺ

πŸͺ 27%      ← your current 5-hour session usage, color-coded

Click it for the full breakdown:

Claude Max
────────────────────────────────────────────
Session     β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘  27%   resets in 3h 24m
Week        β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘  29%   resets in 5d 4h
Week Sonnet β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%   resets in 5d 4h
────────────────────────────────────────────
Updated 12s ago
Refresh Now              ⌘R
Open Usage in Browser…
Start at Login            βœ“
Quit Cookie Monster      ⌘Q

Install

Download (recommended)

  1. Grab the latest Cookie-Monster-x.y.z.dmg from the Releases page.
  2. Open the .dmg and drag Cookie Monster into Applications.
  3. Double-click to open β€” release builds are signed & notarized by Apple, so there's no Gatekeeper warning.
  4. macOS will ask to allow keychain access β€” click Always Allow.
  5. Enable auto-start from the πŸͺ menu β†’ Start at Login.

Build from source

If you have the Xcode Command Line Tools (xcode-select --install), building locally avoids Gatekeeper entirely:

git clone https://github.com/davidpflugpeil/cookie-monster
cd cookie-monster
./install.sh      # builds, installs to ~/Applications, and launches it

How it works

  • Reads your existing Claude Code OAuth token from the login keychain (Claude Code-credentials) at runtime.
  • Polls the (undocumented) https://api.anthropic.com/api/oauth/usage endpoint every 60 seconds β€” the same endpoint that powers /usage inside Claude Code β€” with a claude-code/<ver> User-Agent and the anthropic-beta: oauth-2025-04-20 header.
  • Shows the 5-hour session window in the bar (green < 50%, orange < 80%, red β‰₯ 80%), with weekly windows in the dropdown.

It is read-only on your credentials: it never writes to the keychain, never refreshes or modifies your token, and never logs the token or the raw API response. A small diagnostic log (status codes + percentages only) is kept at ~/.cookie-monster/cookie-monster.log.

Settings

All three are in the πŸͺ menu and persist across restarts:

  • Pin to Menu Bar β€” choose which window's percentage shows in the bar: Session (default), Week, or Week (model).
  • Update Every β€” how often it polls: 30 seconds, 1 / 2 / 5 / 15 minutes (default 1 minute).
  • Menu Bar Style β€” Default (a monochrome gauge whose needle tracks your usage, in the native menu-bar text color) or Vibrant (the πŸͺ emoji with a green/orange/red percentage).

Uninstall

./uninstall.sh

Removes the app, the login item, and the log directory. Your Claude credentials are left untouched.

Limitations

  • macOS 13+ only, and requires a Claude subscription signed into Claude Code (Pro / Max / Team). It reports whatever account Claude Code is authenticated as.
  • Token refresh: if the menu bar shows πŸͺ ⚠ (red), your OAuth token expired β€” run claude once to refresh it, then click Refresh Now. Cookie Monster intentionally does not refresh tokens itself, to avoid ever touching your stored credentials.
  • The usage endpoint is undocumented and may change without notice. If the numbers stop appearing, check the field names in src/Core.swift (five_hour, seven_day, seven_day_opus/seven_day_sonnet).

Repo layout

Path What
src/Core.swift Shared logic β€” keychain read, usage fetch, formatting
src/App.swift The menu-bar UI (AppKit NSStatusItem)
build.sh Compile the .app bundle
install.sh / uninstall.sh Install/remove to ~/Applications
package.sh Build a .dmg + .zip into dist/ for releases

Contributing

Issues and PRs are welcome β€” see CONTRIBUTING.md. Security reports: SECURITY.md. Release history: CHANGELOG.md.

Disclaimer

This is an unofficial, community project. It is not affiliated with, endorsed by, or supported by Anthropic. It relies on an undocumented endpoint that could change or break at any time. Provided as-is under the MIT License.

About

πŸͺ Your Claude subscription usage in the macOS menu bar

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

11 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors