Skip to content

AgenteMorty/cmon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cmon — Claude Monitor

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.

macOS Rust License

Why

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.

Layout

┌──────────────────────────────────────────────────────────────────────┐
│  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     │
└──────────────────────────────────────────────────────────────────────┘

Features

  • 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 ~/.claude directory 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

Install

git clone https://github.com/AgenteMorty/cmon.git
cd cmon
./install.sh

The script will:

  1. Install Rust if not present
  2. Build the optimized release binary (stripped + LTO)
  3. Copy cmon to /usr/local/bin (or a custom path)

Manual install

cargo build --release
sudo cp target/release/cmon /usr/local/bin/cmon

Custom install path

INSTALL_DIR=~/.local/bin ./install.sh

Usage

cmon

Keybindings

Key Action
q / Ctrl+C Quit
r Force refresh
/ Scroll process list

Requirements

  • macOS — uses nettop and du for some metrics (not available on Linux)
  • Rust toolchain — installed automatically by install.sh if missing

Configuration

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.

How it works

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

Tech stack

  • 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

License

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.

About

Terminal dashboard to monitor Claude agent resource usage on macOS

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors