-
-
Notifications
You must be signed in to change notification settings - Fork 10
Home
Eric Kochen edited this page May 16, 2026
·
32 revisions
purple is an open-source terminal SSH manager and SSH config editor for macOS and Linux. Search, connect to and manage hundreds of SSH hosts from a single TUI. Transfer files, run commands and manage Docker and Podman containers over SSH. Free Rust binary, MIT licensed. Reads and writes ~/.ssh/config directly with full round-trip fidelity, preserving your comments, indentation and unknown directives through every edit.
From the TUI you can:
-
Jump to anything with one keystroke. Press
:for a universal fuzzy search bar across hosts, tunnels, containers, snippets and actions. Searches the SSHUser,ProxyJumpand Vault SSH role too. Like Linear'sCmd+K, but in your terminal - Search and connect to any host instantly with fuzzy search and frecency sorting
- Keep your ssh config in sync with your cloud infra across 16 cloud providers (AWS, Azure, DigitalOcean, GCP, Hetzner, i3D.net, Leaseweb, Linode, OCI, OVHcloud, Proxmox, Scaleway, Tailscale, TransIP, UpCloud and Vultr). New VMs appear in your host list automatically. Decommissioned hosts dim. No more hand-editing after every Terraform run
- Monitor live tunnels across every host on a dedicated Tunnels page. See throughput, channel events and the apps moving bytes, in real time
- Manage containers across your fleet on a dedicated Containers tab. Docker and Podman, grouped per host. Shell in, stream logs, restart, stop, exec or kick a whole compose stack. No agent required
- Browse remote files in a split-screen explorer and copy with a keystroke
- Run command snippets across one host, a selection or all hosts at once
- Retrieve SSH passwords automatically (OS Keychain, 1Password, Bitwarden, pass, Vault KV, Proton Pass or a custom command)
- Sign SSH certificates on demand via the HashiCorp Vault SSH secrets engine with automatic renewal and bulk signing
- Integrate with AI agents via MCP (Model Context Protocol). Claude Code, Cursor and other AI assistants can query hosts, run commands and manage containers
Written in Rust as a single binary with 7300+ tests. MIT license.
curl -fsSL getpurple.sh | shSee Installation for all methods (Homebrew, Cargo, Nix, AUR or from source).
purple # 1. Launch the TUI
# 2. Press a to add a host, or I to import from known_hosts
# 3. Press S to configure a cloud provider
# 4. Press / to search, Enter to connectSee Getting Started for a walkthrough.
| Feature | Description |
|---|---|
| Jump | Press : for a universal fuzzy search bar across hosts, tunnels, containers, snippets and actions. Searches the SSH User, ProxyJump and Vault SSH role too. Field prefixes user:, proxy:, vault:, tag:
|
| Search and connect | Instant fuzzy search across aliases, hostnames, users, tags and providers. Frecency sorting surfaces most-used hosts |
| Cloud Providers | Sync from AWS EC2, Azure, DigitalOcean, GCP, Hetzner, i3D.net, Leaseweb, Linode, OCI, OVHcloud, Proxmox VE, Scaleway, Tailscale, TransIP, UpCloud and Vultr |
| Container Management | Containers tab listing every Docker or Podman container across every host. Shell, logs, restart, stop, exec, stack restart. No agent, no extra ports |
| File Explorer | Dual-pane local/remote file browsing with scp transfer |
| Command Snippets | Save commands, run on single host, selection or all hosts |
| Password Management | OS Keychain, 1Password, Bitwarden, pass, Vault KV, Proton Pass, custom commands |
| Vault SSH Certificates | HashiCorp Vault SSH secrets engine. Signed-cert auth with auto-renewal |
| SSH Tunnels | Dedicated Tunnels page (Tab from Hosts) with live throughput, channel events and per-client roster. LocalForward, RemoteForward, DynamicForward. TUI and CLI |
| Keys | Dedicated Keys page (Shift+Tab from Hosts, or cycle through Tunnels -> Containers with Tab) listing every SSH key in ~/.ssh/ with strength score, randomart fingerprint, encryption status and per-key activity sparkline. Press p to push the highlighted key to multiple hosts at once. Vault-managed hosts skip automatically. Vault SSH cert TTL strip at the top |
| Tags and Search | User tags, provider tags, fuzzy and exact filtering |
| Host Patterns | Manage SSH wildcard patterns (Host *.example.com) from the TUI |
| MCP Server | AI agent integration via Model Context Protocol. Claude Code, Cursor and other MCP clients |
| Whats New | Sticky toast and overlay summarising releases since you last opened. Press n to reopen |
| Round-trip fidelity | Comments, indentation, unknown directives, CRLF and Include files all preserved |
| Multi-alias Host lines |
Host web-01 web-01.prod syntax. Edit, rename and delete from any alias. Shared directives survive when one sibling is removed |
-
Bulk import from hosts files or
~/.ssh/known_hosts(pressI) -
SSH key list overlay Press
Kon the Host List for the legacy read-only key list. The dedicated Keys tab (Tabfrom Hosts) is the multi-action surface: per-key strength, randomart, activity sparkline, linked-hosts panel and multi-host push -
Detail panel Split-pane view with connection info, activity sparkline, tags, metadata, inherited pattern directives (press
v) -
Health status TCP ping with RTT measurement. Status dot (green/amber/red) and response time per host. Auto-ping on startup. Results stay visible and the detail panel shows when each host was last checked. Selecting a host whose result is older than 2 minutes triggers a silent re-ping in the background. Sort by status (
s), filter unreachable only (!). Pressp/Pto refresh -
Clipboard Copy SSH command (
y) or config block (x) - Atomic writes Temp file, chmod 600, rename. Automatic backups (last 5)
- Host key reset Detects changed host keys, offers to remove and reconnect
- Auto-reload Detects external config changes every 4 seconds
-
Self-update
purple updateor TUI notification badge -
Shell completions Bash, zsh and fish via
purple --completions -
Color themes 11 built-in themes (default: Purple). Custom themes via
~/.purple/themes/. Respects NO_COLOR -
Live sync progress Footer shows active provider,
n/totalcounter and running(+added ~updated -stale)diff while syncs are in flight - Breathing host indicator Online dots pulse gently so a quick scan tells you which hosts are alive right now
- Full-width IPs Address column never truncates IP addresses, even next to ProxyJump (↗) and tunnel (⇄) indicators
- Full-width aliases Name column scales to your longest alias and shrinks last on narrow terminals, after LAST and TAGS step aside
Getting started
Features
- Jump
- Cloud Providers
- File Explorer
- Command Snippets
- Password Management
- Vault SSH Certificates
- Container Management
- SSH Tunnels
- Keys
- Tags and Search
- Host Patterns
- Themes
- MCP Server
- Whats New
Reference