rktop is a live terminal dashboard for monitoring multiple Linux servers from one screen.
It runs locally, collects read-only metrics over SSH, and renders CPU, memory, network, disk, uptime, kernel, hostname, and optional CPU temperature in btop-style cards.
- live by default:
rktop - no remote agent or remote install
- optional/offline hosts can be hidden
- btop-inspired braille graphs, bars, and aligned terminal layout
- multiple disks, ZFS pool summaries, aliases, and per-host disk row limits
wget https://github.com/Kinetic27/rktop/releases/download/v0.1.6/rktop_0.1.6_amd64.deb
sudo apt install ./rktop_0.1.6_amd64.deb
rktop config
rktop doctor
rktopUse this when you want rktop and config.toml to stay in one extracted folder.
RKTOP_VERSION=v0.1.6
wget "https://github.com/Kinetic27/rktop/releases/download/${RKTOP_VERSION}/rktop_${RKTOP_VERSION#v}_linux_x86_64.tar.gz"
tar -xzf "rktop_${RKTOP_VERSION#v}_linux_x86_64.tar.gz"
cd rktop
./rktop config
./rktop doctor
./rktopExperimental: run rktop on macOS to monitor Linux SSH hosts. Local macOS metrics are not implemented yet.
RKTOP_VERSION=v0.1.6
wget "https://github.com/Kinetic27/rktop/releases/download/${RKTOP_VERSION}/rktop_${RKTOP_VERSION#v}_macos_x86_64.tar.gz"
tar -xzf "rktop_${RKTOP_VERSION#v}_macos_x86_64.tar.gz"
cd rktop
./rktop config
./rktop doctor
./rktopPortable zip:
$Version = "v0.1.6"
Invoke-WebRequest "https://github.com/Kinetic27/rktop/releases/download/$Version/rktop_${Version}_windows_x86_64.zip" -OutFile rktop.zip
Expand-Archive .\rktop.zip -DestinationPath . -Force
cd .\rktop
.\rktop.exe config
.\rktop.exe doctor
.\rktop.exeUser PATH installer:
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/Kinetic27/rktop/main/scripts/install.ps1 | iex"Windows support is scoped to SSH monitoring: native rktop.exe can monitor Linux SSH hosts. Local Windows metrics are not implemented yet.
git clone https://github.com/Kinetic27/rktop.git
cd rktop
scripts/install.sh
./.rktop/bin/rktop config
./.rktop/bin/rktopSource install stays inside the clone under ./.rktop/.
rktop configrktop config opens the TUI config manager. It can add SSH hosts, add the local Linux machine, test SSH, show ssh-copy-id guidance, reorder hosts, mark hosts optional, and edit disk display options.
Remote hosts need key-based SSH:
ssh -o BatchMode=yes user@host trueNo remote writes, installs, or credential prompts are performed. SSH probes and metric collection have bounded timeouts, so broken SSH commands do not hang the app indefinitely.
Useful commands:
rktop doctor
rktop --live --snapshot
rktop editConfig lookup order:
--config PATH
$RKTOP_CONFIG
./config.toml beside the executable
~/.config/rktop/config.toml or $XDG_CONFIG_HOME/rktop/config.toml
/etc/rktop/config.toml on Linux
legacy ~/.config/server-tui-monitor/config.toml
Minimal config:
refresh_interval_ms = 1000
[[servers]]
id = "local"
name = "Local"
source = "local"
[[servers]]
id = "server-1"
name = "Server 1"
source = "ssh"
host = "server-1"
optional = false| Environment | Status |
|---|---|
| Linux x86_64 | supported |
| Debian / Ubuntu | supported with .deb |
| Windows 10/11 | supported for monitoring Linux SSH hosts |
| macOS | experimental for monitoring Linux SSH hosts |
| Target | Status |
|---|---|
| Linux over SSH | supported |
| Local Linux machine | supported |
| Proxmox host/VM over SSH | supported |
| Linux NAS / TrueNAS SCALE over SSH | supported when Linux shell access works |
| TrueNAS CORE / FreeBSD / BSD | not supported |
| Windows remote | not supported |
Remote Linux hosts should provide a POSIX shell, /proc, df, awk, grep, hostname, uname, and base64 when monitored from Windows.
refresh_interval_ms is clamped to 100..60000. In the TUI, +/= and - adjust it in 100ms steps. Unix-like machines running rktop use SSH ControlMaster=auto and ControlPersist=10m for faster repeated polling. Windows OpenSSH does not use those Unix socket multiplexing options. Optional hosts that fail are skipped briefly before retrying.
| Key | Action |
|---|---|
q, Esc, Ctrl+C |
quit |
+, = |
faster refresh |
- |
slower refresh |
rktop [--mock|--live] [--snapshot] [--once] [--config PATH]
rktop init [--config PATH] [--force|--print]
rktop config [--config PATH]
rktop setup [--config PATH]
rktop edit [--config PATH]
rktop doctor [--config PATH]
Legacy compatibility wrappers are still packaged: stm, stm-live, stm-mock, and stm-snapshot.
Tests do not open live SSH connections or require remote credentials. Live SSH/manual checks are intentionally outside automated tests.
cargo fmt --check
cargo check --locked
cargo test --locked
cargo build --release --lockedBuild a local Debian package:
scripts/build-deb.sh
sudo apt install ./dist/rktop_0.1.6_amd64.debDevelopment uses a lightweight Git Flow style. main is stable/release-ready. develop collects the next batch of changes before release merge-back to main, and work happens on topic branches. See docs/branching.md.

