ssht or ssh-tmux.
As a DevOps engineer, every day I used to
open a tmux, create many panes, and in each pane ssh
to a host, then set synchronize-panes on to run commands across all
panes at once.
Then I became familiar with the sshs tool — a great TUI over the ssh_config file that lets you search and connect to your SSH hosts.
I combined these two ideas into ssht, a fast and intuitive TUI that lets you search through your SSH hosts,
optionally multi-select specific servers with Space, and connect to one or batch-open them
in a tmux session (or connect directly without tmux).
- Fast Search: case-insensitive substring match across host aliases, configured IPs, users, and ProxyJump bastions
- Multi-Selection: toggle selection on hosts with
Spaceto open only chosen servers - Smart Sorting: sort with
CTRL+S(selected & reachable hosts float to top, unreachable to bottom) - Batch Tmux Sessions: open in tiled panes (
CTRL+A), synchronized panes (CTRL+O), or separate windows (CTRL+N) - Direct Connect: connect to a single host directly without tmux (
EnterorCTRL+W) - Informative List: displays each host's configured user and IP (
[user@]HostName) next to its alias - ProxyJump / Bastion Support: detects proxy/bastion configs, labels them
[proxy], and avoids false unreachable alerts - Full
IncludeSupport: recursively parsesIncludedirectives with wildcards and relative paths - Live Reachability Check: concurrent TCP pinger (up to 22 hosts in parallel) with green/red status coloring
- CLI Options: custom config file via
-c / --configand optional--no-pingflag - Bottom Status Bar: always-visible shortcuts guide with live selection counter
ssht [options]
Options:
-c, --config <path> Path to custom SSH config file (default: ~/.ssh/config)
--no-ping Disable reachability ping checks
-v, --version Show ssht version
-h, --help Show help message
To install or update to the latest version of ssht, run the following command in your terminal:
curl -sSL https://raw.githubusercontent.com/shabane/ssht/master/install.sh | bashThis script will automatically detect your OS/architecture, download the correct latest release from GitHub, and install it to ~/.local/bin/ssht.
| Key | Task |
|---|---|
| Enter | Open Selected Host in Tmux |
| Space | Toggle selection of host ([x]) |
| Tab | Switch focus between Search and List |
| ↑ / ↓ | Navigate host list |
| PgUp/Dn | Page up/down in host list |
| CTRL+S | Sort hosts (Selected & Reachable first) |
| CTRL+W | Connect Directly to Selected Host (No Tmux) |
| CTRL+A | Open Filtered/Selected Hosts in Tailed Tmux |
| CTRL+O | Open Filtered/Selected Hosts With Synced Panes |
| CTRL+N | Open Filtered/Selected Hosts In New Windows |
| CTRL+G | Open Guide Menu |
| Esc | Reset search / back |
| CTRL+C | Quit |
git clone https://github.com/shabane/ssht.git
cd ssht
go build -o ssht .I guarantee that it works on my machine.




