Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
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.

··Feeds·Contact·Privacy·© 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
8757h 3m agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
Website

root@kitploit:~
                         ███████╗███████╗███████╗██╗  ██╗
                         ██╔════╝██╔════╝██╔════╝██║  ██║
                         █████╗  ███████╗███████╗███████║
                         ██╔══╝  ╚════██║╚════██║██╔══██║
                         ███████╗███████║███████║██║  ██║
                         ╚══════╝╚══════╝╚══════╝╚═╝  ╚═╝
                           Enhanced SSH for people with fleets

crates.io CI License: MIT macOS Linux

A pure-Rust SSH client with a dense, Netwatch-style TUI. Multiple sessions, live host metrics, and fleet-wide divergence — without leaving the terminal.

ESSH Demo

Install

root@kitploit:~
cargo install essh

Or grab a binary for macOS or Linux, arm64 or x86_64, from Releases.

From source:

root@kitploit:~
git clone https://github.com/matthart1983/essh && cd essh
cargo build --release        # ./target/release/essh

Start

root@kitploit:~
essh                          # launcher: type to search, Enter to connect
essh connect deploy@web-01    # straight to a host
essh workspace open prod      # restore a saved set of sessions
essh run web -- uptime        # fan a command across a tagged group

Hosts come from ~/.ssh/config — including IdentityFile, ProxyJump and Match — so there is nothing to import before you start.

Keys

Everything common is one keypress. The shell keeps every Ctrl combination, so Ctrl+D still means EOF and Ctrl+C still interrupts.

For anything else, press Ctrl+A, let go, then the key — s split, w close, t theme, 1–9 jump to session, [/] resize. The strip along the bottom of a session lists the keys that apply right now, so there is nothing to memorise. Change the prefix with prefix_key under [session].

Option/Alt combinations also work when your terminal sends them as Meta, but function keys need no configuration and behave the same on both platforms.

What it does

Divergence

Forty web servers, thirty-nine fine, and one with a different kernel or a hand-edited nginx.conf. A column of green dots structurally cannot show you that.

ESSH groups hosts into peer sets by tag, collects the same facts from each, and scores every host against the group's consensus:

root@kitploit:~
100.0% of 16 facet-checks agree
0 facets diverge across 0 hosts.
2 hosts have never been probed, so their facets are unknown rather than in agreement.

The Fleet screen names the outlier and the facets behind the claim, so the verdict is checkable rather than asserted. Facts it cannot collect are reported as uncollected — never as agreement.

Configuration

State lives in ~/.essh/: config.toml, cache.db, audit.log, sessions/, recordings/, known_cas/.

root@kitploit:~
essh config init      # write a default config
essh config edit      # open it in $EDITOR
essh config resolve web-01   # show how ssh_config resolves a host

Host keys are verified and cached, with a configurable TOFU policy (strict, prompt, auto). Ciphers and KEX algorithms can be restricted.

Full configuration and architecture reference: SPEC.md.

CLI

root@kitploit:~
essh hosts list | add | remove | import | health
essh keys list | add | remove
essh workspace list | open | save | show | remove
essh session list | replay <id>
essh diag <session-id>        # diagnostics for a past session
essh why <host>               # explain why a host will not connect
essh audit tail --lines 20
essh bench                    # published performance numbers

Development

root@kitploit:~
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --check

CI runs all three on every push.

tests/tui_harness.rs drives the real binary on a PTY and asserts on a parsed terminal screen with a deadline, because the failures that matter in a TUI are the absence of a frame rather than a wrong one. The tests that need SSH skip themselves when no host is reachable.

Contributing

Fork, branch, make the change, run the three checks above, open a PR.

License

MIT. See LICENSE.

Download Tool
F1 helpF2 monitorF3 filesF4 port forwards
F5 mini monitorF6 detachF7/F8 prev/next sessionF9 new session
F10 command menu
Multiple sessionsTabs and splits in one window, with per-session scrollback and reconnect.
Live host monitorCPU, memory, disk, network and top processes, sampled in the background so the view is warm when you open it. No agent — plain SSH exec channels.
DivergenceCompares each host against its peer set and tells you which host differs, on which facet, and why.
File transferTwo-pane local/remote browser over SFTP.
Port forwardingAdd, inspect and remove forwards without dropping the session.
Audit and replayStructured JSON audit log; sessions record to asciicast for replay.