Your Claude limits, live in the menu bar.
Session, week, Fable and a daily budget: four numbers next to your clock. Claudiostat asks Claude Code directly, so a refresh costs zero tokens and never touches your login.
Try the menu bar
- S
- Session
- Your current 5-hour window.
- W
- Week
- All models, this week.
- F
- Fable
- Fable only, this week.
- L
- Daily budget
- What's left of the week, per day until the reset.
L is your daily budget.
Drag the sliders to see how it is worked out. This is the same formula the app uses. Stay under L each day and the week lasts until the reset.
82% left over 6.8 days = 12% a day, rounded up.
Small on purpose.
-
Four numbers at a glance
Session, week, Fable and a daily budget, side by side next to your clock. Hide F or L from the menu when you want a shorter bar.
-
Every reset, counted down
Open the menu to see when each limit resets and how much of the week is left per day.
-
Zero tokens
Claudiostat sends Claude Code a
get_usagecontrol request and nothing else, so a refresh costs nothing from your limits. -
Never sees your login
Claude Code uses its own login. Claudiostat never sees or stores a credential, and it runs Claude Code with hooks, plugins and MCP servers off.
-
Sleeps when Claude does
While the Claude app is closed there are no requests at all, and the last numbers dim so you can tell they are old.
-
Native and tiny
A small Swift app, a 1.8 MB download, with no Dock icon. It refreshes every 150 seconds, 5 or 10 minutes, and can launch at login.
How it gets the numbers
Claude Code already knows your limits. Claudiostat just asks it, the same way each time.
Runs your installed
claudeonce, headless, with hooks, plugins and MCP servers off and no session saved.Sends one
get_usagecontrol request. No prompt goes with it, so it costs zero tokens.Reads
five_hour,seven_dayand the Fable window, works out L and updates the bar.
Commandclaude -p --input-format stream-json --output-format stream-json \
--verbose --no-session-persistence --strict-mcp-config --setting-sources ""
Request{"type":"control_request","request_id":"1",
"request":{"subtype":"get_usage","skip_behaviors":true}}
Reply (simplified){"type":"control_response","response":{
"subtype":"success","response":{"rate_limits":{
"five_hour":{"utilization":42,"resets_at":"2026-09-28T16:13:00Z"},
"seven_day":{"utilization":18,"resets_at":"2026-10-05T12:00:00Z"},
"model_scoped":[{"display_name":"Fable","utilization":7}]}}}}
Install
Open the DMG and drag Claudiostat to Applications.
Allow it once. The app isn't notarized, so on the first launch open System Settings › Privacy & Security, scroll down and click Open Anyway next to Claudiostat.
Look up. The numbers appear in the menu bar a few seconds later.
Requirements
- macOS 15 or later
- Apple silicon, not Intel
- Claude Code installed and signed in with a Claude plan
Reading the menu
Every message Claudiostat can show, and what it means.