The free, open-source Mac monitor that names the culprit and tells you what to do.
Binnacle lives in your menu bar and watches your Mac's health — but unlike a gauge-only monitor, it speaks in plain language: what's wrong, why, which app is responsible, and what to do about it. It learns from your own usage and surfaces concrete, personalized advice.
🔴 Pressure — memory critical, swap 11.6 GB · Firefox
─────────────────────────────────────────────
🧠 Memory ▕████████░░▏ 16% free
⇅ Swap ▕█████████░▏ 11.6 GB used
🖥 CPU ▕████░░░░░░▏ 44% busy (1.2/core)
⚡ Power ▕████████░░▏ battery 76% · 100% cpu
…
Trouble today · last 24h
Memory pressure — Firefox · 5h 43m
CPU maxed out — Android emulator · 5h 1m
Tips
Restart Firefox — frees 3.6 GB
<top CPU app> drove most CPU spikes — close it when idle
- Monitors: memory pressure, swap, CPU load, thermal throttling, battery, per-app resource usage, and app crashes / hangs / out-of-memory kills.
- Judges health the way macOS does: the status (Steady / Watch / Pressure) is driven by
the operating system's own memory-pressure signal (
kern.memorystatus_vm_pressure_level) plus per-core CPU load and thermal state. There are no machine-specific thresholds — it is correct on an 8 GB MacBook Air or a 192 GB Mac Studio without tuning. - Names the culprit: every pressure event records which apps were heaviest, so Binnacle can tell you "the Android emulator drove 37% of your CPU spikes this week."
- Advises from your own data: the tips are generated from your top apps, culprits, crashes, and free disk — not a fixed list. If you've never run an Android emulator, it will never mention one.
- A weekly digest (markdown) and urgent notifications for critical events only.
Everything is local. Binnacle records process names and resource numbers in a local SQLite database, makes no network connections, and needs no root/admin. Data auto-prunes (default 45 days).
- macOS 13 (Ventura) or later, Apple Silicon or Intel.
- No dependencies — a single ~350 KB native binary (Swift + AppKit).
git clone https://github.com/gabrielbrrll/binnacle
cd binnacle
./install.sh # builds, installs, and starts it as a login itemYou'll see a ship's wheel appear in your menu bar. Uninstall with ./uninstall.sh
(your history is kept; the script prints how to erase it).
Or just build and run it once (no login item):
swift build -c release && ./.build/release/BinnacleHomebrew (once a release is tagged): brew install gabrielbrrll/tap/binnacle
(formula skeleton in Formula/binnacle.rb).
Binnacle needs no configuration. Power users can drop a ~/.config/binnacle/config.json to
override the sampling interval, notifications, retention, and the relative CPU/thermal knobs —
see config.example.json. The memory-health judgment always comes from macOS itself and is
not configurable (by design).
MIT.