netwatch ~ ~/labs/essh.md
beta·v0.2.7
← all tools
essh.tui

essh

Enhanced SSH client for server fleets.

Most SSH tools stop at "you are connected." ESSH is built for what happens after that — working across multiple hosts without juggling terminal windows, watching CPU/memory/disk/network/process pressure while you’re on the box, and keeping connection diagnostics, recordings, file transfer, and port forwarding in the same workflow.

It’s a pure-Rust stack built on russh, ratatui, and vt100 — no OpenSSH UI dependency. ESSH is for people who manage real systems and want their SSH client to act like an operations tool, not just a transport. Connects where NetWatch observes.

$cargo install essh
~ $ esshtui
essh TUI demo
// essh · loops · no audio▶ playing
// 01 · install

Install

Cargo
$cargo install essh

macOS and Linux only. Windows is not a supported local build target at this time.

From source
$git clone https://github.com/matthart1983/essh.git && cd essh && cargo build --release
// 02 · first 60 seconds

First 60 seconds

On first launch, ESSH creates ~/.essh/ with a working config, SQLite host cache, diagnostics directory, and audit log.

  1. 1
    Launch the dashboard
    $essh
  2. 2
    Direct connect
    $essh connect user@host
  3. 3
    Use a specific (or encrypted) key — prompts for the passphrase
    $essh connect user@host -i ~/.ssh/id_ed25519
  4. 4
    Pull hosts from your existing SSH config
    $essh hosts import
  5. 5
    Run a command across a tagged group
    $essh run web-servers -- uptime
// 03 · feature highlights

Feature highlights

Multi-session without the messUp to 9 concurrent SSH sessions, instant switching with Alt+1-9 / Alt+←→ / Alt+Tab, split-pane terminal plus host monitor with Alt+s, and scrollback preserved across reconnects.
Remote insight without an agentCPU, memory, load, disk, network, uptime, and top processes with sparkline history — collected over SSH exec channels, so there’s nothing extra to install remotely.
Fleet features that matterImport hosts from ~/.ssh/config, tag hosts and define groups, run commands across a group with parallel fan-out, and background fleet probes with latency history and color-coded state.
Built for real SSH workPublic key, password, and SSH agent auth; encrypted OpenSSH keys with interactive passphrase prompts; TOFU host-key verification (strict / prompt / auto); jump host / ProxyJump; live local port forwards; and a two-pane file browser for upload and download.
Built-in safety netsExponential backoff reconnects, a structured JSON audit log, per-session JSONL diagnostics, optional asciicast v2 recording and replay, and regex-based background notifications for important output.
// 04 · keyboard flow

Keyboard flow

Global and session-ops keys. The dashboard has its own navigation set (1–4 tabs, j/k, Enter to connect, / to filter).

KeyAction
? / Alt+hHelp overlay
Alt+1 – Alt+9Jump to session
Alt+← / Alt+→Cycle sessions
Alt+TabLast-used session
Ctrl+pCommand palette
Alt+mHost monitor
Alt+sSplit pane
Alt+fFile browser
Alt+pPort forwarding
Alt+tCycle theme
Alt+dDetach to dashboard
Alt+wClose session
// 05 · bring structure to a messy fleet

Bring structure to a messy fleet

Tag hosts and define groups in ~/.essh/config.toml, then fan commands across a group.

[[hosts]]
name = "web-prod-1"
hostname = "10.0.1.10"
user = "deploy"
key = "~/.ssh/id_ed25519"

[hosts.tags]
env = "production"
role = "web"

[[host_groups]]
name = "web-servers"

[host_groups.match_tags]
role = "web"
// 06 · cli cheat sheet

CLI cheat sheet

essh                                  # launch dashboard
essh connect user@host                # direct SSH session
essh hosts list                       # list cached hosts
essh hosts import                     # import from ~/.ssh/config
essh keys list                        # list cached keys
essh run web-servers -- uptime        # fan a command across a group
essh session list                     # list recordings
essh session replay <session-id>      # replay a recording
essh audit tail --lines 20            # inspect recent audit events
essh config show                      # print active config
// 07 · security

Security

Host keys are verified and cached, with a configurable TOFU policy (strict / prompt / auto). Allowed ciphers and KEX algorithms can be restricted. Audit events are written as structured JSON, and session diagnostics and recordings are explicit, inspectable artifacts — ESSH gives operators more visibility without hiding what the tool is doing on their behalf.

// related