A terminal-based system monitor written in Go that displays CPU, memory, GPU, and process information in real-time.
- Real-time CPU usage (overall and per-core)
- Memory usage statistics
- GPU usage and memory (via nvidia-smi for NVIDIA or rocm-smi for AMD, if available)
- Top processes by CPU usage
- Clean, readable terminal interface
- Go 1.21 or later
- Linux, macOS, or Windows (per-core CPU stats on macOS require a cgo-enabled build — see the macOS note below)
- nvidia-smi (optional, for NVIDIA GPU stats)
- rocm-smi (optional, for AMD GPU stats)
bin is a lightweight binary manager that makes installing and updating sysmon easy:
# Install bin if you don't have it
curl -sSfL https://raw.githubusercontent.com/marcosnils/bin/master/install.sh | sh
# Install sysmon using bin
bin install github.com/PinePeakDigital/sysmonAfter installation, sysmon will be available in your PATH (typically ~/.local/bin/ on Linux/macOS).
go mod tidy
go build -o sysmonmacOS note: per-core CPU stats require cgo (gopsutil reads them via
host_processor_info). A nativego buildenables cgo by default, so this works out of the box. If you build withCGO_ENABLED=0, the per-core view will be empty and only aggregate CPU usage is shown.
./sysmonPress q or Ctrl+C to exit.
The TUI displays:
- CPU and GPU usage percentages
- Memory and GPU memory percentages
- Per-core CPU usage (4 cores per line)
- Top 10 processes by CPU usage (PID, CPU%, MEM%, COMMAND)