erickochen/purple · 上手攻略
- 仓库:erickochen/purple
- 链接:https://github.com/erickochen/purple
- 分类:终端工具 / SSH 管理 / 容器 / MCP server
- 作者:spark
- 更新:2026-09-07
⚠️ 本文写作日期 2026-09-07。仓库当前最新 release 为 v3.27.0(发布日期 2026-08-26,来源:
https://getpurple.sh首页 README 段落 "purple v3.27.0 2026-08-26")。README 头条:"7300+ tests, MIT licensed, single binary"。所有命令均经 README 抓取确认(2026-09-07 07:33 UTC)。
1. 是什么
purple 是一个用 Rust 写的终端 SSH / 隧道 / 容器管理 TUI,把 SSH config 编辑、云主机自动同步、隧道可视化、Docker/Podman 跨主机管理、文件传输、HashiCorp Vault SSH 证书、MCP server for AI agents 全部装进一个二进制里。README 原文:
"purple is a free, open-source terminal SSH manager and SSH config editor in Rust for macOS and Linux that keeps
~/.ssh/configin sync with 18 cloud providers, monitors live SSH tunnels and manages Docker and Podman containers fleet-wide."
GitHub 仓库当前 Star 666、496 commits、34 forks(README 头部统计,2026-09-07 抓取)。
2. 解决什么问题
五个具体痛点:
~/.ssh/config落后于云:在 AWS / GCP / Hetzner 起了 VM,IP 变了或下线了,本地 config 不会跟着更新。purple 拿云 API token 后新机器自动进 config、IP 跟着实例迁移、退役机器灰显。- 多主机批操作:要在 30 台机器上跑同一命令,传统是 Ansible 或 bash loop;purple 提供 snippet 模式 + 执行前显示 blast radius(影响范围)+ 历史执行统计("28 of 29 host runs ok")。
- Docker 跨主机没有 fleet 视图:Lazydocker 是单机本地管理,purple 通过 SSH 在远端机器直接列容器、shell in、stream logs、restart、exec,无 agent、无 web UI、无额外端口。
- 隧道"瞎跑":
ssh -L起来后看不到吞吐和连接存活,purple 把所有 Local / Remote / Dynamic SOCKS 转发都做实时吞吐 + 通道活跃度 + uptime + 端口背后的 app。 - AI agent 接 SSH 难:purple 自带 MCP server,Claude Code / Cursor 可调用,默认 read-only,有 JSON Lines 审计日志。
定位一句话:"Termius 的能力面 + Lazydocker 的 SSH-化版本 + SSH config 编辑器 + MCP for AI",全部在一个二进制里。
3. 快速安装
curl 一行(README 推荐):
curl -fsSL getpurple.sh | sh
各平台次选:
# macOS(Homebrew)
brew install erickochen/purple/purple
# Cargo(全平台,需 Rust toolchain)
cargo install purple-ssh
# Nix
nix profile install github:erickochen/purple
# Arch 系
paru -S purple-bin
yay -S purple-bin
# 从源码
git clone https://github.com/erickochen/purple.git
cd purple && cargo build --release
⚠️
curl | sh是 README 默认一行;如果对管道安装有安全洁癖,优先 cargo / brew / nix。
4. 核心用法
4.1 启动 + 命令面板
$ purple
按 ? 任何屏幕都是帮助。命令面板用 : 触发,输入 4 个字母即可模糊搜主机、隧道、容器、snippet、动作,排序按"使用频次"。字段前缀:user: proxy: vault: tag: 直接定位一类指令。README 自比"Linear's Cmd+K, but in your terminal"。
4.2 云同步(18 providers)
每个 provider 配一个 API token,新 VM 起来自动入 ~/.ssh/config、IP 跟着实例迁、退役机器灰显。完整 provider 列表见 wiki Cloud Providers(README 头部注明 18 家):AWS、GCP、Azure、Hetzner、DigitalOcean、Proxmox、Teleport、NetBox 等,每家支持多账号。
4.3 SSH config 原地编辑(保留 round-trip fidelity)
purple 直接读写 ~/.ssh/config,无数据库、无 daemon、无账户:
- 注释、缩进、
Include指令、未知指令全部保留; - 不在中间塞私有状态,其它 SSH 工具(OpenSSH、mosh、rsync over ssh)继续读得懂。
4.4 容器 fleet 管理
SSH 到任意远端,purple 列出该机的 Docker / Podman 容器,分组、shell in、stream logs、restart、stop、exec,也支持按 compose stack 逐个操作。README 原话:"No agent on the remote, no web UI, no extra ports. Just SSH."
4.5 隧道可视化
所有 Local / Remote / Dynamic SOCKS 转发统一面板:
- 实时吞吐
- 通道活跃度
- uptime
- 端口背后的 app(从连接推断)
4.6 Snippet 跨主机批跑
保存一次命令,选中任意主机集执行。执行前显示 blast radius(影响范围),跑完留历史记录(包括"28 of 29 host runs ok")。
4.7 密钥管理
~/.ssh/下每个 key 都有评分 + fingerprint + 解锁的主机列表 + 上次使用时间;- 按
p把一个 key 一键 push 到整 fleet,Vault 托管的主机会自动跳过(保证书一致性)。
4.8 Vault SSH 证书
HashiCorp Vault SSH secrets engine 发的短证书有专属 TTL 面板,过期前可视化预警,不会突然证书失效。
4.9 MCP server for AI agents
Claude Desktop 装 .mcpb bundle(https://github.com/erickochen/purple/releases/latest)一键接入,默认 read-only。详细见 wiki MCP-Server。README 明示:No data leaves your machine(参见 PRIVACY.md)。
4.10 文件传输
分屏 local + remote explorer 的可视化 scp。
4.11 凭证自动取用
OS Keychain、1Password、Bitwarden、pass、HashiCorp Vault KV、Proton Pass 六种来源自动拉密码。
4.12 XDG Base Directory
设 XDG_CONFIG_HOME(或 PURPLE_CONFIG_DIR 等)→ 配置 / 数据 / state / cache 分目录。未设则统一在 ~/.purple/。
4.13 自定义 ssh wrapper
kitty 的 kitten ssh 等任意 SSH wrapper,可在偏好或 PURPLE_SSH_COMMAND 环境变量里指定。
5. 典型适用场景
- SRE / DevOps 多云:管 50+ 台跨 4 家云的机器,ip 漂移是常态;purple 自动同步,免手工改 config。
- DevOps 跨主机批跑:
puppet/ansible太重的场景,几个 snippet 解决。 - 跳板 + 堡垒机:Teleport / Tailscale 接入,proxy + 多账号用
user@filter模式覆盖 SSH 用户。 - AI agent 接 SSH:Claude Code 通过 MCP 调 purple 列主机、列容器、读日志(只读模式 + 审计日志)。
- 不想用 Termius / 不想订阅:purple 是 MIT 的本地单二进制,无账号、无云依赖。
6. 坑与注意
- ⚠️ 平台边界:README 明示"for macOS and Linux"。Windows 原生不在支持列表;Windows 用户需 WSL。
- ⚠️ 多 provider 凭证管理:每个云都要单独配 API token,token 旋转 / 失效后 purple 会"主机列表滞后",需监控灰显。
- ⚠️ SSH config round-trip 极限:purple 保留注释、
Include、未知指令,但对自创结构(如某些工具注入的注释块)长期编辑后可能有微小 diff——大改前cp ~/.ssh/config ~/.ssh/config.bak。 - ⚠️ Vault SSH 集成:只有 HashiCorp Vault 的 SSH secrets engine 路径;其它 cert 签发器需自己写 wrapper。
- ⚠️ Docker / Podman 跨主机:依赖远端有 docker CLI + 鉴权;K8s 不在 scope(README 没提)。
- ⚠️ MCP 默认 read-only:写操作要走显式授权;AI agent 误调
delete_container之类要靠审计 + 凭证最小权限兜底。 - ⚠️ tests 7300+ ≠ 跨平台等量测试:Linux/macOS 行为可能略差,Linux 上 Wayland / 终端差异可能影响 TUI 渲染。
7. 与同类对比
README 自带一张对照表:
| 工具 | purple | Termius | sshs | Lazydocker |
|---|---|---|---|---|
| Open source | MIT | ❌(Freemium) | MIT | MIT |
| 语言 | Rust | Electron | Rust | Go |
| 多云 SSH sync | 18 家 | Limited | ❌ | ❌ |
| 容器(over SSH) | Docker + Podman,fleet | ❌ | ❌ | 仅本机 |
| 实时隧道监控 | ✅ | ❌ | ❌ | ❌ |
| MCP for AI | ✅ | ❌ | ❌ | ❌ |
| 账号要求 | 无 | 有 | 无 | 无 |
| 价格 | 免费 | Freemium | 免费 | 免费 |
定位:与 Lazydocker 互补(Lazydocker 适合单本机 docker,purple 适合"SSH 一跳就到远端 fleet")。与 Termius 的差别:离线 + 本地 + 私有 + AI 友好。
8. 一句话推荐结论
如果你在 macOS / Linux 上管多云、跳板多、agent 又要 SSH 帮忙,purple 是当前唯一把"18 家云同步 + SSH config 原地编辑 + 跨主机容器 + 隧道可视化 + MCP for AI + snippet 批跑"塞进一个 Rust 二进制、MIT 许可、无账号的项目 — Termius 的能力面、Lazydocker 的能力面、SSH config 编辑器的能力面三合一。
spark · 2026-09-07 · 来源:GitHub README(HTTP 200,2026-09-07 07:33 UTC 抓取)+ getpurple.sh 首页 + web_search 补充(LinuxLinks / crate.io purple-ssh / crates.io 注册)。版本号 v3.27.0(2026-08-26)以官网首页为准。