macOS menu-bar app · Claude · Codex · Cursor

Never hit your Claude, Codex or Cursor limit by surprise.

Ration sits in your menu bar and keeps a live meter on every subscription you pay for — usage windows, reset countdowns, burn history, and alerts before you're cut off. Native, private, dark.

brew install --cask izzy-agency/tap/ration

v1.0.1 · Developer ID signed & notarized · macOS 26+ · open source, MIT

menu barSample data
$ RationLive
↻ Next resetAI · FABLE · 2h 14m

Claude
AICLAUDE
IN USE· 4m ago
Fable88%
2h 14m
5h62%
41m
wk21%
4d 6h
PersonalCLAUDEstale
5h12%
3h 02m
wk57%
2d 11h
ChatGPT
WorkCHATGPT
wk74%
1d 9h
Cursor
CuCURSOR
$12.40PRO
this cycle · resets in 12d 4h

The problem001

You don't find out you're rate-limited until you're already blocked.

Claude Code, Codex and Cursor keep your real budget behind a wall you only see when you hit it. Ration puts the meter where you can watch it — always.

Usage history002

Compare every account on one chart.

Every fetch is recorded locally. Pick one account or overlay them all: each line carries its provider's colour and its own shade and dash, so two Claude accounts never blur together. An hour-of-day heatmap shows when you actually burn.

  • All-accounts overlay per window
  • Daily-burn chart + hour-of-day heatmap
  • Says what it can't draw, instead of hiding it
RationSample data
HistoryPatternsBilling cycle
All accounts ▾Fable5hwk

Not shown: Cu — no wk window
0.00.30.721 Jul26 Jul31 Jul
AIPersonalWork
Billing cycle003

How much of the plan you actually used.

Set the day your plan renews and Ration reconstructs how much capacity you burned in the current cycle. It reports a lower bound — counting only the hours it genuinely watched — rather than a confident number it can't stand behind.

  • Per-subscription cycle utilisation
  • Honest ≥ lower bound, never a guess
  • Fable tracked as its own sub-limit
RationSample data
HistoryPatternsBilling cycle

C
AI
Cycle Aug 3 – Sep 2 · Day 8/31
≥ 62%
observed lower bound
≥ 4.3× weekly allowance · Used 6 days · At ≥95% 2 days · watched 171/192 hrs
Fable ≥ 41% this cycle
G
Work
Cycle Aug 6 – Sep 5 · Day 5/31
Not enough data yet
watched 26 of 118 hrs · Day 5/31
Alerts004

It taps you before you're blocked.

Rings in the menu bar keep a live meter on every account — one ring each, filled in its provider's colour, with a green dot on the one you're using. When a window crosses a threshold you set, a small panel drops from the menu bar: one line per crossing, worst first, with the countdown to its reset. Click a line to open that account; ✕ snoozes the drop until a window actually resets — not for a fixed number of minutes.

  • One ring per account in the menu bar, in-use dot included
  • The drop lists every crossing, worst first
  • ✕ holds it back until a window resets; quiet hours keep it away
Click a line to open that account · ✕ snoozes it until a window resets
NotificationsSample data
Rationnow

AI: Fable limit at 90%

You've used 90% of the Fable limit for AI.

Threshold
Ration12m

Work: weekly limit reset

Fresh weekly capacity is available for Work.

Reset
Ration4h

Ration

An account is nearing a usage limit.

Privacy mode
Thresholds005

Your numbers, not ours.

Set a warning and a critical percentage for every window — Claude's 5-hour, weekly and Fable limits; Codex's 5-hour and weekly — and dollar thresholds for Cursor's usage-based spend. Each crossing goes to a notification, to the drop, or both. Edge-triggered: it fires once per crossing and re-arms when the window resets, and privacy mode keeps labels and exact usage off your lock screen.

  • Warning and critical per provider and window
  • Cursor thresholds in dollars, not percent
  • Notification, drop, or both — per row
SettingsSample data
Alerts
Thresholds per provider and window · where each crossing goes
Claude
5-hourWarn75%Crit90%NotifyDrop
WeeklyWarn70%Crit85%NotifyDrop
FableWarn60%Crit80%NotifyDrop
ChatGPT
5-hourWarn75%Crit90%NotifyDrop
WeeklyWarn75%Crit90%NotifyDrop
Cursor spend
Warning$ 40.00
Critical$ 60.00
Deliver toNotifyDrop

Cursor bills by usage-based spend, not a rate window. Leave these empty for no spend alerts.

Every provider006

One ledger for everything you pay for.

Add as many accounts as you have. Ration groups them by provider, marks the subscription you're actually burning right now, and can sort each group by whichever window resets soonest.

C

Claude

Claude Code · claude.ai

  • 5-hour rolling window
  • Weekly window
  • Fable weekly (Max plans)

Auto-start can open the 5h window for you the moment it resets.

G

ChatGPT

Codex · chatgpt.com

  • 5-hour rolling window
  • Weekly window

Whichever windows your plan reports are the windows you get.

Cu

Cursor

cursor.com

  • Usage-based spend this cycle
  • Cycle reset countdown

Dollars, not a percentage — so it shows spend, and says so.

Accounts & control007

Pause it, pin it, or let it warm itself up.

A first-run guide walks you through signing in to each provider. Accounts group by provider with the one you're using outlined live. Pause an account to stop refreshing it without losing the sign-in. And if you want your Claude 5h window counting from the moment it resets, warm-up can start it for you — except during the hours you mark quiet, and never when the weekly allowance is already spent.

  • Setup guide on first launch — sign in, done
  • Pause without deleting — sign-in kept
  • Auto-start the 5h window on reset; quiet hours + holidays hold back warm-up and the drop
SettingsSample data
C
AI
Added Jul 2, 2026
IN USEActive
Fable88%
2h 14m
5h62%
41m
wk21%
4d 6h
Identity
Account labelAI
ProviderClaude
Automation
Auto-start 5h window

Sends a short message when the 5h window resets, so its countdown starts right away.

Billing
Renewal day3 ▾

The day your plan renews each month. Used for per-cycle utilisation in History.

Session
Pause account

Paused: not refreshed, excluded from warm-up, hidden from the menu bar. Sign-in is kept.

Sign in again
Remove from this Mac
Warm-upSample data

Selected hours never trigger a warm-up. Click a day or an hour to select the whole column or row.

Private by design008

Your usage never leaves your Mac.

Ration has no backend. It reads your limits the same way your browser would — from your own signed-in sessions, talking directly to Anthropic, OpenAI and Cursor over HTTPS. Nothing is sent to us, because there is no us to send it to.

  • No telemetry, no analytics, no account.The app phones home to nobody.
  • Each login is isolated.Every account gets its own browser data store, deleted with the account.
  • Everything stays in the sandbox.Snapshots, history and settings live in the app's own container, and provider page caches are trimmed on every refresh.
  • Lock-screen privacy.Notifications can hide the account label and exact usage.
  • Open source.MIT-licensed — read exactly what it does on GitHub.

Details in the privacy & cookies page, and who makes Ration and how to reach us.

Get Ration009

Install it.

Ration is macOS 26+, universal for Apple silicon and Intel, signed with a Developer ID and notarized by Apple. The source is on GitHub under the MIT license.

Direct download

A drag-to-Applications .dmg from the GitHub release. Signed, notarized, no Gatekeeper warnings.

Get the .dmg

Universal · Apple silicon & Intel

Homebrew

Prefer the terminal? The cask installs the same signed, notarized build.

brew install --cask izzy-agency/tap/ration

Then brew upgrade keeps it current

Mac App Store

Sandboxed already, so a store build is on the roadmap. Not submitted yet.

Planned

Watch the GitHub releases for news