Mectrics changelog
Back to Mectrics12 releases since July 2026 · GitHub releases, checked Oct 26, 2026
1.9.1Latest
A fix for the Dashboard row in Settings → Menu Bar. Once most modules were grouped there, the readings inside it were squeezed until their names broke into columns of single letters — unreadable exactly when you had the most of them.
Fixed
- The readings grouped into the Dashboard keep their names readable in **Settings → Menu
Bar**. Once most modules were grouped there was no longer room for them on a single row, so each chip was squeezed until its name broke into a column of single letters. The chips now keep their full width and wrap onto another line.
macOS 15 or later, Apple silicon and Intel. Signed and notarized. Zero telemetry.
1.9.0
Readings you do not need in view every second can live in the Dashboard instead: one menu bar icon that opens them as cards. Each module chooses its own place, so CPU can sit in view every second while Disk and Battery stay one click away.
Your menu bar comes through the update unchanged. Nothing moves into the Dashboard on its own, and its icon appears only where the Compact Health item it replaces already stood.
Added
- The Dashboard: one menu bar icon holding whatever you do not need in view. Click it
and those readings open as cards, each with its value, a chart or a ring, and your macOS version and uptime beside them. Click a card for that module's full detail in the same popover. Cards come off from the dashboard itself, by hovering one or right-clicking it; you add them back in Settings → Menu Bar.
- Where each reading goes is a choice per module. Menu bar, Dashboard, both, or off,
on each module's own row. CPU can sit in view every second while Disk and Battery stay one click away, which a single setting for the whole menu bar could not express.
- The Dashboard icon is also the health indicator, and the separate Compact Health
item is gone. It watched the same conditions and showed the same worst one as the dashboard already did, so it was two icons answering one question. The icon takes on a badge when an alert becomes active, and the dashboard opens with what is wrong at the top. A Mac that had Compact Health switched on keeps an item in the same slot.
- Settings → Menu Bar reads as a list of what your menu bar holds, the Dashboard
included: the readings grouped into it sit under its row, and you add and remove them there. Each module's placement is a pop-up beside its name.
- A Device card for the Mac itself, its macOS version and uptime, which can be taken
off the dashboard like any other card.
- A new install starts as a single icon with CPU and memory inside it, rather than filling
the menu bar with readings nobody picked.
Changed
- Your menu bar comes through the update unchanged. Nothing moves into the Dashboard
on its own, and its icon appears only where the Compact Health item it replaces already stood. Everything new is a choice waiting in Settings.
- Menu bar presets are gone. A ready-made layout answered "how much detail do you want",
and the pane now asks where each module goes; replacing every answer at once fits a list you read row by row badly.
- Moving between the dashboard's cards and a module's detail slides rather than cutting,
so the popover reads as one place with two depths. It follows Reduce Motion.
- French now says Cœurs for CPU cores, matching *Cœur le plus sollicité*.
Fixed
- Switching an alert rule off while it was alerting now clears it everywhere. The monitors
reset themselves but told nobody, and a surface only learns a condition is over from being told, so the condition stayed on the menu bar and its Attention Log entry never closed for a rule that was no longer watching anything. A system signal whose reading becomes unavailable is cleared the same way: a condition nobody can read should not go on claiming your Mac is unwell.
- Uptime now counts from startup, sleep included, as the uptime command and System
Information do. It showed the time the Mac had been awake, which stops while it sleeps, so on a laptop that sleeps every night it fell further behind every day. Uptime and battery estimates are also written with your language's own unit abbreviations.
- The Battery detail says Plugged in when the Mac is on its adapter without charging,
held at a charge limit or full, and leaves out a time estimate it has no use for. It went by the charging flag alone, so a Mac sitting on its charger at 80% was reported as On battery.
- Closing a module's popover no longer stops the readings its detail window still shows.
Both reported to one list of what was on screen, so closing either took the module off it.
- The Fans detail shows a dash rather than 0 RPM when the Mac reports no maximum speed.
macOS 15 or later, Apple silicon and Intel. Signed and notarized. Zero telemetry.
1.8.0
Mectrics speaks Simplified Chinese.
简体中文 joins the six languages already here. Every string in the app *and* the widget is translated — not the half-finished pass a new language usually gets first. Choose it under Settings → General → Language.
It is a rewrite rather than a translation. Chinese sentence rhythm is not English sentence rhythm, and this app's voice depends on the rhythm, so the strings were written to read as though they had started in Chinese. Apple's own zh-Hans vocabulary is used where it exists — 活动监视器, 储存空间, 点按 — and CPU and GPU stay in Latin letters, the way Chinese technical writing keeps them.
Four product terms had to be coined: 精简状态 (Compact Health), 关注日志 (Attention Log), 节能守护 (Energy Guard), 温度降频 (thermal throttling). If you read Chinese and one of these reads wrong to you, please open an issue — that feedback is worth more than another feature.
1.7.0
Network can show a graph in the menu bar.
Network is the metric people actually watch move, and it was the one usage module the menu bar could not chart. It now offers Activity + Graph beside plain Activity — the same value-and-trend pairing CPU, Memory and GPU have always had. Pick it for Network in Settings → Menu Bar.
Plain Activity is still the default, so no existing menu bar widens when you update. The graph charts total throughput, which is the series Mectrics keeps history for; the stacked ↓/↑ rates beside it are unchanged.
Network charts are scaled against a fixed floor, not against the last minute.
A rate has no ceiling to normalize against. A chart that re-fits itself to whatever the quietest minute contained stretches a few KB/s of background chatter to full height — and in the menu bar, where there is no axis to read, that looks like heavy traffic. The axis is now anchored at 1 MB/s: an idle Mac draws a flat line, and a real transfer still scales the chart to its own peak.
The network popover had the same fault and no longer does.
1.6.1
The optional switches in onboarding now have a step of their own.
Launch at login and the update question sat underneath the module list. On a Mac that reports more hardware — sensors, fans, a discrete GPU — the list grew and pushed them below the fold, so the one question Mectrics asks about using the network could be missed simply by not scrolling. That is the same as not asking.
The module list is now free to be as long as the machine requires, and the two switches are a step of their own where nothing can hide them.
Nothing else changed. If you are already past onboarding, 1.6.1 behaves exactly like 1.6.0.
Coming from 1.5.x? 1.6.0 added the part this fixes: Mectrics can check for updates itself, once you say it may. It asks first, the request says nothing about you or your Mac, and nothing installs on its own. See the 1.6.0 notes.
1.6.0
Mectrics can look for updates itself, once you say it may.
Automatic checks were off with no way to turn them on, so a fix only ever reached people who thought to go and look. That is backwards for a menu bar app you are meant to forget about.
It asks first. New installs answer during onboarding; everyone else is asked once, on a launch where Mectrics has nothing else to say. Either answer is remembered, and it is changeable any time in Settings › General › Updates.
Saying yes changes *when* the check happens, never what it carries:
- system profiling is off, so nothing about you or your Mac is attached to the request
- an update is never downloaded or installed on its own; Mectrics says a newer version exists and you decide
- with automatic checks off, nothing reaches the network unless you press Check for Updates…
What the update server can observe is what any web server sees from a fetch: an IP address and a timestamp. PRIVACY.md says so in those words.
1.5.0
Settings no longer gets more expensive the longer it stays open. Both panes read live values in their own view bodies, so every sample rebuilt the whole pane — and with it every tooltip and hover region. AppKit answers a tracking-area change by re-resolving the pointer for the window, so the cost climbed instead of staying flat. Live readings now live in small fixed-width leaf views. A 31-minute run with Settings open went from a 74.9% CPU median to 4.3%, from 1422 seconds above 10% to 5, and from a 122 MB footprint growing at 21 MB/hour to 62 MB at 2.9 MB/hour.
The Dock icon goes away again when you close the last window. It was decided by scanning every window the app owned, which always found the window behind a status item, so once the icon appeared it stayed for the session. Closing Settings now also releases its window, returning about 35 MB.
What's New shows the release you actually installed. It listed the same three features regardless of version, so an upgrade was announced with news from an older release.
A flickering temperature sensor no longer rebuilds the menu bar. A GPU reading out of range for one cycle removed a component, which tore down and re-created every status item.
- Temperatures are sampled only where one is on screen — a temperature item, an open popover or detail window, the menu bar builder, or a rule that watches the CPU temperature. A module simply having a menu bar item no longer keeps the SMC busy.
- Battery and disk are read every second base cycle rather than every cycle.
- mectrics://menu-bar opens the Menu Bar pane of Settings.
- mectrics alerts watch --json --heartbeat <seconds> — a tagged NDJSON stream with readiness, liveness, freshness, and sampling-coverage transitions.
- mectrics doctor — validates saved rules, hardware coverage, and the command link, as text or versioned JSON.
- A local performance harness with declared workloads, a Settings-open scenario, and per-sample power logging.
This project holds itself to internal budgets of 60 MB of memory and 3% of a CPU core. Memory is comfortably inside at a 27 MB p95; menu-bar-only CPU sits just above at 3.72%. The measurements, the cost model behind them, and one behaviour that is not yet explained are written down in the architecture notes.
1.4.0
Mectrics 1.4.0 brings headless automation, two alert rules for what macOS reports about itself, and a set of fixes.
A bundled, read-only mectrics CLI for Macs whose menu bar nobody looks at. It reads the alert rules you already configured in the app and never changes them. mectrics check exits 0 when every reading is within its limit, 1 when a limit is crossed and 2 when nothing is configured — enough for cron without writing a parser. Add --json for the detail, mectrics snapshot to capture every module once, or mectrics alerts watch to stream activation and recovery events as newline-delimited JSON.
Install it once from Settings → Alerts → Install CLI…. It creates a symbolic link at /usr/local/bin/mectrics pointing into the signed app bundle — no second download and no background service.
Two alert rules for what macOS reports itself, alongside the existing number thresholds. *CPU and GPU slowed to cool down* fires when the system holds the chip back; a hot sensor and a machine that has actually been slowed are not the same thing, and only the second one costs you time. *Memory pressure* fires on the kernel's own verdict rather than on how full memory looks — a Mac can sit at 95% with nothing wrong. Both wait for the condition to persist, both appear on Compact Health, and both are recorded in the Attention Log.
- What's New now appears after an update installs. It was only shown when the app
was reopened from the Finder, and an update does not do that — it quits Mectrics and starts it again. In practice the release notes never appeared for anyone who upgraded. If you are reading this in the app, that is the fix working.
- Disk throughput no longer reports an impossible figure after ejecting a volume.
Throughput is the difference between lifetime byte counters summed across every disk, so unplugging an external drive made the total go backwards and the subtraction wrapped around.
- The Used and Free menu bar items stay inside their reserved width. Digits are
monospaced but unit letters are not, and MB is wider than the GB the slot had been sized for, so a nearly full disk could nudge its neighbours.
- Fan speeds no fan could reach are ignored instead of shown as readings.
- Fan detection falls back to the per-fan speed keys when a Mac exposes fan data but
not the usual SMC fan-count key.
- Temperatures are no longer sampled for a module that is only being watched by an
alert rule. Reading the SMC is the most expensive thing Mectrics does, and a rule on CPU usage never needed it.
Still zero telemetry. Automatic update checks remain off — Mectrics contacts the update server only when you choose Check for Updates….
macOS 15 (Sequoia) or later, Apple silicon and Intel. Signed with a Developer ID and notarized by Apple.
1.3.0
Changed
- Mectrics uses noticeably less CPU while it sits in the menu bar. A status item is only
redrawn when its reading actually changed, disk space is read through a cheap system call instead of one that wakes a background service every second, and the graphics and sensor readings copy only the values they need.
- Launching is roughly three times cheaper in CPU terms, so the menu bar fills in sooner
after login.
- Monitoring now steps down while nobody can see it — a sleeping display, a locked
screen, or another user's session — and returns to full speed with a fresh reading the moment you come back.
- Battery and disk readings follow their own pace, which slows down further on battery
and under thermal pressure while everything on screen stays current.
Requires macOS 15 (Sequoia) or later. Signed with a Developer ID certificate and notarized by Apple.
1.2.0
- Add independent temperature menu bar items for CPU, Memory, and GPU.
- Show Memory temperature in its detail popover.
- Hide temperature choices when the Mac does not expose a recognized sensor for that hardware domain.
- Localize the new temperature labels in English, Turkish, Russian, Spanish, French, and Brazilian Portuguese.
The DMG is signed with Developer ID, notarized by Apple, and stapled for offline Gatekeeper verification.
SHA-256: 18d8e0250a05228114994bb4171e9ac31fd7a7325e276c7bcfb736a7b1c41f46
1.1.0
Mectrics 1.1.0 adds a complete localized experience and a clean in-app uninstall flow.
What’s new
- English, Turkish, Russian, Spanish, French, and Brazilian Portuguese throughout the app and widgets
- An app language picker in General Settings with a safe relaunch flow
- Natural macOS terminology for battery, memory, disk, network, and system controls
- A built-in clean uninstall action that removes local settings, alert rules, history, and caches
- Localized diagnostics and system-summary exports
Distribution
The attached universal DMG is signed with Developer ID, notarized by Apple, and requires macOS 15 Sequoia or later.
1.0.0
The first release of Mectrics — a lightweight, private system monitor that lives in your macOS menu bar.
Download Mectrics.dmg below, open it, and drag Mectrics to Applications. The app is signed with a Developer ID and notarized by Apple, so it opens without a Gatekeeper detour.
Mectrics has no Dock icon and no window. After launching, look for it in the menu bar.
Requires macOS 15 (Sequoia) or newer.
Nine modules — CPU, Memory, Battery, Network, Disk, GPU, Temperature (SMC), Fans (SMC), and Bluetooth. Unavailable hardware hides itself, and a missing reading shows a dash rather than a fabricated 0. Sparklines are drawn for CPU, Memory, and GPU, where a trend actually tells you something.
Items that hold still — each component reserves a fixed width and right-aligns monospaced digits, so nothing shifts sideways as values change.
Compact Health — one status item that summarizes the machine and speaks up only when something needs attention.
Alert rules with sustained thresholds, live previews, and test delivery, plus a local Attention Log of what tripped and when.
Energy Guard — sampling steps down under Low Power Mode and thermal pressure. This build holds steady at 25 MB of memory with roughly one idle wake per second.
A visual menu bar builder, WidgetKit widgets in three sizes, local-only diagnostics, accent themes, and launch at login.
Zero telemetry. No analytics, no identifiers, no crash reports. Every number comes from a local, read-only system interface. The only network request the app can make is an update check, and only when you choose Check for Updates… — automatic checks are off.
Full statement in PRIVACY.md.
Adding a language needs no code change. See CONTRIBUTING.md.