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 nestedIncludefiles) to build the list of hosts. - Fuzzy navigation – Arrow keys or
j / kto move,Enterto 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 (
qsshnever stays resident).
go install github.com/EmreKb/qssh@latest
go installbuilds QSSH from source on your machine.
Just run:
qsshQSSH 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_configto parse your SSH config (including nestedIncludefiles).bubbleteaandlipglossfor the TUI.- Regular
sshunder the hood – once a host is chosen, QSSH replaces itself with thesshprocess.
- 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.
