ESC
开源 1 分钟阅读

herdrm:macOS 原生控制台,跨设备管理所有编程代理及其实时终端

herdrm 是 herdr 的 macOS 原生控制台,可跨设备查看所有编程代理,并直接接入其实时终端。它支持本地与远程设备并行连接、代理状态监控、实时终端、完成通知、新建代理及搜索功能,基于 SwiftUI 与 SwiftTerm 构建,通过 Homebrew 或手动安装,当前为早期阶段。

来源:GitHub

herdrm 图标

herdrm

适用于 herdr 的原生 macOS 控制台——查看所有机器上的每个编程代理,并直接跳转到其实时终端。


[!WARNING] 早期阶段软件,未经充分测试——请预期会遇到 bug。非常欢迎提交 PR!

herdrm —— 设备切换器与实时 claude 终端

功能

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 —— 代理与操作系统品牌图标。