๐ SSHop
June 11, 2025 ยท View on GitHub
A simple CLI tool to quickly SSH into (or hop to) configured client environments with interactive selection.

โจ Features
- Interactive selection, adding, and updating of clients and environments via
fzfandgum - Supports multiple environments per client (e.g., Staging, Production)
- Reads client/server data from an easy to maintain JSON config file
- Easily configurable and extensible
- Easy Homebrew installation for Mac users
Installation
There are several ways to install SSHop.
๐ Homebrew
You can install sshop via Homebrew from the custom tap:
brew tap skullsneeze/homebrew-tap https://github.com/Skullsneeze/homebrew-tools.git
And then:
brew install sshop
๐ฆ Curl + install.sh
Alternativly you can use the provided install script:
curl -sSfL https://raw.githubusercontent.com/Skullsneeze/sshop/master/install.sh | bash
๐ก Usage
Simply run:
sshop
This will prompt you to select a client and then an environment to SSH into.
Options:
--add, -a Add new client via interactive prompts
--edit, -e Edit existing client via fzf + interactive prompts
--delete, -d Delete existing client via fzf + interactive prompts
--config, -c <file> Use a specific clients.json config file
--help, -h Show this help message
โ๏ธ Configuration
By default, sshop reads the configuration file from:
~/.sshop/clients.json
You can override this by setting the JUMP_CONFIG environment variable or using the --config option:
sshop --config /path/to/your/clients.json
๐ Clients
Clients are managed in a json file using the following structure:
{
"clients": [
{
"name": "Example Client",
"servers": [
{
"name": "Production",
"host": "prod.example.com",
"port": 22,
"username": "ubuntu"
}
]
},
{
"name": "Another Client",
"servers": [
{
"name": "Test",
"host": "test.sample.com",
"port": 1234,
"username": "test_sample"
},
{
"name": "Production",
"host": "sample.com",
"port": 2222,
"username": "root"
}
]
}
]
}
๐ ๏ธ Requirements
fzf(for interactive selection)jq(for processing json clients/server list)gum(for nice looking inputs)
Note that both Homebrew and install.sh will try to install these requirement for you.
๐ญ Example Usage
Add servers to SSHop interactively:

Edit servers in SSHop interactively:

Remove servers from SSHop interactively:
