An open-source terminal SSH manager for macOS and Linux that keeps ~/.ssh/config in sync with your cloud infra. Spin up a VM on AWS, GCP, Azure, Hetzner, Proxmox or 11 other cloud providers and it shows up in your host list. Destroy it and the entry dims. No more hand-editing ~/.ssh/config after every Terraform run, no more grepping cloud consoles for the right IP. A fast Rust TUI with fuzzy search across hundreds of hosts, file transfer, Docker and Podman over SSH, short-lived HashiCorp Vault SSH certificates and an MCP server for AI agents. Keyboard-driven. Single binary. MIT licensed.

Install
curl -fsSL getpurple.sh | sh
brew install erickochen/purple/purple
cargo install purple-ssh
nix profile install github:erickochen/purple
git clone https://github.com/erickochen/purple.git
cd purple && cargo build --release
Claude Desktop users can install the .mcpb bundle for one-click MCP integration (read-only by default). Setup details on the MCP Server wiki. No data leaves your machine. See PRIVACY.md.
Run purple. Press ? on any screen for help. That's it.
Why I built this
My SSH config was fine. Proper aliases, ProxyJump chains, organized by provider. Not the problem.
The problem was everything around it. Need to check a container? ssh host docker ps. Copy a file? scp with the right flags. Run the same command on ten hosts? Write a loop or boot up Ansible for a one-liner. Spin up a VM on Hetzner? Open the console, grab the IP, edit config, save. Someone asks which box runs what? Good luck.
I wanted one place for all of that. So I built it.
What you get
π Everything at a glance. Connection info, jump route, activity sparkline, tags, tunnels, snippets, containers and server metadata. Health dots show which hosts are up. Group by provider, tag or flat.
β‘ Instant fuzzy search. Names, IPs, tags, users. Frecency sorting puts your most-used hosts on top. Works the same with 5 hosts or 500. Scoped search within groups.

βοΈ Your ssh config tracks your infra. Drop in one API token per cloud provider. New VMs land in ~/.ssh/config the moment they boot. IPs stay current as instances move. Decommissioned hosts dim so you can purge them on your terms. No more hand-editing after every Terraform run, no more grepping cloud consoles for the right IP. 16 cloud providers: AWS, DigitalOcean, Hetzner, GCP, Azure, Proxmox VE, Vultr, Linode, UpCloud, Scaleway, Tailscale, Oracle Cloud, OVHcloud, Leaseweb, i3D.net and TransIP. Region, instance type, OS and status travel as metadata next to each Host block.

π³ Containers over SSH. Docker and Podman. Start, stop, restart. No agent on the remote, no extra ports. Just SSH.

π Live tunnel monitoring. Every SSH forward with throughput, channels, clients and uptime. Local, Remote and Dynamic SOCKS. The detail panel reveals which app owns each open channel, in real time.

And more. Visual file transfer with split-pane explorer. Multi-host command execution with snippets. Automatic password retrieval from OS Keychain, 1Password, Bitwarden, pass and the HashiCorp Vault KV secrets engine. Short-lived SSH certificates signed via the HashiCorp Vault SSH secrets engine. Command palette (:) for quick access to all actions. MCP server for AI agents like Claude Code and Cursor. See the wiki for details.
How it works
purple reads ~/.ssh/config directly. No database, no daemon, no account. Comments, indentation, Include files, unknown directives. All preserved.
Written in Rust. Single binary. 6800+ tests. MIT license.
Links
π Wiki Β· βοΈ Cloud Providers Β· π€ MCP Server Β· β FAQ Β· π Security Β· π§ llms.txt
Credits
The font used in the demo videos and screenshots is Berkeley Monoβ’ by U.S. Graphics Company.
Feedback
Bug or feature request? Open an issue.