Jumper
jumper - simple cli ssh manager
Install / Use
/learn @jklaiber/JumperREADME

Installation
With Homebrew
You can use the following command to install Jumper to your system:
brew install jklaiber/tap/jumper
With curl
You can use the following command to install Jumper to your system:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/jklaiber/jumper/main/install/install.sh)"
Manually
You can also download the latest release from the release page and install it manually.
Usage
The tool can be used to connect over ssh to the saved hosts in the inventory.
Connect for example to an ungrouped host:
$ jumper connect ungroupedhost1
Or to a host which belongs to a group:
$ jumper connect -g webservers webserver1
Edit the inventory directly with jumper or with ansible-vault:
$ jumper edit inventory
$ ansible-vault edit .jumper.inventory.yaml
Configuration
Autocompletion
In order to use the autocompletion feature you have to generate the autocompletion file for your specific shell.
Example for bash:
$ source <(jumper completion bash)
You can add this command to your .bashrc.
Inventory
The inventory is completely inspired by the Yaml Ansible inventory (more here).
The following variables mean the same:
- ansible_user = username
- ansible_ssh_pass = password
- ansible_host = address
The basic structure is as follows:
all:
hosts:
ungroupedhost1:
ungroupedhost2:
children:
webservers:
hosts:
webserver1:
address: webserver1.example.com
webserver2:
address: webserver2.example.com
vars:
username: foo
password: bar
dbservers:
hosts:
dbserver1:
address: 192.168.1.10
username: foo
password: bar
dbserver2:
address: 192.168.1.11
username: foo
sshagent: True
sshagent_forwarding: True
fileserver:
hosts:
fileserver1:
vars:
sshkey: /home/user/.ssh/id_rsa
username: globalusername
Variables Inheritance
More generic variables will be automatically applied to the hosts. The prioritization rule is as follows:
- Direct host variables
- Group variables
- Global variables
Authentication Methods
The are three different authentication methods implemented which can be used:
passwordauthentication (password asstring)ssh keyauthentication (path to ssh key)ssh agentauthentication (bool)
The prioritization rule is as follows:
ssh agentssh keypassword
In the example below the choosen authentication method would be sshagent.
all:
children:
webservers:
hosts:
foo.example.com:
username: userfoo
password: passfoo
sshagent: True
vars:
sshkey: /home/user/.ssh/id_rsa
username: globalusername
Encryption
The whole encryption is done with Ansible Vault.
Through the usage of the same mechanism like Ansible Vault, there is also the possiblity to use ansible-vault to edit the inventory file:
$ ansible-vault edit inventory.yaml
The inventory is completely encrypted and can therefore also be synchronised to a e.g. cloud file service like Onedrive or GoogleDrive.
Related Skills
node-connect
338.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
338.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.6kCommit, push, and open a PR
