macOS menu bar app · free · MIT

HEADROOM

How many more AI agents can your Mac take?

A Matrix-style menu bar meter for agent fleets. Claude Code, Codex, Gemini CLI, Hermes and friends, across every terminal you have open.

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

Paste it in Terminal. On Apple silicon it installs the latest release in about 5 seconds, checksum verified, with no Gatekeeper prompt. On Intel it builds from source with the Xcode Command Line Tools. Needs macOS 13 or later. Got the zip from a browser instead? Here's how to open it.

What it does

Counts agents, not processes

One Claude Code session is a node process plus MCP servers, language servers and shells. Headroom folds each tree into one agent and measures its real memory footprint.

Counts every terminal

One session is one tty: a tab, a split, a tmux pane. Terminal, iTerm2, Ghostty, WezTerm, kitty, Alacritty, Warp, VS Code, Cursor and Zed all count the same way.

Answers one question

Can I start one more? The number on the right is how many more agents fit before the Mac starts swapping hard. It reads tight at 3 or fewer and danger at 0.

The math

# what Activity Monitor calls free
available = total - (app memory + wired + compressed)

# what one more agent will cost: mean physical footprint
# of the running agent process trees, MCP servers included
per_agent = clamp(mean(agent trees), 150M, 4G)   # 600M if none run

headroom  = floor((available - reserve) / per_agent)   # reserve 3G, 6G under pressure

# danger when any of these hold
danger    = headroom == 0  or  pressure == critical  or  (swap ≥ 85% and disk < 10G)

Measured on the author's 36 GB Mac: 29.1G used (11.6G apps + 3.7G wired + 13.8G compressed), 6.9G available, warning pressure so a 6G reserve, 37 agents at 249M each: 3 more fit. Minutes later: 0.

Knows these agents

  • Claude Code
  • Codex
  • Gemini CLI
  • Hermes
  • Aider
  • opencode
  • Goose
  • Cursor Agent
  • Amp
  • Copilot CLI
  • Droid
  • Crush
  • Qwen Code

No network, no telemetry. Reads only the names, arguments and memory of your own processes. Polls every 2 seconds; the rain pauses on Low Power Mode and when the screen sleeps.