The budget on an M1 at 1 s sampling with the popover closed. A benchmark checks it on every build, and a regression doesn’t ship.
Live demo — click the tabs, the menu bar, or Clean up.
Stat Space
The menu bar monitor for people who build things.
CPU, memory, network and sensors, plus the answers you actually need: what’s on :3000 and who started it, what your AI agent left running, and why your Mac won’t sleep.
Apple Silicon· macOS 14 Sonoma+· Free forever, no account
What’s on :3000? Who started it?
Every listening port, traced to its project folder and whatever launched it: a terminal, your editor, an AI agent, launchd or Docker. Servers reachable from your network get flagged.
- Process node · next dev pid 48211 · 640 MB
- Project acme-web ~/code/acme-web · Next.js 15
- Shell zsh pid 48190
- Launcher Claude Code session ended 6m ago left behind
- Process node · prisma studio pid 48377 · 210 MB
- Project acme-web ~/code/acme-web · Next.js 15
- Shell zsh pid 48190
- Launcher Claude Code session ended 6m ago left behind
- Process node · vite pid 51022 · 188 MB
- Project docs-site ~/code/docs-site · Vite 6
- Shell zsh pid 50998
- Launcher Terminal window 2, tab 1
- Process com.docker.backend pid 1882
- Container db image postgres:16 Pro
- Runtime OrbStack mapped 5432 → 5432
- Launcher Docker running 3d
- Process node · http-server pid 60417 · 54 MB
- Project demo ~/code/demo
- Shell zsh pid 60380
- Launcher Cursor integrated terminal
$ statspace ports PORT PROCESS PROJECT PID LAUNCHER UPTIME BIND :3000 next dev acme-web 48211 Claude Code 41m 127.0.0.1 :5173 vite docs-site 51022 Terminal 2h 127.0.0.1 :5432 postgres:16 db 1882 Docker 3d 127.0.0.1 :8080 http-server demo 60417 Cursor 6m 0.0.0.0 exposed 1 port is reachable from your network (bound to 0.0.0.0 or a LAN address). $ statspace kill 3000 Stop next dev (pid 48211) on :3000? [y/N] y Stopped next dev.
Your agent finished. Its servers didn’t.
Stat Space watches Claude Code, Codex and Cursor sessions: runtime, CPU, child processes and the ports they open. When a session ends, whatever it left running shows up, ready to clean up in one tap.
Your agent can ask too. statspace --mcp gives Claude Code, Codex and Cursor tools for ports, load, sessions and cleanup.
$ claude mcp add --scope user statspace -- \
/Applications/StatSpace.app/Contents/Helpers/statspace --mcp Costs less than what it measures.
A monitor that shows up in its own top-apps list has failed. The menu bar is drawn with Core Graphics, the popover’s UI exists only while it’s open, and the sampling loop doesn’t allocate.
Samplers run only for what you can see: a menu bar item, an open tab, a pinned card, or an active rule. Everything else sleeps.
Its own CPU and memory sit in the popover footer, always. If it ever costs too much, you’ll be the first to know.
Plus what it doesn’t.
All the system stats you’d expect, free. Then the tools you’d otherwise reach for Activity Monitor, Terminal or three other apps to get.
Every metric, free
CPU with performance and efficiency cores, GPU, memory pressure, disk, network, temperatures, power in watts, battery, fans and Bluetooth devices. Everything Stats does, at no cost.
Apps, not process noise
Helpers, XPC services and Electron renderers roll up into the app they belong to. Search, quit, force-quit, and a banner when something stops responding.
Keep awake, with a reason
Timers, plus “until the download ends”, “while on the charger” and “until this task exits”. And a list of whatever else is holding your Mac awake.
A network toolkit
Speed test with a live chart, ping, traceroute and DNS lookup, Wi-Fi link details, captive-portal check, and every device on your network.
Free up developer junk
Xcode DerivedData, simulator caches, package-manager caches, node_modules from projects you haven’t touched in 30 days, Docker build cache. Shown first, deleted only when you confirm.
A Home you pin
Pin any tile or card (CPU cores, top apps, ports, agents, sensors, world clock) to Home, in your order. One click on the menu bar, everything you care about.
Your menu bar, your way
One item per module, each as text, a stack, a line or bar chart, a pie, a speed readout or a gauge. Start from a preset, then tweak.
Battery health, honestly
Real capacity against design capacity in mAh, cycle count, condition, temperature, and the wattage of the charger you plugged in.
Widgets & alerts
Desktop widgets for the main modules, and notifications when CPU, memory, disk, battery or temperature cross a line for longer than you allow.
Same stats. Different questions.
Stats and iStat Menus are great at more metrics. Stat Space matches them on the basics, for free, and then answers what developers ask all day.
As of November 2026. Spotted something out of date? Tell us and we’ll fix it.
Detailed comparisons: Stats, iStat Menus, Activity Monitor, Amphetamine, lsof →
Free forever. Pro is one-time.
Free is everything above, no account, no trial. Pro is a single purchase for the questions no other monitor answers. Same deal as Lofi Space: no subscription, ever.
$0 · forever
- Every system metric, menu bar widgets and desktop widgets
- Apps grouped, ports traced, exposed-port warning
- Agent watch, leftovers and orphan cleanup
- Keep-awake timers and “why won’t it sleep”
- Speed test, ping, traceroute, devices, storage cleanup
-
statspaceCLI and MCP server for your agents
$9.99 · one-time
Launch price for the first 100 buyers, then $14.99
- Network by app: upload and download per app
- Keep-awake rules: while an app or port runs, the network is busy, on AC, on a schedule
- Docker mapping: ports to container and image
- “Why is my Mac slow?” in one tap, plus a process dictionary
- Spike rewind: the top 3 processes behind every spike
- Battery drain since unplug, per app
- App alerts and who’s phoning home
- Remote monitoring on a web dashboard
Powered by Polar · license key, no account · refundable within 14 days
Quick answers.
Is Stat Space really free?
Yes. Every system metric, menu bar and desktop widgets, app grouping, ports, agent watch, orphan cleanup, keep-awake timers, the network and storage tools, and the CLI + MCP server are free forever. Pro is a one-time purchase ($9.99 for the first 100 buyers, then $14.99) for per-app network, keep-awake rules, Docker mapping and the rest. No subscription, no account.
Which Macs does it run on?
Apple Silicon Macs (M1 and later) on macOS 14 Sonoma or newer. It ships as an arm64-only binary: the sensors, power and per-core readings it uses are Apple Silicon specific.
Why isn’t it on the Mac App Store?
Per-process stats, sensors, power and per-app network all need APIs the App Store sandbox doesn’t allow. Stat Space is a direct download, signed and notarized by Apple, and updates itself with Sparkle.
Could a cleanup kill something important?
No. Orphan cleanup only looks at developer tools (node, python, vite, tsc and friends) that were left running after their terminal or agent session ended. It never touches system processes, and it always shows you the list and asks before stopping anything.
How do I connect it to Claude Code, Codex or Cursor?
Settings → CLI & MCP shows a ready-to-paste snippet for each. For Claude Code it’s one line: claude mcp add --scope user statspace -- /Applications/StatSpace.app/Contents/Helpers/statspace --mcp. Destructive tools like kill_port still ask before acting.
Does it send my data anywhere?
The app has no analytics and no account. It makes a few network requests of its own: your public IP from ip.statspace.app, license checks with Polar if you buy Pro, and the Sparkle update feed. A speed test talks to Apple’s servers, and only when you start one. Remote monitoring (Pro) streams metrics only if you turn it on.
How do refunds work?
Purchases go through Polar, which offers a 14-day refund window. Email support@statspace.app and we'll sort it out.
Know what your Mac is doing, without adding to it.
Free, no account. Pro is $9.99 once for the first 100 buyers.