purple-ssh 0.10.5

A smart, fast SSH launcher for your terminal. Search, tag and connect to hosts from a TUI. Manages ~/.ssh/config with round-trip fidelity
Documentation

✨ Features

    Launch fast.   purple opens the TUI. purple myserver connects directly. purple prod opens pre-filtered.

    Search everything.   Matches alias, hostname, user and tags as you type. Match count updates live.

    Ping before you connect.   TCP reachability check. One host or all of them.

    Tags and groups.   Tag hosts with labels. Press # to filter by tag. Comments become visual group headers.

    Sort your way.   Config order, alphabetical, most used or most recent. purple remembers your preference.

    SSH key browser.   Fingerprints, linked hosts, key types. Press K in the form to pick a key.

    Quick-add and import.   purple add user@host:port from the CLI. Bulk import from a file or known_hosts.

    Include support.   Reads Include directives recursively. Multi-file configs just work.

    Clipboard.   Copy the SSH command or the full config block. macOS, Wayland and X11.

    Auto-reload and undo.   Detects external changes. Undo accidental deletes with u.


🔒 Safe by default

Round-trip fidelity Comments, formatting, unknown directives. All preserved.
Atomic writes Temp file, chmod 600, rename. No half-written configs.
Automatic backups Every write creates a backup. Keeps the last 5.
Works everywhere Monochrome UI with purple brand badge. Any terminal, any monospace font.
NO_COLOR Respects the NO_COLOR standard.
Shell completions Bash, zsh and fish.

📦 Install

Homebrew (macOS)

brew install erickochen/purple/purple

Cargo

cargo install purple-ssh

From source

git clone https://github.com/erickochen/purple.git && cd purple && cargo build --release

🚀 Usage

purple                              # Launch the TUI
purple myserver                     # Connect or search
purple -c myserver                  # Direct connect
purple --list                       # List all hosts
purple add deploy@10.0.1.5:22      # Quick-add a host
purple import hosts.txt             # Bulk import from file
purple import --known-hosts         # Import from known_hosts
purple --completions zsh            # Shell completions

Host List

Key Action
j / k Navigate up and down
Enter Connect to selected host
a Add new host
e Edit selected host
d Delete selected host
c Clone host
y Copy SSH command
x Export config block to clipboard
/ Search and filter
# Filter by tag
t Tag host
s Cycle sort mode
i Inspect host details
u Undo last delete
p Ping selected host
P Ping all hosts
K SSH key list
? Help
q / Esc Quit

Search

Key Action
Type Filter hosts
Enter Connect to selected
Esc Cancel search
Tab / Shift+Tab Next / previous result

Form

Key Action
Tab / Shift+Tab Next / previous field
K Pick SSH key
Enter Save
Esc Cancel