A lightweight system monitor TUI built in Rust. Designed for monitoring GPU inference workloads on NVIDIA Jetson and similar Linux machines over SSH.
- CPU — average gauge + per-core breakdown with color coding
- RAM — usage gauge with GiB readout
- Thermals — reads Linux sysfs thermal zones (GPU, CPU, SoC) and hwmon sensors, color-coded by severity
- Network — RX/TX sparklines with rolling history
- Disk I/O — read/write sparklines with rolling history
- Processes — sortable table (CPU or memory), updates at configurable rate
- Snapshots — press
lto dump a CSV snapshot of all processes - Status bar — shows current scan rate, snapshot path, and key hints
Requires Rust 1.70+.
cargo build --releaseIf you're on an Apple Silicon Mac with Docker/OrbStack:
docker run --rm -v "$(pwd)":/app -w /app rust:latest cargo build --release
scp target/release/sysmon-tui user@host:~
ssh -t user@host ./sysmon-tuiThe -t flag is required — the TUI needs a real terminal.
./sysmon-tui| Key | Action |
|---|---|
q |
Quit |
c |
Sort processes by CPU |
m |
Sort processes by memory |
[ |
Scan processes faster (250ms/500ms/1s/2s/5s) |
] |
Scan processes slower |
l |
Save CSV snapshot of current processes |
Press l to dump a snapshot. Creates a timestamped CSV file:
/tmp/sysmon-tui/sysmon-2026-02-10_05-15-30.csv
Format:
timestamp,pid,name,cpu_percent,mem_bytes
2026-02-10T05:15:30.123,150627,python3,407.5,26755072000Override the log directory:
SYSMON_LOG_DIR=~/logs ./sysmon-tui| Crate | Purpose |
|---|---|
| ratatui 0.29 | TUI rendering |
| crossterm 0.28 | Terminal control |
| sysinfo 0.38 | CPU, memory, process, network metrics |
| chrono 0.4 | Log file timestamps |
MIT