purple-ssh 0.5.2

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 and user 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. Filter with tag:prod. Comments become visual group headers.

    Sort by frecency.   purple remembers when you connected. Most-used hosts surface first.

    SSH key browser.   Fingerprints, linked hosts, key types. Pick a key from the form with Ctrl+K.

    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.
177 tests 70 unit + 107 integration. Every operation tested for fidelity.
Works everywhere ANSI 16 colors. Any terminal, any theme, 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
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
Ctrl+K Pick SSH key
Enter Save
Esc Cancel