A free, open-source system monitor for the macOS menu bar, made for people who build things.
Resources, apps, ports, AI agents, per-app volume and keep-awake in one panel.
The Overview raises a "Needs attention" card for memory pressure, a nearly full disk, thermal throttling, apps hogging the CPU and orphaned dev servers — each with a one-click fix.
Get a notification when an AI agent finishes or is waiting for you, a dev server stops on its own, an app is restarted automatically, the disk is almost full, memory is under pressure or the Mac is very hot. Each type can be turned off; clicking a notification opens the right tab.
- Items: CPU, memory, network, GPU, temperature, power, disk used or free, battery, ports, AI agents, time and date, public IP, ping, uptime, plus keep-awake and microphone indicators that only appear when active.
- One item or many: show everything in one item, or one item per entry — clicking each opens the panel on the matching tab (⌘-drag to reorder).
- Ten looks: stacked, compact, graph, columns, ring, bar, gauge, pill, outline, icons.
- Colours and labels: values in the menu bar colour, your accent, or green → red by load with your own thresholds; custom or hidden labels; system, rounded or monospaced digits.
- Minimal mode: just an icon that turns yellow or red when something needs attention.
| Graphite | Midnight | Paper | High contrast |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Automatic follows the macOS light/dark appearance. Also: seven accent colours or any colour you like, colours by area (CPU, memory, network…), compact/normal/large text, opaque or translucent panel.
English and Italian (follows the system language, or pick one). Shortcuts: ⌥⌘M opens the panel, ⌥⌘1…8 jump to a tab — no Accessibility permission needed. Settings can be exported to a file and imported on another Mac. Right-click the menu bar item for a quick menu.
brew tap mdrzn/tap && brew trust mdrzn/tap # once: Homebrew asks you to trust third-party taps
brew install --cask --no-quarantine mdrzn/tap/menustatsUpdate with brew upgrade --cask menustats.
--no-quarantine skips the first-launch Gatekeeper block described below (MenuStats isn't notarized). Without it, Homebrew installs the app normally and you allow it once as in Option 2.
- Download
MenuStats.zipfrom the latest release and unzip it. - Move
MenuStats.appto your Applications folder and open it. The icon appears in the menu bar.
Apple Silicon and Intel, macOS 14.2 or later.
MenuStats is free and open source, but not notarized by Apple (that requires a paid developer account), so Gatekeeper blocks it the first time. The app is not broken or harmful — you can read and build the source yourself (Option 3).
- Double-click
MenuStats.app. When the warning appears, click Done (not "Move to Trash"). - Open System Settings → Privacy & Security.
- In the Security section you'll see "MenuStats was blocked to protect your Mac". Click Open Anyway.
- Confirm with your password or Touch ID, then click Open.
Only needed once. Or, from Terminal: xattr -dr com.apple.quarantine /Applications/MenuStats.app
Needs macOS 14.2+ and the Xcode Command Line Tools (xcode-select --install), no Xcode project. A locally built app isn't blocked by Gatekeeper.
git clone https://github.com/mdrzn/menustats.git
cd menustats
./build.sh # builds MenuStats.app for this Mac
open MenuStats.app./build.sh --universalbuilds an Apple Silicon + Intel app andMenuStats.zip../make-screenshots.shand./make-demos.shregenerate the images and animations above with demo data (make-demos.shneedsimg2webp:brew install webp)../make-icon.shregenerates the app icon.
MenuStats checks GitHub once a day for a newer release and shows a banner in the panel footer (can be turned off).
- Sensors (temperatures, fans, power) use private macOS interfaces (IOHIDEventSystem and the SMC), like other open-source monitors do. They are read-only, but a macOS update may break them; MenuStats then simply hides the values.
- Per-app volume is off by default. macOS has no per-app volume, so MenuStats uses Core Audio process taps (macOS 14.2+): the app's sound is captured, muted at the source and played back at the volume you choose. This requires the System Audio Recording permission. Audio is never recorded or saved. Quitting MenuStats gives the sound back to the apps.
- Wi-Fi network name: macOS only reveals it to apps with Location permission, so MenuStats shows signal and speed but usually not the name.
Everything is computed locally: no analytics, no account. Port and process information comes from lsof, nettop and libproc; Docker data from your own docker CLI if installed; Claude Code details from its logs in ~/.claude/projects, read-only.
MenuStats only contacts the Internet for things you can see and switch off:
| What | Where | When |
|---|---|---|
| Update check | api.github.com |
once a day; Settings → General |
| Public IP | api.ipify.org |
only if you add the Public IP item |
| Ping | the host you choose (default 1.1.1.1) |
only if you add the Ping item |
| Speed test | Apple's servers via networkQuality |
only when you click Run test |
- Inspired by the idea behind Stat Space, a commercial menu bar monitor. MenuStats is an independent, from-scratch open-source project and shares no code or assets with it.
Made by mdrzn. MIT License.















