missuo/herdrm · 上手攻略
- 仓库:missuo/herdrm
- 链接:https://github.com/missuo/herdrm
- 分类:开发者工具 · 终端管理
- 作者:Tom
- 更新:2026-08-20
是什么
herdrm 是 herdr 的原生 macOS 图形控制台。herdr 本身是一个后台服务进程,作为你所有编程 Agent 的「终端运行时」——它持有真实终端,让 Agent 的工作在你关闭笔记本盖或断网后继续运行,并知道每个 Agent 当前是工作中、阻塞中还是已完成。herdrm 则在这个运行时之上套了一层原生 macOS 窗口,让你从一台 Mac 上就能看到、搜索、跳转所有设备上的所有 Agent 终端。
简单说:herdr 是底座,herdrm 是 macOS 专属的视图壳。
解决什么问题
当你同时跑多个 Agent(Claude Code、Codex、opencode、Grok……),分布在本地机器和多台远程服务器上时,传统的做法是开一堆终端窗口或 tmux 会话,散落在各处,既不知道哪个卡住了,也不知道哪个跑完了。herdrm 把这堆东西聚合到一个侧边栏里,实时显示每个 Agent 的状态,完成了还会发系统通知。
核心解决的是「多设备多 Agent 运维焦虑」:不用 SSH 反复跳转,不用盯着窗口等结果,状态自动汇报,点击即达。
快速安装
依赖前提:
- macOS 14+
- 本地已安装 herdr:
curl -fsSL https://herdr.dev/install.sh | sh - 远程设备需要 SSH 访问(支持 user@host、user@host:port、~/.ssh/config 中的别名)
- Tailscale SSH 需要远程主机装 Tailscale ≥ 1.98.0
安装 herdrm(二选一):
# 方式一:Homebrew(推荐)
brew install owo-network/brew/herdrm
# 方式二:手动
# 下载最新 release 的 herdrm-x.y.z.zip,解压后将 herdrm.app 拖入 /Applications
安装后 herdrm 会自动帮你启动本地 herdr server(如果它还没在跑的话),然后打开应用窗口。
从源码编译(开发者):
brew install xcodegen
make build # 编译出 build/Build/Products/Debug/herdrm.app
make run # 直接运行
make kit-test # HerdrKit 集成测试(需要本地 herdr 在运行)
核心用法
1. 连接设备
首次打开应用,在侧边栏添加远程设备。支持三种连接方式:
- SSH 配置别名:~/.ssh/config 中定义的 Host 名直接填入
- user@host:标准格式,支持指定端口
- Tailscale SSH:如果远程机器和本地都接入了同一个 Tailscale 网络,直接填机器名即可,herdrm 会处理 Unix socket 转发
herdr 通过 ssh -L 做本地端口转发把远程 socket 映射过来,所以远程设备上不需要额外装 herdr 以外的任何东西。连接建立后会持续保持,掉线自动重连。
2. 管理 Agent
herdrm 侧边栏以两级结构展示:Spaces(工作空间)→ Agents(具体 Agent 实例)。
- 阻塞中的 Agent 会自动冒泡到列表顶部
- 正在工作的 Agent 会有旋转动画
- 已完成的 Agent 会打勾
- 点击任意 Agent 即直接 attach 到它的实时 PTY(相当于
herdr agent attach),终端体验和本地终端完全一致,支持完整 TUI
3. 新建 Agent
点侧边栏的 "+" 或使用 ⌘K 命令面板,选择目标设备和目标 Space,herdrm 会列 出该设备上实际安装了的 Agent CLI(不会列出没装的),并默认帮开 --dangerously-skip-permissions 之类 bypass 权限的 flag(比如 Claude Code 的对应参数)。
4. 搜索与过滤
⌘K 命令面板支持跨所有设备搜索 Agent 和 Space。侧边栏左下角有设备切换器,可以只盯着某一台机器看。
5. 通知
任何设备上任何 Agent 完成或需要人工输入时,系统会发通知,点击通知直接跳转到对应 Agent 的终端。如果你在主动盯着某个 Agent 看,则不会通知你(避免打扰)。
典型适用场景
- 多机器并行开发:本地跑前端 Agent,远程服务器跑后端/编译 Agent,在一个窗口里同时监控
- 长时间任务看护:训练、微调、大规模数据处理这类任务跑在远端,关闭本地电脑也不会中断
- 团队共享 Agent 状态:一台「值班机」跑 herdrm,多人远程 SSH 进去操作同一 herd 服务,herdrm 聚合所有人的 Agent 状态
- 多 Agent 协同调试:几个 Agent 互相调用、互相等待,herdrm 的「阻塞冒泡」机制让你一眼看到谁卡住了
坑与注意
⚠️ 软件成熟度:README 明确标注「Early stage software without full test coverage — expect bugs」,生产环境使用需谨慎,有问题多看 GitHub Issues 和 PR。
⚠️ herdr 是必须的:herdrm 本身只是客户端,目标机器必须先装好 herdr 服务端。它不是取代 tmux/screen,而是 herdr 的专属 GUI。
⚠️ Tailscale SSH 版本要求:老版本 Tailscale(< 1.98.0)不支持 Unix socket 转发,远程设备需要升级才能用 Tailscale SSH 方式直连。
⚠️ macOS 独占:herdrm 本身是 SwiftUI macOS 应用,不支持 Linux 或 Windows。如果你是 Linux 用户想管理远程机器上的 Agent,还是得用命令行工具。
⚠️ Agent 支持范围:herdrm 支持 herdr 官方集成列表中的 Agent(Claude Code、Codex、Cursor、Grok、opencode 等),但如果某个 Agent 没有被 herdr 支持,herdrm 也无法 attach 到它的终端。
与同类对比
| 工具 | 定位 | 跨设备 | Agent 状态感知 | 通知 | 平台 |
|---|---|---|---|---|---|
| herdrm | herdr 的 macOS GUI | ✅ 自动 SSH 转发 | ✅ 阻塞/工作中/完成三级 | ✅ | macOS |
| tmux + SSH | 通用终端复用 | ❌ 手动跳转 | ❌ 纯终端,无感知 | ❌ | 全平台 |
| Atom/VSCode 远程 | 编辑器远程开发 | ✅ SSH | ❌ 无 Agent 概念 | ❌ | 全平台 |
| Heeler | herdr 的 iOS 客户端 | ✅ SSH | ✅ 同 herdrm | ✅ | iOS |
| Warp | AI 终端 | ❌ 本地为主 | ❌ 无 Agent 管理 | ❌ | macOS/Linux |
herdrm 的差异化在于它是 Agent 感知的——它知道哪些是 Agent、哪些终端、谁在阻塞、谁已完成。这是普通终端复用工具做不到的。
一句话推荐结论
如果你已经在用 herdr 管理多 Agent 运行时,herdrm 是 macOS 上体验最完整的图形控制台;如果你还没用 herdr,它是值得尝试的「多设备多 Agent 一站式看护台」,但需要接受早期软件的稳定性代价。
来源
- https://github.com/missuo/herdrm(README、架构说明)
- https://herdr.dev(herdr 运行时官网、安装脚本)