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/config in 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. 解决什么问题

五个具体痛点:

  1. ~/.ssh/config 落后于云:在 AWS / GCP / Hetzner 起了 VM,IP 变了或下线了,本地 config 不会跟着更新。purple 拿云 API token 后新机器自动进 config、IP 跟着实例迁移、退役机器灰显
  2. 多主机批操作:要在 30 台机器上跑同一命令,传统是 Ansible 或 bash loop;purple 提供 snippet 模式 + 执行前显示 blast radius(影响范围)+ 历史执行统计("28 of 29 host runs ok")。
  3. Docker 跨主机没有 fleet 视图:Lazydocker 是单机本地管理,purple 通过 SSH 在远端机器直接列容器、shell in、stream logs、restart、exec,无 agent、无 web UI、无额外端口
  4. 隧道"瞎跑":ssh -L 起来后看不到吞吐和连接存活,purple 把所有 Local / Remote / Dynamic SOCKS 转发都做实时吞吐 + 通道活跃度 + uptime + 端口背后的 app
  5. 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)以官网首页为准。