Headroom

Will this week's allowance last?

A menu bar pace meter for your Claude and Codex plans. It weighs what's left against the time left, and tells you to use more, keep going, or ease off.

$ brew install --cask scalexy/tap/ai-headroom

Free and open. macOS 15 or later on Apple silicon.

Menu bar: Claude with four blue cells and a 48 minute session countdown, Codex with three amber cells Tue 10:02
The Headroom popover. Claude, Max 20x: a 5-hour session almost used warning with 48 minutes to reset, then 82% left this week, renewing in 20 hours, plenty available.

The 5-hour session, first.Amber past your warning level, with a forecast of when it runs out.

What's left, against time left.82% sounds great, until you see it renews in 20 hours.

Your week, drawn.Where you've been, where you're heading, and how much renews unused.

Pace

Not just a percentage. A pace.

82% left sounds great, until you notice it renews tomorrow. Headroom compares what's left with the time left, draws your week so far, and says in one sentence what to do about it.

82%
left this week
18hrenews Wed 4:00 AM
▲ Even pace
Plenty available

Spend it before it renews tomorrow at 4 AM.

At today's pace, 80% renews unused.
A Headroom card in the Plenty available state

Blue.

Room to spare. Use more before it renews unused.

White.

On pace. At this rate it lasts to renewal.

Amber and rose.

Slow down, by how much, and roughly when you'd run out.

5-hour limits

The limit you hit first, front and center.

The 5-hour session gets a panel of its own, built like the week: five cells with even pace marked, a graph of the hours so far, and a forecast from your recent pace.

On track

A run of near-misses stands out.

Activity keeps your recent sessions with each one's peak, so you can see which hit the limit. Optional notifications tell you when a session is nearly used, when you hit the limit, and the moment it's back.

Recent 5-hour sessions for Claude and Codex, with each session's peak and the ones that hit the limit

Desktop widgets

Your pace, right on the desktop.

Three widgets in every size macOS offers, with the same forecasts as the popover. Glance at your wallpaper and you know how the week is going.

Headroom.

What's left this week, your week drawn so far, and where it's heading.

Burn-o-meter.

A speedometer of how fast you're spending, with a safe speed marked.

5-Hour Session.

A countdown ring to the reset, and a heads-up if it runs out first.

iPhone, iPad and Apple WatchPreview

Step away from the Mac. Keep the pace.

Turn on iPhone & Watch in Settings and your readings follow you, through your own iCloud. The same Pace card, 5-hour panel, Burn-o-meter and Activity, wherever you are.

On the Lock Screen.

Rings for the session and the week, every account at a glance, and a Live Activity that counts down your 5-hour session.

An iPhone Lock Screen with Headroom rings for the 5-hour session and the week, meters for Codex and Claude, and a Live Activity counting down the session

A Live Activity for the session.

It counts down to the reset and forecasts what's left, on the Lock Screen and in the Dynamic Island.

Live Activity: Codex 5-hour session, 4:12:00 to reset, 90% left, 41% left at the reset, week 59%

On your wrist.

An Apple Watch app and complications for your watch face.

Watch complications: a 5-hour ring at 4:12:00 with 90% left, and a week ring at 59% left

Home Screen widgets, every size.

Accounts, Activity, the 5-hour session and the week. Several Macs, or several Claude and Codex accounts? Each account is one card, however many Macs report it, and its activity adds up across them.

Headroom Home Screen widgets: Accounts, token Activity with cost, the 5-hour session, the week's pace and a Burn-o-meter

Performance

Always on. Barely there.

Headroom is a native Swift app, built to sit in your menu bar all day without you ever noticing it. It sleeps when your Mac does, wakes only when there's something new to read, and draws every pixel itself, so it never pulls in heavyweight system graphics.

22MB

Memory in use after a full day in the menu bar.1

0.06%

Average CPU: 44 seconds of work across 22 hours.1

6.5MB

The whole download, widgets, updater and command line included.

0

Reads while your Mac sleeps or the screen is locked.

Activity MonitorAll Processes
Process NameMemory% CPUCPU TimeThreadsEnergy Impact
HeadroomApp22.3 MB0.043.9650.1
After 22 hours in the menu bar on a MacBook Pro.1

We drew our own glass.

The system's glass effects map a graphics archive of about 190 MB into any app that uses them. So Headroom paints its own surfaces on the CPU into small bitmaps, and keeps the open popover to about a sixth of the memory.

Popover open, drawn by Headroom30 MB
Same popover with system glass materials2170 MB

Sleeps when your Mac does.

It reads your limits every 5 minutes while you're working, every 15 when you're not, and not at all while your Mac is asleep or locked.

Listens instead of polling.

File-system events tell it when Claude Code or Codex write new usage, so it doesn't rescan your logs on a timer.

One timer, with slack.

A single timer with built-in tolerance lets macOS batch Headroom's wakeups with everything else's, to save energy.

Heavy lifting, then gone.

The first full scan of your history runs in a short-lived helper that exits when it's done, handing its memory straight back.

Native, through and through.

Swift and AppKit. No web views, no Electron, no runtime to drag along. Just a small app that does one job.

Its ledger, memory-mapped.

The record of what it has already counted lives in a mapped file, so its clean pages don't count toward Headroom's memory.

And so much more.

What your usage is worth.

Tokens hour by hour for the last day, week or month, and what they'd cost at API prices. Drag across the bars to price any stretch, and break it down by model.

The Activity tab: 1.6B Claude tokens over 7 days worth $645.96 at API rates, broken down by model

Caps, early resets, expiring credits.

When one model's cap is the one to watch, when your week resets early, or when reset credits are about to lapse, you'll know.

Fable cap 38% left · getting tight
Reset early on Mon · new week to Mon 4:00 AM
Reset credits · 1 lapses in 2d 2 total. Headroom never spends one for you.

Share your burn.

Right-click any card to copy a share image or a text version. Never with project names or your history.

A Headroom share card for Claude

Plain answers.

When something's off, it says what happened, keeps your last reading, and retries on its own.

Offline. Showing 8:24 AM reading.
Signed out of Claude Code.
All systems normal

Also in your terminal.

Type headroom for the same summary, put a one-line status in your prompt, or have a long job wait until your session frees up.

Terminal
$ headroom statusline
Claude ▮▮▮▮▯ 82% ⏱48m   Codex ▮▮▮▯▯ 59%

$ headroom wait && claude -p "continue the refactor"
⏸ waiting on the 5-hour session · 10:48 AM (48m)

Keep your Mac awake.

Keep a long run going from the right-click menu: for 15 minutes up to 8 hours, until your 5-hour session resets, or until you turn it off.

Cool it harder.

macOS lets the chip run hot before the fans spin up. Set your own curve with two numbers, and long runs stay fast.

Min 60°Max 85° macOS as usualLowest speedFull speed

Setup

Ready in a minute.

A five-step welcome sets it up the first time. Every choice previews live and applies at once, and it's all in Settings later, each section beside a preview of what it changes.

Settings with a sidebar and a live preview of the menu bar Welcome step 3 of 5: shape your menu bar, with a live preview
  1. Pick your tools.Claude Code, Codex, or both.
  2. Shape the menu bar.Both tools or the most urgent, the week or the session.
  3. Tune the 5-hour warning.Warn at 50, 60, 75 or 90%.
  4. Choose notifications.Nearly used, limit hit, and back again.

It only reads.

Headroom never sends a prompt, never uses one of your reset credits, and never changes your sign-in. There's no Headroom server and no sign-up. No analytics, ever.

Stays on your Mac.

Token counts come from files already on your Mac. Nothing you type is stored, and nothing is uploaded.

A short list.

Anthropic's usage page, your iCloud when sync is on, and, if you leave it on, the Claude and OpenAI status pages. That's all of it.

Your iCloud, encrypted.

Sync to iPhone and Watch goes through your own private iCloud, end-to-end encrypted. Prompts, projects and sign-ins never sync.

Local notifications.

Alerts are scheduled on your device. Nothing runs as root unless you turn on Fan Control.

Make room for the week.

Headroom appears in your menu bar a few seconds after install and opens a short welcome to set it up.

Homebrew Recommended

Also links the headroom command and its man page. Update with brew upgrade.

brew install --cask scalexy/tap/ai-headroom

Install script

No Homebrew? This verifies the download, installs to Applications and starts Headroom. Run it again to update.

curl -fsSL https://raw.githubusercontent.com/ScaleXY/headroom/main/install.sh | bash

Disk image

Open the DMG and drag Headroom to Applications. Every release has one.

Download

Requires a Mac with Apple silicon and macOS 15 or later, and Claude Code or Codex signed in to your subscription. iPhone & Watch sync needs an Apple Account with iCloud.