Noureddine RAMDI / rs-top: agentless remote system monitoring via SSH with a Rust TUI

Created Mon, 04 May 2026 10:23:01 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

ruiiiijiiiiang/rs-top

Remote system monitoring tools often require agents installed on each host, which adds operational overhead and security concerns. rs-top takes a different approach by providing an agentless, SSH-based, terminal user interface (TUI) dashboard to monitor multiple Linux hosts in real time. It cleverly relies on standard Linux commands like top, cat /proc/*, and systemctl run remotely over SSH, eliminating the need for any software deployment on the target machines or sudo privileges.

What rs-top does and how it works

rs-top is a lightweight system monitor written in Rust that connects to one or more remote Linux hosts over SSH and displays real-time system metrics in a terminal dashboard. It supports monitoring multiple hosts concurrently, showing CPU, memory, process, and service status information collected from standard Linux utilities.

Under the hood, the repo uses the openssh-rust crate to manage SSH connections asynchronously, enabling non-blocking parallel polling of all configured hosts. The terminal UI is built with Ratatui, a Rust TUI framework, which provides a responsive dashboard experience with minimal resource consumption. Tokio powers the asynchronous runtime, orchestrating the concurrent SSH command executions and UI updates efficiently.

Configuration is done in a simple TOML file where users can list multiple hosts along with SSH options like custom ports and identity files. The tool respects existing SSH infrastructure such as ~/.ssh/config, known_hosts, and connection multiplexing, making it easy to integrate into established workflows.

The key design choice here is agentless monitoring. Instead of deploying a custom agent or daemon on each host, rs-top runs standard commands via SSH and parses their output to build the dashboard. This approach reduces setup complexity and security surface but trades off some granularity and advanced metrics that a native agent might collect.

Technical strengths and tradeoffs

The most distinctive aspect of rs-top is its agentless architecture. This decision simplifies deployment dramatically: no need for sudo, no extra software on remote hosts, and no additional network ports to open. For environments with strict security policies or limited administrative access, this is a practical advantage.

From a technical standpoint, the repo’s use of Rust is well justified. Rust’s safety and performance traits are ideal for a tool that must maintain multiple SSH sessions and update a real-time UI without lag. Tokio’s async concurrency model is natural for polling several hosts simultaneously, and it appears well implemented here.

Using Ratatui for the terminal UI is a solid choice. The codebase is surprisingly clean for a TUI project, with clear separation between SSH data gathering and UI rendering. The dashboard layout is functional and avoids unnecessary visual clutter.

A tradeoff to note is that relying on parsing command-line outputs from tools like top and systemctl can be brittle. Variations in output across different Linux distributions or versions might cause parsing errors or missing data. This is a known limitation of agentless monitoring and is worth keeping in mind.

Another limitation is the lack of advanced metrics or historical data. rs-top focuses on current state snapshots rather than long-term trends or alerts. This fits its lightweight, ad-hoc monitoring niche but makes it unsuitable for full production monitoring stacks.

Quick start

From Cargo

cargo install rs-top

From Nix (Flakes)

Run directly:

nix run github:ruiiiijiiiiang/rs-top

From AUR (Arch Linux)

Install using an AUR helper like yay:

yay -S rs-top

Requirements

  • Local machine must have the ssh binary installed and accessible in the system path.
  • Remote hosts should be standard Linux systems with access to commands like cat, top, and systemctl.
  • SSH key-based authentication must be configured; password authentication is not supported.

The installation options cover the major use cases: Rust developers can install via Cargo, Nix users can run it declaratively, and Arch Linux users have an AUR package. The SSH key authentication requirement is a reasonable security posture, though it may limit some casual use cases.

verdict

rs-top is a practical, no-frills tool for real-time remote system monitoring over SSH without agents. It excels in environments where deploying monitoring software on each host is problematic or forbidden. The Rust codebase is clean and thoughtfully structured around concurrency and TUI design principles.

The tradeoff is clear: you lose some depth of telemetry and robustness compared to agent-based solutions, and you depend on parsing outputs that may vary slightly across distros. It’s not a replacement for full-featured monitoring platforms but a handy tool for sysadmins, devops engineers, or anyone who wants quick visibility into multiple servers from their terminal.

If you need a lightweight, agentless, and cross-host system dashboard that respects existing SSH infrastructure and can be installed with minimal fuss, rs-top is worth a look. But if you want historical metrics, alerting, or detailed resource profiling, you will need to complement it with other monitoring tools.


→ GitHub Repo: ruiiiijiiiiang/rs-top ⭐ 73 · Rust