Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
essh — Enhanced SSH client with TUI — manage connections, keys, and sessions | Kitploit
Tools/GitHubGitHub/matthart1983/essh
Scripting & AutomationNetwork SecurityUtilities & FrameworksAuthenticationRemote Access ToolLog Analysis
GitHubmatthart1983/essh

essh

Enhanced SSH client with TUI — manage connections, keys, and sessions

View Repository
8753514 days agoReviewed by Kitploit
Website

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

ESSH

An SSH workspace with persistent sessions and live health dashboards.

Latest release Release downloads CI status Platforms: macOS and Linux Architectures: x86_64 and ARM64 License: MIT

Keep remote shells running across connection drops, switch between hosts with keys or the mouse, and check system health without leaving your terminal. ESSH uses OpenSSH for connections and tmux to keep your work alive.

See it in action

ESSH admin workflow: Linux commands, health dashboards and session switching

Watch the 42-second demo · Download the browser replay

Inspect disks with df and lsblk, find busy processes with ps, sample system activity with vmstat, and check sockets and interfaces with ss and ip. The demo shows terminal theme switching, side, half and full health views, session switching, help, and a dropped connection recovering the same remote shell.

Install

Download a binary for Linux or macOS, on x86_64 or ARM64, from Releases. Extract the archive and put essh somewhere on your PATH.

You need tmux 3.3+ and OpenSSH locally, and tmux on each remote host. Detailed health metrics are available for Linux hosts.

Or build from source with Rust:

git clone https://github.com/matthart1983/essh.git
cd essh
cargo build --release
./target/release/essh

Connect to a host

ESSH reads hosts from ~/.ssh/config, its own configuration, and its host cache. For example:

Host web-01
    HostName 192.168.1.20
    User deploy
    IdentityFile ~/.ssh/id_ed25519

Run essh, select a host, and press Enter. Use / to filter hosts and Esc to clear the filter. Press a to add a host or e to edit one. OpenSSH handles authentication and host-key checking.

Find your way around

KeyAction
F1Open or close help
F2Cycle terminal → side health → half health → full health → terminal
F3Open Sessions; select a session or press n to start another
F4Return to the main menu while sessions keep running
F5 / F6Switch to the previous / next session
h on HostsOpen health for the selected host
r after a connection dropReconnect
q on HostsLeave ESSH while remote work keeps running

Click session tabs and navigation controls to switch views. Click a row to select it; double-click to connect or switch. Use the mouse wheel to scroll, click panes to focus them, and drag dividers to resize them.

If your keyboard uses the function row for brightness or volume, hold Fn while pressing an F-key, or enable standard function keys in your keyboard settings. The navigation controls are also clickable, and F1 lists the available keys.

Your shell and theme

Remote sessions start the remote account's configured login shell and load its normal startup files—zsh, bash, fish, or whichever shell that account uses. Your prompt, aliases and shell key bindings come from that remote account. Existing shells retain their running state when you reconnect.

ESSH uses your terminal's colors by default. Choose a theme to change the shell's foreground and background along with the dashboard:

essh --theme terminal
essh --theme netwatch
essh --theme light

Press t in menus or health views, or Ctrl+A, then t from a shell, to open the theme picker. Arrow keys preview each palette; Enter or a click applies and saves it. Esc cancels without changing your preference.

Choose Terminal, Netwatch, Light, Solarized, Dracula, Nord, Ocean, or Sky. Netwatch uses a charcoal background with cyan headings and green meters. The selected theme applies across menus, health views, navigation bars and terminal panes. Choose Terminal to restore your terminal’s native colors. Programs and prompts can still set their own colors.

To save a preference, set theme = "terminal" (or another theme name) at the top of ~/.essh/config.toml. Apply it to an open workspace with essh tmux refresh; SSH sessions keep running. Your terminal emulator controls the font and font size.

Choose your health view

Press F2 to cycle through:

ViewWhat you see
TerminalYour shell with the session and navigation bars
Side healthA narrow strip with traffic, CPU, memory, disk and latency
Half healthYour shell and a dashboard sharing the terminal
Full healthNetwork traffic, CPU cores, memory, storage, peers and processes

The dashboards use thin meters and live readings. Unavailable readings show —; disconnected hosts are clearly marked. Narrow terminals skip the side layouts.

In the dashboard:

  • Tab selects a panel; arrows and the mouse wheel scroll.
  • i selects a network interface; c / m sorts processes by CPU or memory.
  • Left / Right browses hosts, including hosts without a connected session.
  • Esc closes full health and restores the previous side view.
  • F2 from full health returns to the terminal with side health off.

For direct access, press Ctrl+A, release it, then h for full health or m to cycle side health → half health → off.

Work across sessions and panes

Use F3, then n, to open another independent session. Switch with F5 / F6, the Sessions picker, or the mouse. F4 returns to the host list without ending your sessions.

Session IDs survive local restarts. Reconnecting reattaches the remote shell when it still exists; if it has ended, ESSH starts a new shell. A disconnected session's remote state remains unverified until you reconnect.

Ctrl+A controls local tmux. Ctrl+B controls tmux on the remote host. Press the prefix, release it, then press the next key:

KeysAction
Ctrl+B, then %Split the remote terminal side by side
Ctrl+B, then "Split the remote terminal top and bottom
Ctrl+B, then an arrowMove between remote panes
Ctrl+A, then vSend the next key directly to the remote application
Ctrl+A, then xTerminate a remote session after confirmation

F1–F6 are reserved for ESSH. Use Ctrl+A, then v, when a remote application needs one of those keys.

Development

cargo fmt --check
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo build --release
ESSH_BIN=target/release/essh python3 scripts/test-tmux-v3.py
Download Tool