Live, lightweight system monitor designed for the terminal (Raspberry Pi friendly). SysMon draws a persistent single- or multi-line status area at the top of your terminal showing temperature, CPU, RAM, voltage, disk read/write and network I/O. It also provides an optional desktop launcher.
- Live per-second updates in the terminal (low overhead).
- Per-terminal background monitor so your shell prompt remains usable.
- Optional desktop launcher that opens a terminal running the monitor.
- Auto-detects best network interface and default terminal.
- Optional Raspberry Pi voltage reading via
vcgencmd. - Safe per-tty PID files to avoid duplicate monitors in the same terminal.
- Linux with procfs (/proc and /sys) - developed for Raspberry Pi but works on other Linux systems.
- Bash (POSIX-ish; tested in bash).
- A real terminal device (must be run in a real tty; not a redirected/pipe environment).
- Optional:
vcgencmdon Raspberry Pi for voltage readings. - Optional: a desktop environment (for the desktop launcher).
From a shell on the target machine:
curl -fsSL https://raw.githubusercontent.com/SheepTactics/Pi-mon/main/main%20bash | bashor
wget -qO- https://raw.githubusercontent.com/SheepTactics/Pi-mon/main/main%20bash | bashThis installer will:
- install the monitor to
~/.local/bin/sysmon.sh - install the launcher as
~/.local/bin/stat - optionally add a Desktop entry
~/Desktop/SysMon.desktopwhen visual mode is selected - add
~/.local/binto your~/.bashrcif needed
When the installer runs it prompts:
1- Terminal command only (default)2- Terminal command + Desktop icon (visual mode)
- Start monitor in current terminal:
- Run:
stat(this starts the monitor in the current tty)
- Run:
- Stop monitor in current terminal:
- Run:
stat stop
- Run:
- Restart:
- Run:
stat restart
- Run:
- Pass through to real coreutils
stat:stat FILE...will call the systemstatif available.
If stat is not found immediately after install, refresh your shell:
export PATH="$HOME/.local/bin:$PATH"
hash -ror open a new terminal.
- TMP: temperature in °C (if available via /sys/class/thermal)
- CPU: CPU usage as percentage
- RAM: RAM usage as percentage
- PWR: voltage (vcgencmd) if available
- R/W: disk read/write rate (KB/s or MB/s)
- I/O: network in/out (KB/s or MB/s)
- The
statlauncher spawnssysmon.shin the background for the current tty and creates a per-tty PID file in$XDG_CACHE_HOME(or~/.cache). sysmon.shqueries/procand/sysonce per second, computes deltas for disk/network, and redraws a top status area by setting a terminal scroll region so your shell output scrolls below the status area.- The monitor is careful to avoid duplicate instances for the same tty and cleans up terminal state when it exits.
If you install in visual mode the script will create ~/Desktop/SysMon.desktop. The installer tries to pick a terminal program from this list (first available):
gnome-terminal, xfce4-terminal, lxterminal, mate-terminal, konsole, xterm, alacritty, kitty.
The .desktop file runs stat inside a terminal and leaves an interactive shell after stat exits.
- "SysMon must be run in a terminal." - ensure you're running
statin a real tty (tty prints/dev/pts/*). - If
statdoes not start: check~/.cache/sysmon-<tty_id>.pidand ensure no stale PID is blocking start. - If images do not display on GitHub: the repo contains
Sysmon-v1.0.1Band2Sysmon-v1.0.1Bused as example screenshots. - Voltage shows
N/A: you do not havevcgencmdor the platform doesn't provide the required PMIC values. - To remove the desktop icon in terminal-only mode the installer deletes any existing
~/Desktop/SysMon.desktop.
main bash- Installer script (paste/curl this to run the installer).Sysmon-v1.0.1B,2Sysmon-v1.0.1B- example screenshots/GIFs.- (After install) files placed on user system:
~/.local/bin/sysmon.sh- monitor script~/.local/bin/stat- launcher~/Desktop/SysMon.desktop- optional desktop launcher
- Bug reports and pull requests welcome. Open an issue with details and a reproducible case.
- Please include terminal type, distro, and whether you're on Raspberry Pi when reporting hardware/temperature issues.