QSSH is a tiny but powerful terminal user-interface (TUI) written in Go that lets you browse the hosts defined in your SSH configuration and connect with a single keystroke.
- Instant discovery – Parses your
~/.ssh/config
(and any nestedInclude
files) to build the list of hosts. - Fuzzy navigation – Arrow keys or
j / k
to move,Enter
to connect. - Rich details – Shows user, hostname and non-default ports at-a-glance.
- Keyboard-only – Works wherever a terminal works (no mouse required).
- Zero-friction – Once you hit Enter, QSSH disappears and your normal SSH session starts (
qssh
never stays resident).
go install github.com/EmreKb/qssh@latest
go install
builds QSSH from source on your machine.
Just run:
qssh
QSSH will parse your
~/.ssh/config
(and any files referenced viaInclude
) and show all matching hosts.
# ~/.ssh/config
Host my-server
HostName xxx.xxx.xxx.xxx
User root
IdentityFile ~/.ssh/my-server-identity-file
After running qssh
, you might see something like this:
Key bindings:
Key | Action |
---|---|
↑ / k | Move cursor up |
↓ / j | Move cursor down |
↵ Enter / Space | Connect to selection |
q / Ctrl+C | Quit |
QSSH uses:
ssh_config
to parse your SSH config (including nestedInclude
files).bubbletea
andlipgloss
for the TUI.- Regular
ssh
under the hood – once a host is chosen, QSSH replaces itself with thessh
process.
- Clone the repo and
cd qssh
. go run .
– launches the dev build.
Bug reports, feature ideas and PRs are welcome!
MIT – see LICENSE.
Thanks to the Charm Bracelet crew for the amazing terminal UI ecosystem and to Kevin Burke for the ssh_config
parser.