MacMonitor
A lightweight macOS menu bar application for real-time system monitoring.
MacMonitor lives in your menu bar and shows live CPU and memory usage at a glance.
It uses native macOS APIs — vm_stat, sysctl, and
UserNotifications — for accurate, low-overhead telemetry.
Capabilities
Native menu bar UI
Bar-chart icon plus live C:XX% M:XX% stats. A colored dot appears for warn, high, or stress.
No app window, no Dock icon. Adapts to light and dark menu bars via template rendering.
Memory breakdown
Reads vm_stat and memory_pressure for Wired, Active, Compressed, and Cached memory.
Flags lag risk when Compressed exceeds Active.
Process intelligence
Top 5 CPU and memory consumers. Kill any process from the dropdown. GPU-heavy apps auto-tagged.
Native alerts
UserNotifications with stable identifiers (replace in-place, not stack). 120-second cooldown per metric.
Installation
Clone
Virtual environment
Usage
MacMonitor appears in your menu bar as C:XX% M:XX%. Click to open the dropdown.
Menu bar states
C:43% M:71%All metrics within thresholds C:58% M:74%Memory pressure at WARN C:91% M:83%Memory pressure is HIGH C:35% M:76%Lag risk — Compressed > ActiveConfiguration
Change thresholds from Settings → Thresholds in the dropdown, or edit defaults in core/config.py. Values persist in ~/Library/Application Support/MacMonitor/config.json.
Auto-start on login
Create a LaunchAgent plist (replace paths with your clone location):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>com.macmonitor</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/MacMonitor/.venv/bin/python</string>
<string>/path/to/MacMonitor/main.py</string>
</array>
<key>WorkingDirectory</key><string>/path/to/MacMonitor</string>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
</dict>
</plist>Logs: ~/Library/Logs/MacMonitor/macmonitor.log — open via View Logs in the menu.