mectrics - Your Mac's vitals in the menu bar. Free and open source.

CPU, memory, battery, network, disk, GPU, temperature and fans in your menu bar. You pick which ones show, and a click opens the detail behind it. Compact Health folds the whole machine into one item that stays quiet until something's off. MIT, macOS 15+.

Add a comment

Replies

Best
Stats proved an open source monitor can be excellent, and iStat Menus set the depth people expect. I wanted something between the two: free and open, with alerting I'd actually trust. The part I use most is Compact Health. It's one menu bar item that summarizes the whole machine and stays quiet until something needs attention, so I'm not reading six numbers all day. Alert rules fire on sustained thresholds rather than momentary spikes, and there's a test delivery so you know what a 3am notification will look like before it happens. Everything is read from local system interfaces. No analytics, no crash reporting; the only network call the app can make is an update check you trigger yourself. Swift, MIT, macOS 15+. Happy to hear what's missing.

 Really like the Compact Health idea - quiet until something's actually wrong is exactly right.

Quick question: your description mentions "temperature and fans" alongside CPU/memory/battery/etc., but the menu bar picker only has 6 modules (CPU, Memory, Battery, Network, Disk, GPU) - no temp or fan module. I see CPU temp does show up as an alert rule, but fans don't appear anywhere.

Are those planned, or just described a bit early?

 Good catch, thanks for flagging it. Temperatures are available as menu bar options inside CPU, Memory, and GPU rather than as a separate module.

Fans should appear as a separate module on Macs with fan hardware.
I found an issue in that detection and fixed it for the next release, also made this behavior clearer in the picker. Thanks again!

Hey, Mectrics v1.4.0 is live! It should fix the issue you reported. Let me know if it’s working on your end now. Thanks again for reporting it!

Compact Health is the bit I'd use. I've got a Mac Mini sitting headless running agent jobs, so the menu bar is exactly where I never look. Is there a way to get the same alert rules out over CLI or JSON so I could pipe them somewhere else, or is it menu bar only for now?

 That’s a really good use case. There’s no CLI or JSON output for alerts right now, but we can build it. I’ll work on adding it in the next release. Thanks for the idea, Dale!

  Nice one, thanks for taking it seriously. If it helps scope it small: the thing I'd want is exit codes rather than something to parse. A `mectrics check` that returns non-zero while a rule is firing, plus `--json` for the detail when I actually want it. That drops straight into a cron or an existing monitoring check without anyone writing a parser, and it's a much smaller job than a daemon or a proper API.

Will keep an eye out for the release.

 Quick update: the CLI you mentioned is now available in Mectrics v1.4.0. If you get a chance to try it on your headless setup, I’d love to hear your feedback. Thanks!

 That was fast. Exit codes plus --json is exactly the right shape, and I will get it onto the Mini and report back properly rather than just guessing at it.

One thing worth settling before the contract hardens, because it is the failure that will bite whoever wires this into a cron.

What does mectrics check exit when it cannot read the sensor? Permission missing, the app not running, a fan module absent on that hardware, a reading that exists on Intel and not on Apple Silicon. If any of those return 0, then "everything is within limits" and "I could not look" are the same exit code, and a monitoring check that cannot separate those will sit there green while the machine cooks.

Three codes rather than two fixes it. 0 for checked and fine, 1 for a rule firing, and something distinct for could not determine. A cron can then treat unknown as its own alert instead of as success, which is most of the reason to run this headless at all.

Same question for alerts watch. If the stream dies, whatever is consuming it sees silence, and silence is indistinguishable from no alerts. A heartbeat line on an interval, even an empty one, is what lets a consumer tell "nothing is wrong" apart from "nothing is running".

Neither is a big change today. Both get painful once people have scripts that depend on 0 meaning fine.

The Compact Health mode is a really thoughtful touch, surfacing issues only when something actually needs attention instead of cluttering the menu bar with constant noise.

 Thanks. It's off by default too, so it only shows up if you decide you want it.

 Thanks for the clarification! That makes it even better — the fact that it's opt-in rather than forced shows you really thought about user experience and respect people's preference for a clean workspace. Smart design choice!

Love that Compact Health folds everything into one quiet menu bar item that only speaks up when something is actually wrong, which is exactly how a monitoring tool should respect your attention.

Seems very reminiscent of iStat Menus. What would you say is the biggest difference?

 Fair comparison. iStat Menus goes much deeper, and I would not claim Mectrics replaces all of it.

The biggest difference is the approach. Mectrics is built to stay quiet, with Compact Health and alerts that only speak up when something persists. It is also free, open source, and has zero telemetry.

Compact Health staying quiet until something's actually off is the detail that matters. Every other menu bar monitor I've used just dumps every number on you all the time and you tune it out.

 Hey, thanks for the comment!

That's exactly why I built it. I had six numbers up there and had stopped

looking at any of them.

It only speaks up if something stays off for a while, not on a quick spike.

Otherwise it just sits there being boring.

Let me know if it ever nags you when it shouldn't.

the GPU and temperature tracking is what caught my eye - I've had my mac silently throttle during long batch jobs before and only noticed afterward from how long everything took. would compact health actually flag sustained thermal throttling, or just raw temperature being high? those aren't quite the same thing and the throttling itself is usually the real problem, not the number on the sensor.

 Right now it's the raw number, so you'd catch a hot sensor but not the

throttling. You're right that the throttling is the part that costs you.

The app already reads ProcessInfo's thermal state, but only to back off its own

sampling. It never surfaces it.

Going into the next release, good contribution. Thanks!

Quick update: this is now implemented in Mectrics v1.4.0. It can now alert when macOS reports that the CPU or GPU is being slowed down to cool the system, rather than relying only on raw temperatures. Thanks again for the suggestion!

congrats on the launch. I run a Mac mini headless most of the day for local model work, so it's basically always on and I'm sensitive to anything that adds its own background load. for a tool that's polling CPU, memory, GPU, temp and fans continuously, what's mectrics' own footprint look like - is the sampling itself negligible, or is there a tradeoff between poll frequency and how much it costs you to run the monitor in the first place?

 Thanks, Gal! That tradeoff was one of my main concerns too. The main app currently settles around 60 to 65 MB of memory. Lightweight metrics update every second on AC and every two seconds on battery, while GPU, temperature, and fan readings run every third cycle.

The planned read-only CLI for the next release should have a lower footprint on headless setups because it skips the UI and samples only what each command needs. If you try Mectrics and see a very different footprint, let me know and I’ll dig into it.

 60-65MB is very reasonable, that's not what I was worried about honestly. good to know the CLI skips the UI layer entirely for headless, that's the part that actually matters for my setup. will give it a try and report back if the numbers look off.

Love that Compact Health folds the whole machine into one item that stays quiet until something is actually wrong, that is the opposite of how these apps usually behave. Free and MIT licensed is a generous move too. Does the compact item still show enough at a glance on a notched MacBook where menu bar space is tight?

 Thanks, Dogan! Compact Health takes up only the space of a single icon. It shows the overall state at a glance, and clicking it opens a popover with the details. It works especially well on notched MacBooks where menu bar space is limited.