Real-time Mac system monitoring dashboard with smart optimization recommendations
Project description
macmon — Mac System Monitor
A dashboard that lives in your browser and tells you exactly what your Mac is doing — and what to do when it slows down. Runs locally. No account. No internet. Nothing leaves your machine.
Quick install
pip3 install macmon
macmon start
Browser opens automatically. Done.
pip3andpipare the same thing on modern Macs — both install Python 3 packages. Use whichever works on your system.
New to this? Skip to the step-by-step install guide below.
Want to run from source?
git clone https://github.com/jagangirisaballa/macmon.git
cd macmon
pip3 install -e .
Why use this instead of Activity Monitor?
Activity Monitor shows you what's happening. macmon tells you what to do about it.
| Activity Monitor | macmon | |
|---|---|---|
| CPU / RAM / Disk at a glance | Scattered across 5 tabs | One screen |
| Stop a background service cleanly | No — force-kill only | Yes, one click |
| Start a stopped service | No | Yes |
| "What should I do right now?" | Nothing | Ranked recommendations with fix buttons |
| Free up inactive memory | No | Yes (with one click) |
| Lives in a browser tab while you code | No | Yes |
What's on the dashboard
Four metric cards (CPU, Memory, Swap, Disk) — colour-coded green/yellow/red, updated every 2 seconds.
Alert banner — appears when macmon detects a problem, with a plain-English explanation. Example: "Swap at 45% — memory pressure building".
Dev Services panel — lists every Homebrew service, Node server, Python server, and MCP server running on your Mac, with a toggle to stop or start each one. Background services quietly consume RAM even when you're not using them — this panel makes it trivial to free that memory.
Recommendations panel — macmon reads your current state and tells you exactly what to do. Examples:
- "Redis using 48 MB — stop if not actively developing" → Execute button stops it
- "Chrome using 1.2 GB across 14 processes — close tabs to free RAM" → manual action
Top Processes — the 10 heaviest processes on your Mac right now, sortable by CPU or Memory, with a kill button (asks for confirmation first).
Step-by-step install (for everyone)
What you need first
- A Mac running macOS 12 (Monterey) or newer
- Python 3.9 or newer — this is the only thing you need to install yourself. Everything else is automatic.
Step 1 — Open Terminal
Terminal is a built-in Mac app. You type commands into it, press Enter, and things happen.
- Press Cmd + Space
- Type
Terminal - Press Enter
A window opens with a blinking cursor. Leave it open — you'll type everything here.
Step 2 — Check if Python is installed
Type this and press Enter:
python3 --version
What you'll see:
Python 3.9.xor higher → you're good, skip to Step 3 — Install macmoncommand not foundorPython 2.x→ you need to install Python (see below)
Installing Python (only if needed):
- Go to https://www.python.org/downloads/ in your browser
- Click the big yellow "Download Python 3.x.x" button
- A
.pkgfile downloads — open it from your Downloads folder - Click Continue → Continue → Agree → Install — enter your Mac password if asked
- When it says "Installation was successful", click Close
- Press Cmd + Q to fully quit Terminal, then reopen it (Cmd + Space → Terminal)
- Run
python3 --versionagain — it should now showPython 3.x.x
Step 3 — Install macmon
pip3 install macmon
What's happening: This downloads macmon and everything it needs directly from the internet. Lots of text will scroll by — that's normal. It takes about 30 seconds.
When your cursor comes back with no red error text, and you see Successfully installed macmon somewhere in the output, you're done.
Step 4 — Start the dashboard
macmon start
Your browser opens automatically and shows the macmon dashboard. You're done.
The address is http://localhost:9999 — this is like a website, but it only exists on your own Mac. Nothing outside your computer can see it.
Daily use — cheat sheet
| What you want to do | Command |
|---|---|
| Start the dashboard | macmon start |
| Open the dashboard (already running) | Go to http://localhost:9999 in your browser |
| Stop macmon completely | macmon stop |
| Check if macmon is running | macmon status |
| View logs (for troubleshooting) | macmon logs |
| Start on a different port | macmon start --port 8080 |
Tip: Bookmark http://localhost:9999. As long as macmon is running you can open the dashboard any time without touching Terminal.
macmon runs in the background — you can close Terminal after macmon start and the dashboard keeps working. Use macmon stop when you want to shut it down completely.
Troubleshooting
macmon: command not found
Close Terminal fully (Cmd + Q), reopen it, and try again. If that doesn't fix it, run pip3 install macmon again.
error: externally-managed-environment
Your Mac is blocking the install to protect its system Python. Run this instead:
pip3 install macmon --break-system-packages
Browser doesn't open automatically
Open your browser manually and go to http://localhost:9999. If that shows nothing, run macmon stop then macmon start.
Dashboard stuck on "Connecting…"
The server stopped unexpectedly. Run macmon stop then macmon start.
Port 9999 is already in use
Something else is using that port. Run macmon start --port 8080 and open http://localhost:8080 instead.
Something else went wrong
Run macmon logs and look at the last few lines. If you're filing a bug report, paste that output into the issue.
Optional: macOS notifications
macmon can send you a native Mac notification (like the ones from Messages or Mail) when your system is under memory pressure.
Requires Homebrew. If you have it:
brew install terminal-notifier
If you don't have Homebrew, skip this — macmon works fine without it.
Requirements
- macOS 12 (Monterey) or newer — Apple Silicon or Intel
- Python 3.9+ (free at python.org)
- Homebrew (optional — enables service stop/start and notifications)
Contributing
PRs welcome. Open an issue first for anything major.
License
MIT © Jagan Girisaballa
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file macmon-1.1.2.tar.gz.
File metadata
- Download URL: macmon-1.1.2.tar.gz
- Upload date:
- Size: 28.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a53abe0dcb6bfa4ba1e719252b67564c9dbb417025e1391418f3e3246dcaded
|
|
| MD5 |
919762ae59f789f61e476b94b4ea13c3
|
|
| BLAKE2b-256 |
c841c59f688784aa2b08219ee0b6e72b6cd54324733f4efed8397c870e272a6a
|
File details
Details for the file macmon-1.1.2-py3-none-any.whl.
File metadata
- Download URL: macmon-1.1.2-py3-none-any.whl
- Upload date:
- Size: 27.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8adc7777e887438476b57c53e0b1150e83896ca0d51b031c22e672dc6ea94f8a
|
|
| MD5 |
09df9dd9fd8f71a54068479884127519
|
|
| BLAKE2b-256 |
d142bb870d92277487d9962c1d6e8263f8b77f554b2b15afbef04c0cd012ab71
|