Every subscription limit, on one screen.

You bought a second Claude plan so you would not have to stop working — and then checking whether it has room meant signing into it.

Softcap sits in the menu bar and shows every plan at once: what is spent, what resets when, which account to open next.

Download on the Mac App Store

macOS 14+ · View the source · Direct .dmg

Accounts settings: three accounts in one list, each with its source and a button to forget it.
Statistics settings: a week of weekly-limit usage plotted for three accounts.
Notifications settings: thresholds at 95 and 80 per cent, recovery alerts, and quiet hours.
The minimal window: account names and usage bars, without the surrounding chrome.
Session and weekly limits, live in the menu bar. Several Claude and Codex accounts in one list. A month of usage history for every account. Thresholds, recovery alerts and quiet hours. One line for each account, and nothing else.

Why it exists

Measuring a quota should not spend it

Softcap reads subscription usage directly for accounts added through the browser. These requests fetch limits without sending a prompt or running a model.

Codex works the same way: sign in through the browser and Softcap reads that account's usage directly from the service. Nothing is taken from the CLI's own files, so what you see never depends on when Codex last ran.


Several plans

It never touches your CLI

A monitor that logs you out of the thing it monitors is worse than none. Softcap reads no credential belonging to Claude Code or Codex, and holds no copy of one — so signing out there, or switching accounts, changes nothing here.

Each subscription is added once in your browser and keeps a grant of its own, so several plans sit on screen together and each refreshes independently — whether or not a CLI is running, and whichever account it happens to be signed into.


Over time

Three subscriptions, one month, zero spent to know it

One line per account. Colour means which account here and how loaded everywhere else, so the two scales never borrow from each other. The plans renew on different days — so at any hour, the picture says which account is fresh.

  • 3 accounts
  • 7 resets in 28 days
  • 0 quota spent measuring
100%75% 50%25%0% 80% · first nudge 95% · last warning 16 Aug23 Aug 30 Aug6 Sep 13 Sep
alex sam sam.k

The dashed guides are where notifications fire: a nudge at 80%, a last warning at 95%. Every drop is a week's allowance renewing. And a break, like alex's, is a stretch with nothing measured; drawing across it would claim a reading nobody took.


The rest of it

Small things that matter at 2 a.m.

A timer in the menu bar

The limit of the account you are working with, and how long until it frees up — without clicking. The strip can carry the countdown, the percentage, both, or just the icon, and a shortcut of your choosing opens the window without reaching for the mouse.

Widgets

All four sizes on macOS. The same account row the window uses, so they cannot drift apart.

It tells you before you hit it

At 80% and 95% out of the box, or whichever levels you set instead — once per crossing, not once per poll.

Quiet hours

Nothing arrives while you sleep, and nothing is delivered late to make up for it.

Ten languages

Including Arabic, laid out right to left. Switching takes effect immediately, with no restart.

Your tokens stay put

Credentials stay in the keychain, never copied into preferences or logs. When something fails, the app sends a description of the failure to its author, stripped of paths, addresses and anything token-shaped before it leaves the machine — and it can be switched off. The only other request is a check for a new version, daily and while the update screen is open, and that can be switched off too.


Under it

For the sort of person who reads this part

Requires
macOS 14 or later.
Claude
Live, from the OAuth usage endpoint. How Claude limits work →
Codex
Live usage for every account, read from the service with that account's own grant. How Codex limits work →
Adding an account
Choose Claude Code or OpenAI Codex, then sign in with OAuth and PKCE in your own browser.
The core
A Swift package with no AppKit and no human-facing strings. Window, widgets and phone share one row view.
Dependencies
None. Every import is either Apple's own framework or a module of this project.
Source
Public, under the MIT licence. The download above is what the pipeline built from that tree, and every release carries the checksum of the file it signed. github.com/milushov/softcap
Cost of running it
One request per Claude account per poll. Five minutes apart in the background, once a minute with the window open — or anywhere between thirty seconds and an hour, if you set it. Claude name and plan are asked once and kept for six hours. Each saved Codex account adds one usage request per poll.
Not yet
Cursor, GitHub Copilot, Gemini CLI, the GLM Coding Plan and Kimi Code. A provider that cannot be checked against a live account would quietly show zero, which is worse than nothing.