![]()
herdrm
适用于 herdr 的原生 macOS 控制台——查看所有机器上的每个编程代理,并直接跳转到其实时终端。
[!WARNING] 早期阶段软件,未经充分测试——请预期会遇到 bug。非常欢迎提交 PR!

功能
herdr 是承载你的编程代理的运行时:一个后台服务器,拥有代理的终端、保持其运行,并知道哪个代理正在工作、受阻或已完成。herdrm 在其之上提供一个原生 macOS 窗口:
- 所有设备并行连接 —— 本地 herdr 加上任意数量的远程机器(通过 SSH,远程套接字通过
ssh -L转发,因此一切工作方式完全相同)。每台设备都保持自动重连;侧边栏汇总所有设备,用带颜色的名称标签标记每一行所在位置,左下角切换器可按设备筛选。 - 空间与代理侧边栏 —— 每个 herdr 工作区和每个代理(claude、codex、gemini、grok、opencode 等)均显示实时状态:受阻的代理置顶,工作中的代理显示旋转动画,完成的代理显示对勾。
- 实时终端 —— 选中代理后直接连接到其 PTY(
herdr agent attach)。完整 TUI,精确光标,无聊天包装。 - 通知 —— 当任何设备上的任何代理完成或需要输入时发送系统通知;点击通知直接跳转到该代理。你正在主动查看的代理不会发送通知。
- 新建代理 —— 可在任何设备的任何空间中启动代理。选择器仅提供该设备上实际安装的 CLI,并默认启用每个代理自身的绕过权限标志(例如 claude 的
--dangerously-skip-permissions)。 - 搜索 —— ⌘K 命令面板,可跨每台设备的代理和空间进行搜索。
- 浅色与深色模式,通过 Sparkle 自动更新,已签名并公证。
系统要求
- macOS 14+
- 本地安装 herdr(如果未运行,herdrm 会自行启动本地服务器),并在远程机器上运行
- 远程设备:通过 SSH 配置/代理使用 OpenSSH 访问、Tailscale SSH,或存储于 macOS 登录钥匙串中的密码
安装
Homebrew
brew install owo-network/brew/herdrm
手动安装
从 Releases 下载最新的 herdrm-x.y.z.zip,解压,将 herdrm.app 拖入 /Applications。无论哪种方式,之后应用都会自行更新。
从源码构建
brew install xcodegen
make build # xcodegen + xcodebuild → build/Build/Products/Debug/herdrm.app
make run
make kit-test # HerdrKit 集成测试(需要本机运行中的 herdr)
架构
Packages/HerdrKit—— Swift 包:用于 herdr 套接字 API 的基于 Unix 套接字的 NDJSON RPC 客户端、SSH 隧道管理、设备存储。Sources/HerdrM—— SwiftUI 应用;终端嵌入基于 SwiftTerm。
致谢
- herdr —— 本应用所服务的编程代理终端工作区管理器。
- Heeler —— iOS 版 herdr 客户端;herdrm 借用了其领域模型与传输模式。
- waku —— 侧边栏设计参考。
- SwiftTerm —— 终端模拟。
- Sparkle —— 自动更新。
- Lobe Icons 与 Simple Icons —— 代理与操作系统品牌图标。