Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

GTO — Gum Transmission Operator

A tiny, stylish SSH host manager for the terminal, built on top of gum for interactive picking and rich for themed output panels.

Save your SSH hosts once, then jump to any of them (or your favorite) with a single command — no more memorizing ssh user@10.0.0.somewhere.

Features

  • Fuzzy-pickable host list via gum choose
  • One-command jump to a saved "favorite" host (gg)
  • Add / edit / delete / favorite hosts through a guided menu
  • Per-host custom SSH port (defaults to 22, only prompted when needed)
  • Purple/cyan themed gum prompts and rich panels
  • Success/error confirmation panels after every action — no more silent saves
  • Input guards reject aliases/users/hosts starting with - (prevents ambiguous values from being misread as command flags)
  • Hosts stored as plain JSON at ~/.config/gto.json — easy to inspect, back up, or hand-edit
  • No shell-injection footguns: all subprocess calls use argument lists, never raw shell string interpolation

Requirements

  • Python 3.7+
  • gum installed and on your PATH (gto/gg will tell you if it's missing)
  • ssh client installed

Install

Install directly from this repo with pipx:

pipx install git+https://github.com/wolfercarter-cpu/GTO-ssh

Or, if you've cloned the repo locally:

git clone https://github.com/wolfercarter-cpu/GTO-ssh
cd GTO-ssh
pipx install .

This installs two commands globally:

Command What it does
gto Opens the host picker (or config to manage hosts)
gg Jumps straight to your favorite host

Upgrading

If you're developing locally and want to reinstall after making changes:

pipx install --force .

Usage

Jump to a host — opens a fuzzy picker of all saved hosts:

gto

Jump to your favorite — no picker, straight to the host you've marked as favorite:

gg

(equivalent to gto --fav)

Manage hosts — add, delete, or set a favorite:

gto config

This opens a menu:

  • Add — prompts for an alias (nickname), SSH username, IP/hostname, and optional port (blank = 22). If the alias already exists you'll be asked whether to overwrite it.
  • Edit — pick a saved host and update any of its fields (pre-filled with the current values). Renaming to an alias already used by a different host is blocked.
  • Delete — pick a saved host to remove, with a confirmation prompt.
  • Favorite — pick a saved host to mark as your one-key (gg) target.

If you run gto and have no hosts saved yet, it drops you straight into the Add flow.

Config file

Hosts are stored as JSON at:

~/.config/gto.json

Example:

[
  {
    "alias": "homelab",
    "user": "otakumafia",
    "ip": "192.168.1.42",
    "port": "22",
    "fav": true
  },
  {
    "alias": "gpu-box",
    "user": "otakumafia",
    "ip": "10.0.0.7",
    "port": "2222",
    "fav": false
  }
]

port is optional — hosts saved before the port field existed still work and default to 22.

Feel free to hand-edit this file directly if you'd rather skip the gum prompts.

Uninstall

pipx uninstall gto-ssh

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages