A terminal dashboard that shows you exactly how hard your Mac is working when running Claude agents — so you can tell at a glance whether you have room to spin up more instances or if your machine is already at its limit.
Built with Rust. Single binary (~800 KB), no runtime dependencies.
If you run multiple Claude Code agents in parallel — across different projects, terminals, or background tasks — you've probably asked yourself: can I open one more, or will my Mac start crawling?
cmon answers that question. It gives you a single, always-on view of:
- How much CPU and RAM each Claude process is using
- How much system memory is left before things start swapping
- What other processes (Docker, Colima, Postgres, etc.) are competing for resources
- How much disk space Claude's data is taking up
- Your current network and internet throughput
Open it in a corner terminal, keep it running, and you'll always know when it's safe to launch another agent.
┌──────────────────────────────────────────────────────────────────────┐
│ CMON - Claude Monitor Uptime: 2h 34m │
├──────────────────────────────────────┬───────────────────────────────┤
│ PROCESSES (CPU + RAM) │ NETWORK I/O │
│ PID Name CPU% RAM Status │ PID In Out │
│ 44326 claude 35.3% 3.3 GB Run │ 44326 152K/s 3.8MB/s │
│ 80797 claude 17.6% 2.2 GB Run │ TOTAL 646K/s 5.0MB/s │
│ TOTAL 53.3% 5.5 GB │ │
├──────────────────────────────────────┤ RAM: 12.4 / 16.0 GB (78%) │
│ CPU: 23.4% (10 cores) ├───────────────────────────────┤
│ 44326: ▁▁▂▃▅▇████▇▅▃▂▁ │ Name # RAM │
│ Total: ▁▂▃▅▇█████▇▅▃▂ │ claude 3 3.30 GB │
│ │ colima 2 2.14 GB │
│ │ Others 187 1.92 GB │
├──────────────────────────────────────┼───────────────────────────────┤
│ │ DISK / SSD INTERNET │
│ │ Free: 331 GB ↓ 1.2 MB/s │
│ │ [========---] ↑ 340 KB/s │
├──────────────────────────────────────┴───────────────────────────────┤
│ Last refresh: 19:28:03 | Tick #42 | 'q' quit 'r' refresh │
└──────────────────────────────────────────────────────────────────────┘
- Claude process tracking — CPU%, RAM, and status for every Claude process, auto-refreshed every 1.5 seconds
- System RAM overview — Total, used, and available memory at a glance; all values in GB; processes under 100 MB grouped into "Others" to reduce noise
- Top RAM consumers — See what else is eating your memory (Docker, Postgres, Colima, Xcode, browsers, etc.)
- CPU dashboard — Global CPU usage, core count, and per-process sparkline history over the last 60 samples
- Disk usage — Total/free space, usage gauge, and
~/.claudedirectory size - Network I/O — Per-Claude-process network bytes in/out via macOS
nettop - Internet speed — Real-time system-wide upload and download rates
- Adaptive colors — Catppuccin Mocha palette with automatic 256-color fallback for terminals without true color
git clone https://github.com/AgenteMorty/cmon.git
cd cmon
./install.shThe script will:
- Install Rust if not present
- Build the optimized release binary (stripped + LTO)
- Copy
cmonto/usr/local/bin(or a custom path)
cargo build --release
sudo cp target/release/cmon /usr/local/bin/cmonINSTALL_DIR=~/.local/bin ./install.shcmon| Key | Action |
|---|---|
q / Ctrl+C |
Quit |
r |
Force refresh |
↑ / ↓ |
Scroll process list |
- macOS — uses
nettopanddufor some metrics (not available on Linux) - Rust toolchain — installed automatically by
install.shif missing
True color: If your terminal supports 24-bit color (iTerm2, Ghostty, Kitty, Alacritty, WezTerm), set COLORTERM=truecolor in your shell profile for the best colors. Without it, cmon uses 256-color approximations that work everywhere.
| Module | Data source | What it collects |
|---|---|---|
| Process metrics | sysinfo crate |
CPU + RAM per Claude process |
| System RAM | sysinfo crate |
Total / used / available memory |
| System CPU | sysinfo crate |
Global usage + core count |
| Top RAM | sysinfo crate |
All processes grouped by name |
| Disk | sysinfo + du -sk |
Disk capacity + ~/.claude size |
| Network I/O | nettop -P -L 1 |
Per-PID bytes in/out |
| Internet speed | sysinfo::Networks |
Delta-based upload/download rate |
| TUI | ratatui + crossterm |
Rendering + input |
- Rust — no garbage collector, minimal memory footprint
- ratatui + crossterm — terminal UI
- sysinfo — cross-platform system metrics
- Synchronous event loop (no tokio) — faster compile, smaller binary
This project is licensed under CC BY-NC 4.0 — you can use, modify, and share it freely for non-commercial purposes. Commercial use requires permission from the author.