MacMonitor

A lightweight macOS menu bar app built with [Python] and [rumps]. Real-time CPU, memory, and process monitoring — no Electron, no Dock icon, no bloat.

MacMonitor — live preview
5sRefresh Rate
6Metrics Tracked
120sAlert Cooldown
5Top Processes

How It Works

Data flows through four logical stages every 5 seconds. Click each stage to see details.

Collect

Every 5 seconds, native macOS APIs are called to sample the full system state.

vm_stat | grep "Pages"
sysctl -n vm.memory_pressure
psutil.cpu_percent(interval=None)
psutil.process_iter(['pid','name','cpu_percent'])

Features

Switch between views to see what each part of MacMonitor exposes.

macmonitor · menu bar
macmonitor ~/

$ python main.py

C:43% M:71%   ← live in your menu bar

States:
  C:XX% M:XX%          normal
  WARN C:XX% M:XX%     pressure warn
  HIGH C:XX% M:XX%     pressure high
  STRESS C:XX% M:XX%   lag risk detected

Refreshes every 5 seconds. Click to expand.
No Electronpure Python, near-zero overhead
Native alertsUserNotifications, not osascript banners
Process killSIGTERM any process from the menu
Lag detectionflags when Compressed memory exceeds Active
GPU taggingChrome, Electron, Slack auto-labelled
Persistent configthresholds saved to ~/Library/Application Support

Get started

Requires Python 3.9+ and macOS 12 Monterey or later.

Terminal
$ git clone https://github.com/dinexh/Monarx.git MacMonitor
$ cd MacMonitor
$ python3 -m venv .venv && source .venv/bin/activate
$ pip install -r requirements.txt
$ python main.py

Auto-start on login via LaunchAgent — see the [docs]. Logs at ~/Library/Logs/MacMonitor/macmonitor.log.