DEV Community

Le Thanh Viet
Le Thanh Viet

Posted on

I built a free, open-source system monitor for the macOS menu bar

TL;DR

MoniMac is a free, open-source system monitor for macOS. It keeps CPU, memory, GPU, network and temperature one glance away in your menu bar, and tells you the moment an app starts dragging your Mac down. It's a native Swift app, under 10 MB, with no account, no analytics and no paid tier.

MoniMac App

What it does

A menu bar that adapts to you

Each metric (CPU, memory, network, GPU, temperature) can live in the menu bar as its own item, in one of three styles:

  • Value only: compact numbers
  • Graph only: a 60-second sparkline
  • Value + graph: the most information, the most width

When a metric runs hot, its item turns into a warning sign. Hover to see the cause, click to find the app behind it. Hold ⌘ and drag to reorder items, or drag one off the bar to hide it.

MoniMac Menu Bar

One click, the whole picture

Click any item and a popover shows every metric at once, plus the apps working hardest right now. Tabs take you to CPU, memory, GPU, network, disk and battery, with live history, per-core load (P and E cores) and the top apps.

Every number, broken down by app

CPU, memory, GPU, network, disk and power for each app, with helper processes grouped under the app they belong to. That last part matters more than it sounds: a browser or Electron app is dozens of processes, and a flat list hides the real culprit.

MoniMac Overview

Alerts based on patterns, not spikes

A single busy second isn't a problem, so MoniMac waits until a pattern holds:

  • CPU: one app stays above your threshold for 2 minutes
  • Memory: an app grows fast (+1 GB in 10 minutes may be a leak)
  • Disk: sustained heavy writes
  • Network: heavy uploads running in the background

And the fix is one click away. The quit sheet lists the app and every helper process with their CPU and memory, then asks apps to quit normally so you can save your work.

Monimac Alerts

Beyond CPU and RAM

  • Battery: charge, health, cycle count, live power draw, and which apps drain it
  • Bluetooth: AirPods left/right/case, keyboard, trackpad and mouse levels
  • Sound: per-app volume, so you can mute the one that keeps chiming
  • Temperature & fans: read-only sensor temperatures and fan speeds

For developers: Projects

This one is for the "that dev server from last week is still running" problem. Projects finds every local dev server (Next.js, Vite, Docker, FastAPI and more), groups them by repo, shows port, uptime and memory, flags the ones idle for days, and lets you stop them in one click.

MoniMac Projects

How it compares

Activity Monitor iStat Menus MoniMac
Live metrics in menu bar ❌ ✅ ✅
Price Free Paid Free
Open source ❌ ❌ ✅
History ❌ ✅ ✅ [30 / 90 days, see note]
Alerts when an app misbehaves ❌ ✅ [verify] ✅
Local dev server finder ❌ ❌ ✅

[Verify the iStat Menus cells before publishing, or delete the table and describe the difference in one paragraph. Stats is another free open-source alternative worth mentioning respectfully.]

Install

Requirements: Apple silicon (M1 or later) and macOS 14.2+. Intel Macs aren't supported.

  1. Download MoniMac.dmg from Releases.
  2. Drag MoniMac into Applications.
  3. MoniMac isn't notarized by Apple yet, so macOS blocks it until you remove the quarantine flag. Run this once in Terminal:
xattr -dr com.apple.quarantine /Applications/MoniMac.app
Enter fullscreen mode Exit fullscreen mode

Updates install from inside the app.

Contributing & feedback

MoniMac is at v0.1.1, so it's early and feedback matters. Issues, ideas and PRs are welcome: https://github.com/lethanhvietctt5/moni-mac

What would you want a menu bar monitor to tell you that Activity Monitor doesn't? Let me know in the comments 👇

Top comments (0)