Home ★ Pinned
CPU12 cores
23%
GPUM3 Pro
8%
MEMof 36G
21.4G
NET↑180K
↓2.4M
DISK312G free
61%
BAT2:41 left
84%
Needs attention2
Claude Code finished · left :3000 and :5555 running
3 orphaned node processes · 1.2 GB
All clear · freed 1.2 GB, stopped 5
Top appsCPU · MEM
Google Chrome 23 tabs 18.2% 3.1G
Xcode indexing 11.6% 4.4G
Docker 3 containers 6.1% 2.2G
Cursor 4.3% 1.6G
Slack 0.8% 512M
Keep awake☕ on
Awake 1h 23m · vite is serving :5173
Ports5 listening
:3000 next dev · acme-web Claude Code
:5555 prisma studio · acme-web Claude Code
:5173 vite · docs-site Terminal
:5432 postgres · db · postgres:16 Docker
App / processCPU ▾MEMNET
▾Google Chrome 18.2%3.1G1.8M
Renderer × 21 12.9%2.3G
GPU Process 3.8%412M
Network Service 1.1%96M
▸Xcode 11.6%4.4G—
▸Docker 6.1%2.2G310K
▸Cursor 4.3%1.6G12K
▸node · next dev 3.2%640M4K
▸Slack 0.8%512M2K
▸Spotify 0.6%298M120K
▸System (412)4.9%5.2G
Idle, but heavy1h+
Figma · 1.4 GB · unused for 3h
● Coolno throttling · up 3d 4h
CPU cores6P · 6E
Load 3.12 · 2.84 · 2.61
Memorypressure ok
App 13.7GWired 5.8GCompressed 1.9G
Sensorswatts
CPU die52°C
GPU47°C
Package power6.4 W
Fans0 rpm · silent
Free up spacerebuildable
Xcode DerivedData18.4 GB
node_modules (stale 30d+)6.1 GB
Docker build cache4.7 GB
● OnlineWi-Fi 6E · 5 GHz · −52 dBm
Throughput↓2.4M ↑180K
Speed testnetworkQuality
Download412 Mbps
Upload38 Mbps
Responsiveness1840 RPM
Network by appPRO
Google Chrome↓1.8M↑64K
Docker↓310K↑88K
Spotify↓120K↑2K
Slack↓2K↑1K
Devices13 on this network
Router192.168.0.1
Living Room192.168.0.14
iPhone192.168.0.23
Printer192.168.0.31
:3000 next dev · 41m
acme-web · Claude Code 127.0.0.1
:5555 prisma studio · 38m
acme-web · Claude Code 127.0.0.1
:5173 vite · 2h
docs-site · Terminal 127.0.0.1
:5432 postgres · 3d
db · postgres:16 · Docker 127.0.0.1
:8080 http-server · 6m
demo · Cursor 0.0.0.0 · exposed to LAN
Claude Code · docs-site
running 22m · 4 children · peak 1.1G
running
Claude Code · acme-web
ran 14m · peak 2.3G · 9m CPU
finished
Codex · api
ran 6m · no leftovers
finished
Leftovers & orphans5
next dev :3000 · acme-web640M
prisma studio :5555 · acme-web210M
node tsc --watch · launchd180M
node vitest · launchd120M
esbuild launchd64M
✓ Nothing left behind
☕
Awake 1h 23m
because vite is serving :5173
15m1h2h∞
Download endsOn chargerTask ends…
RulesPRO
● While a dev server runsactive
○ While Docker is busyidle
! Only on AC powerguard
Blocking sleep2
Zoomdisplay sleep
Dockersystem sleep
self 0.2% · 21 MB M3 Pro · up 3d 4h

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

Ports

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.

:3000 Next.js
  1. Process node · next dev pid 48211 · 640 MB
  2. Project acme-web ~/code/acme-web · Next.js 15
  3. Shell zsh pid 48190
  4. Launcher Claude Code session ended 6m ago left behind
OpenCopy URLReveal folderQR for phoneStop
zsh
$ 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.
Agents

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.

Claude Code ~/code/acme-web · running 14m · 2.1 GB
Child processes · 5 1.2 GB
next dev :3000 · acme-web 640 MB
prisma studio :5555 · acme-web 210 MB
tsc --watch child of zsh 180 MB
vitest child of zsh 120 MB
esbuild child of vite 64 MB
Freed 1.2 GB. Stopped 5 processes. Nothing else touched.
CLI + MCP server

Your agent can ask too. statspace --mcp gives Claude Code, Codex and Cursor tools for ports, load, sessions and cleanup.

Something is already on :3000. What is it? Stop it if it’s ours.
statspace whats_on_port port: 3000
next dev · acme-web · started by Claude Code 41m ago · 127.0.0.1
statspace kill_port port: 3000
It was the Next.js dev server from our last session. Stopped it; :3000 is free now.
$ claude mcp add --scope user statspace -- \
    /Applications/StatSpace.app/Contents/Helpers/statspace --mcp
Lightest in its class

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.

self 0.2% · popover closed Idle budget 0.3%
60 s agonow
< 0.3% CPU at idle

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.

On demand Sampling

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.

Live Self-cost

Its own CPU and memory sit in the popover footer, always. If it ever costs too much, you’ll be the first to know.

Everything Stats has.

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.

Compare

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.

Stat SpaceStatsiStat Menus
CPU, GPU, memory, disk, network sensors, battery, fans, Bluetooth
Menu bar charts & widgets
Helpers grouped into their app XPC, Electron renderers — —
Listening ports → project & launcher with an exposed-to-LAN warning — —
AI agent sessions & leftovers Claude Code, Codex, Cursor — —
Orphaned dev-process cleanup — —
CLI + MCP server for agents — —
Keep awake + “why won’t it sleep” — —
Shows its own CPU & memory, live — —
Price Free · Pro once Free, open source Paid

As of November 2026. Spotted something out of date? Tell us and we’ll fix it.

Pricing

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.

Free

$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
  • statspace CLI and MCP server for your agents
Download free
Pro ✦

$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
Get Pro · $9.99

Powered by Polar · license key, no account · refundable within 14 days

Rather build it yourself? Get the whole prompt for Stat Space: every feature, private-framework recipes included. Pay $14.99, or pay $4.99 and spend your weekend.
Prompt pack · $4.99
Questions

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 [email protected] and we'll sort it out.

Get started

Know what your Mac is doing, without adding to it.

Free, no account. Pro is $9.99 once for the first 100 buyers.