purple. Terminal SSH client.

Find any server. Connect in a keystroke.

purple — ssh
$

Your SSH config has 500 hosts. You need the right one now. purple gives you instant search, visual file transfer and cloud sync in a TUI that edits your ~/.ssh/config directly. No context switching.

16-provider cloud sync

AWS, GCP, Azure and 13 more. Servers sync in. Decommissioned ones get flagged, not lost.

Visual file transfer

Dual-pane explorer. Browse remote files, copy with Enter. No scp paths to remember.

Instant access

Search 500 hosts, connect in a keystroke. Frecency sorting learns what you use most.

Quick start

1. Installcurl -fsSL getpurple.sh | sh
2. Launchpurple
3. SyncS to add a cloud provider
4. Connect/ to search, Enter to connect

SSH client features

features
$ purple --features
searchFuzzy search across aliases, hostnames, users and tags
snippetsRun the same command on 50 servers. Sequential or parallel
tagsOrganize by environment, team or project. Filter with #tags
dockerManage containers on remote hosts over SSH. Start, stop and restart. Auto-detects Docker or Podman. No agent. No web UI
tunnelsManage port forwards per host. Start and stop from the TUI
passwordsOS Keychain, 1Password, Bitwarden, pass, HashiCorp Vault or custom commands. Automatic on connect
fidelityComments, formatting and unknown directives stay untouched
ssh keysBrowse keys with metadata and see which hosts use each key
soft-deleteDisappeared cloud hosts are dimmed, not deleted. Purge when ready
importPress I to import from known_hosts, or use the CLI for hosts files
atomicTemp file, chmod 600, rename. With automatic backups
detailConnection info, activity, provider metadata, tunnels and snippets
pingCheck which servers are reachable before you connect
mcpMCP server for Claude Code, Cursor and other AI agents. Five tools over JSON-RPC 2.0

Cloud provider SSH sync: AWS, Azure, GCP, OCI and 12 more

Pull servers from sixteen cloud providers directly into your ~/.ssh/config. The DevOps SSH tool for multi-cloud teams. Sync adds new hosts, updates changed IPs and stores provider tags separately. Your own tags are never touched. Provider metadata (region, plan, OS, status) is stored in config comments and displayed in the detail panel.

Press S in the TUI to manage providers and trigger a sync. Preview changes with purple sync --dry-run from the CLI. Remove deleted hosts with --remove.

Your config, respected

purple reads and writes ~/.ssh/config directly with full round-trip fidelity. Comments, indentation, unknown directives, CRLF line endings and Include files are all preserved. Every write is atomic with automatic backups.

Built with Rust

Starts instantly. No dependencies to install. No daemon running in the background. Won't corrupt your config. Single binary. MIT licensed. 5000+ tests.


Who uses purple

SRE managing 200 servers across AWS, GCP, Oracle Cloud and Hetzner. Search, tag and connect in seconds.
Developer transferring config files and logs between servers without typing scp paths.
Freelancer managing client infrastructure across multiple clouds from one TUI.
Sysadmin running the same diagnostic command on 50 servers at once with snippets.
Homelab operator managing Docker stacks across three VPS hosts. View, start and stop containers over SSH without Portainer.
AI-assisted developer using Claude Code or Cursor to manage servers through natural language. purple mcp bridges your AI assistant to your SSH fleet.

Why purple vs other SSH tools

vs. manual SSH config editing. Keep your existing config. purple adds instant search, tags, cloud sync, snippets, password management and a visual file explorer on top.
vs. Termius / Royal TSX. Free forever. No subscription, no vendor lock-in. Edits your real SSH config directly. Your config, your rules.
vs. storm / sshs. Full TUI with config editing, cloud sync from 16 providers, visual file transfer, snippets and password management. Not just a host selector.
vs. Ansible / Fabric. Run ad-hoc commands on 50 servers without writing playbooks or inventory files. Snippets with parallel execution, zero setup.
vs. Portainer / Dockhand / Lazydocker. Manage containers through your existing SSH connection. No agent to install, no web UI to host, no ports to open. Works with Docker and Podman across your fleet.

FAQ

PURPLE(1)General Commands ManualPURPLE(1)
NAME
purple — terminal SSH client for macOS and Linux
DESCRIPTION
Search, connect to and manage SSH servers. Visual file transfer, cloud sync from 16 providers, container management, password management, command snippets and tunnel management.
FREQUENTLY ASKED QUESTIONS
What is purple SSH?
A free, open-source terminal SSH client. Search hundreds of hosts, connect instantly, transfer files visually, run commands across servers, sync from sixteen cloud providers and handle SSH passwords automatically. Single Rust binary for macOS and Linux.
Can I transfer files between local and remote servers with purple?
Yes. Press F on any host to open the remote file explorer. Local files on the left, remote on the right. Navigate directories, select files and copy between machines with Enter. Works through ProxyJump chains, password sources and active tunnels.
What cloud providers does purple support?
AWS EC2, Azure, DigitalOcean, GCP (Compute Engine), Hetzner, i3D.net, Leaseweb, Linode (Akamai), Oracle Cloud Infrastructure (OCI), OVHcloud, Proxmox VE, Scaleway, Tailscale, TransIP, UpCloud and Vultr. Each provider is configured with an API token or credentials profile.
How do command snippets work in purple?
Save commands and run them on remote hosts via SSH. In the TUI, press r to run on the selected host, Ctrl+Space to multi-select hosts then r, or R to run on all visible hosts. The CLI alternative supports tag-based targeting (--tag prod) and parallel execution (--parallel).
How does SSH password management work in purple?
Set a password source per host via the TUI or a global default. When you connect, purple acts as SSH_ASKPASS and retrieves the password automatically. Supported: OS Keychain, 1Password, Bitwarden, pass, HashiCorp Vault and custom commands.
Can I manage Docker or Podman containers with purple?
Yes. Press C on any host to list all containers over SSH. Start, stop and restart without leaving the TUI. Purple auto-detects Docker or Podman. No agent. No web UI. No extra ports.
Does purple modify my existing SSH config?
Only when you add, edit, delete or sync. All writes are atomic with automatic backups.
Will purple break my SSH config comments or formatting?
No. Comments, indentation and unknown directives are preserved through every read-write cycle.
Does purple need a daemon or background process?
No. Single binary. Run it, use it, close it.
Does purple send my SSH config anywhere?
No. Your config never leaves your machine. Provider sync calls cloud APIs to fetch server lists. The TUI checks GitHub for new releases on startup (cached 24 hours).
Can I use purple with SSH Include files?
Yes. Hosts from Include files are displayed in the TUI but never modified. Resolved recursively up to depth 16 with tilde and glob expansion.
How do I sync Google Cloud (GCP) instances with purple?
In the TUI, press S to open the provider list, then add GCP. Fill in your service account JSON key file path, project ID and optionally specific zones. Purple creates a JWT and exchanges it for an access token automatically. The CLI alternative is purple provider add gcp --token /path/to/sa-key.json --project my-project.
How do I sync Azure VMs with purple?
In the TUI, press S to open the provider list, then add Azure. Fill in your service principal JSON file path and subscription IDs. The CLI alternative is purple provider add azure --token /path/to/sp.json --regions SUBSCRIPTION_ID. Supports both az CLI and portal credential formats.
How do I sync Oracle Cloud Infrastructure (OCI) instances with purple?
In the TUI, press S to open the provider list, then add Oracle. Fill in your OCI config file path, compartment OCID and regions. The CLI alternative is purple provider add oracle --token ~/.oci/config --compartment OCID --regions eu-amsterdam-1. Requires IAM policies: read instance-family and read virtual-network-family.
How do I sync AWS EC2 instances with purple?
In the TUI, press S to open the provider list, then add AWS. Select your regions from the region picker and fill in your credentials profile or access key. The CLI alternative is purple provider add aws --profile default --regions us-east-1,eu-west-1. EC2 tags are synced (excluding internal aws:* tags). AMI names are resolved for OS metadata.
Is purple a Portainer alternative?
For container visibility and basic lifecycle control (start, stop, restart) over SSH, yes. Press C on any host to see its containers. No agent to install, no web UI to host, no ports to open. Works with Docker and Podman. Purple does not provide container creation, registry management or role-based access control.
How does purple compare to Lazydocker?
Lazydocker manages Docker locally on the host where it is installed. purple manages containers on remote servers over SSH from your local machine. Use Lazydocker for single-host local management. Use purple for multi-host remote management across your fleet.
Can AI assistants use purple?
Yes. Run purple mcp to start a Model Context Protocol server over JSON-RPC 2.0. Claude Code, Cursor and other MCP-compatible AI agents can use five tools: list_hosts, get_host, run_command, list_containers and container_action. No API keys needed. Approval behavior depends on your AI client.
purple v2.26.02026-04-05PURPLE(1)
$ curl -fsSL getpurple.sh | sh