QSSH β Quick SSH Connector
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.
β¨ Features
- Instant discovery β Parses your
~/.ssh/config (and any nested Include 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).
π¦ Installation
Go install (requires Go β₯1.20)
go install github.com/EmreKb/qssh@latest
go install builds QSSH from source on your machine.
π Usage
Just run:
qssh
QSSH will parse your ~/.ssh/config (and any files referenced via Include) and show all matching hosts.
Example SSH config
# ~/.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 |
βοΈ How it works
QSSH uses:
ssh_config to parse your SSH config (including nested Include files).
bubbletea and lipgloss for the TUI.
- Regular
ssh under the hood β once a host is chosen, QSSH replaces itself with the ssh process.
π Development
- Clone the repo and
cd qssh.
go run . β launches the dev build.
π€ Contributing
Bug reports, feature ideas and PRs are welcome!
π License
MIT β see LICENSE.
Acknowledgements
Thanks to the Charm Bracelet crew for the amazing terminal UI ecosystem and to Kevin Burke for the ssh_config parser.