>_smx
open source · MITv0.7.0Linux · macOS

Your servers at a glance, over the ssh you already have.

smx is a live terminal dashboard for your servers. Nothing to install on them and no credentials to set up. If ssh web1 works in your terminal, smx works too.

 sm dashboard   v0.7.0   5/6 up   updated 12 sec ago (next: 48s)
sort: name

  SERVER   TARGET               STATUS      HOSTNAME OS               LOAD           CPU MEM       DISK    UPTIME REBOOT        LATENCY
  web1     web1                 up          web1     Ubuntu 24.04 LTS 0.21 0.18 0.15 6%  1.9G/4.0G 18G/40G 41d 3h no            38ms   
  web2     web2                 up          web2     Ubuntu 24.04 LTS 0.34 0.29 0.22 9%  2.2G/4.0G 19G/40G 41d 3h no            41ms   
  api-2    api-2                up          api-2    Debian 12        2.90 2.41 1.98 88% 3.1G/4.0G 22G/40G 6d 11h yes (12 pkgs) 52ms   
▸ db1      [email protected]:2222 up          db-prod  Ubuntu 24.04 LTS 0.52 0.47 0.40 24% 7.4G/8.0G 74G/80G 12d 9h no            47ms   
  cache1   cache1               up          cache1   Debian 12        0.04 0.03 0.02 1%  0.6G/2.0G 3G/20G  88d 1h no            35ms   
  worker-3 worker-3             unreachable —        —                —              —   —         —       —      —             3002ms 

↑/↓ navigate · enter server menu · m dashboard menu · ctrl+c quit

Yellow and red cells follow your own thresholds. Press enter on any server to drill in, run an action, or edit it.

You already have secure access to every box.

Most monitoring tools want you to install an agent, open a port, and hand a SaaS your keys. smx starts from what you already trust. For every refresh it bundles each metric's small POSIX shell snippet into a single script and runs it in one ssh host /bin/sh round-trip. ssh runs in BatchMode with a connect timeout, so an unreachable host fails fast instead of hanging your dashboard.

0
agents on your servers
1
ssh round-trip per refresh
$0
free and MIT licensed

Watch it, then act on it.

A dashboard you can leave open in a tab, with the fix one keypress away.

No agent. No credentials.

smx shells out to your system ssh, so your ~/.ssh/config, keys, ssh-agent, ProxyJump and known_hosts all just work. If ssh web1 works, smx works.

Import from ~/.ssh/config

sm import pulls in every Host you already have, and re-running it syncs changes. Preview with ‑‑dry‑run, prune stale hosts with ‑‑prune.

Everything at a glance

Hostname, OS, load, CPU, memory, disk, uptime and pending reboots, all colour-coded green, yellow or red against thresholds you set per metric and per server.

Trends, not snapshots

Drill into any server for sparkline history of every metric. History survives restarts, so you can see the disk that has been creeping up all week.

Fix it without leaving the TUI

Restart or reload a service, tail logs, see top processes, or reclaim disk space. Changes are opt-in per server, need a confirmation, and every run is written to an audit log.

Keyboard-driven

Arrow keys and enter reach everything. Every menu item explains itself, and the footer always shows the keys for the screen you are on, so there is nothing to memorize.

Made for cron and alerting

sm status --json has a stable schema, and its exit codes (0 all up, 1 some unreachable) drop straight into cron and CI. sm watch runs your own notify command whenever something changes.

Ad-hoc commands everywhere

sm run -- 'systemctl is-active nginx' runs one command on every server, grouped by host, with non-zero exits and stderr called out.

Pluggable collectors

Each metric is one small Go file with a POSIX sh snippet and a parser. Drop one in and it shows up in the table, the detail view and the JSON. Runs on Linux and macOS.

Three commands to a live dashboard.

step 1
$ sm import

Pull in every Host from your ~/.ssh/config. Nothing new to configure.

step 2
$ sm status

Get a one-shot table of every server. Handy in a script or cron job.

step 3
$ smx

Leave the live dashboard open in a tab. It refreshes on a heartbeat.

Install

Needs the ssh client on your PATH. Building from source needs Go 1.24 or newer.

with Go
$ go install github.com/furvur/server-monitor/cmd/smx@latest
$ go install github.com/furvur/server-monitor/cmd/sm@latest
then
$ sm import      # add every Host from ~/.ssh/config (try --dry-run first)
$ smx            # open the live dashboard

Prefer a binary? Download a prebuilt sm + smx archive for Linux or macOS (amd64 and arm64) from GitHub Releases.

● free and open source

Free to use, free to fork, MIT licensed.

smx is written in Go and developed in the open. Star it, file an issue, or add a collector for the metric you care about.