ogulcancelik/herdr
herdr 是一个在终端内运行多个 coding agent 的 Rust 二进制文件(约 10MB),支持 Linux、macOS 及 Windows 测试版。它通过进程名和终端输出启发式检测 agent 状态(阻塞、工作中、已完成),提供工作区、标签页、窗格及鼠标支持。后台服务器保持会话持久,支持 SSH 远程连接和断开后重连。内置 socket API 和 CLI 支持 agent 编排与插件开发,开箱即用检测 pi、Claude Code、Codex 等 16 种 agent,并可通过 `herdr integration install` 安装原生集成。
herdr
https://github.com/user-attachments/assets/043ec09f-4bdd-41d5-aee0-8fda6b83e267
在一个终端中运行所有 coding agent。一眼看清谁被阻塞、正在工作或已完成。
在你的 agent 已经运行的地方运行它们:你的机器、服务器,或任何你能通过 SSH 访问的地方。每个 agent 都拥有一个真正的终端,而非某个应用模拟的终端,因此即使是全屏 TUI 也能正确渲染。点击、拖拽、将窗格分割为工作区和标签页,观察每个 agent 的状态:阻塞、工作中、已完成。合上笔记本,一切不会终止;从另一个终端或通过 SSH 从手机重新连接。一个本地 Rust 二进制文件,而非一个应用:没有 GUI、没有 Electron、没有仅限 Mac 的封装、没有账户、没有遥测。(如果你用过 tmux:它就像那样,但为 agent 重建。)
你能得到什么
- 每个 agent 一个真正的终端。 你看到的是每个 agent 自己的屏幕,而非某个应用模拟的屏幕,因此即使是全屏 TUI 也能正确渲染。
- 一眼看清 agent 状态。 侧边栏将每个 agent 汇总为 🔴 阻塞、🟡 工作中、🔵 已完成或 🟢 空闲,因此你始终知道谁需要你。零配置,无需钩子。
- 工作区、标签页、窗格。 按仓库或文件夹组织,点击、拖拽、分割,全程支持鼠标。
- 断开后一切不终止。 后台服务器保持窗格和 agent 存活;从任何终端(包括通过 SSH 从手机)断开并重新连接。
- 随处运行。 单个约 10MB 的 Rust 二进制文件,支持 Linux 和 macOS(Windows 测试版),无依赖,在你已有的终端内运行。
- 可脚本化。 本地 socket API 和 CLI,agent 可驱动,以及可用任何语言编写的插件。
对比
| tmux | GUI 管理器 | herdr | |
|---|---|---|---|
| 持久会话 | ✓ | — | ✓ |
| 断开 / 重新连接 | ✓ | — | ✓ |
| 随处运行,通过 SSH | ✓ | — | ✓ |
| 窗格、标签页、工作区 | ✓ | ✓ | ✓ |
| agent 感知 | — | ✓ | ✓ |
| 位于你的终端内 | ✓ | — | ✓ |
| 真实终端视图 | ✓ | — | ✓ |
| 原生鼠标支持 | — | ✓ | ✓ |
| 轻量级二进制文件 | ✓ | — | ✓ |
| agent 可编排 | ? | ? | ✓ |
tmux 提供了持久化和窗格,但它是在 agent 出现之前构建的。它不知道哪个窗格被阻塞、工作中或已完成;你可以为其添加铃声字符和每个 harness 的钩子,但你需要自己逐个配置,并且仍然没有整个 agent 集合的共享视图。GUI agent 管理器(conductor、cmux、emdash)确实显示了 agent 状态,所以这算是基本功能。区别在于其他所有方面。它们是应用,通常仅限 Mac 且闭源,在封装内重新绘制终端。herdr 是一个单一的二进制文件,在你已有的终端中运行,在任何你能 SSH 的地方,并在你断开连接时由服务器保持每个 agent 的真实屏幕存活。查看与 tmux、zellij、cmux、warp、conductor 等的完整对比。
安装
curl -fsSL https://herdr.dev/install.sh | sh
Windows 预览测试版:
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"
也可通过 brew install herdr、mise use -g herdr、nix run github:ogulcancelik/herdr 安装,或从 releases 获取稳定的 Linux/macOS 二进制文件。
herdr update 升级由安装程序管理的安装;Homebrew、mise 和 Nix 通过各自的包管理器更新。频道、预览、重启和恢复的详细信息见安装文档。
快速开始
herdr
herdr 启动或连接到一个后台服务器并打开一个工作区。在窗格中运行一个 agent。
herdr 原生支持鼠标,因此点击和拖拽窗格、标签页和分割边界无需任何按键绑定即可操作。对于键盘,ctrl+b 是前缀:按下它,松开,然后按下动作键,因此 ctrl+b 然后 c 创建一个标签页。一个保留键使 herdr 不会干扰你的 shell。
ctrl+b然后shift+n创建新工作区ctrl+b然后v或minus分割窗格ctrl+b然后c创建新标签页ctrl+b然后w切换工作区ctrl+b然后q断开连接;agent 继续运行,再次运行herdr重新连接
按下 ctrl+b 然后 ? 查看所有绑定。键盘指南解释了前缀模型以及如何摆脱前缀;完整的键位映射、复制模式和配置语法见配置文档。
远程
在 VPS 上运行 herdr,并从本地终端访问它。herdr --remote 使你的本地终端成为远程服务器的客户端,因此将图片粘贴到 agent 中仍然有效,而纯 ssh + tmux 会破坏这一点。
herdr --remote workbox
herdr --remote ssh://you@yourserver:2222
关于命名会话、保活、直接连接和交接,请参阅持久化和远程文档。
支持的 agent
通过进程名称匹配加上终端输出启发式方法,开箱即用即可检测。
| agent | 空闲 / 已完成 | 工作中 | 阻塞 |
|---|---|---|---|
| pi | ✓ | ✓ | 部分 |
| claude code | ✓ | ✓ | ✓ |
| codex | ✓ | ✓ | ✓ |
| droid | ✓ | ✓ | ✓ |
| amp | ✓ | ✓ | ✓ |
| opencode | ✓ | ✓ | ✓ |
| grok cli | ✓ | ✓ | ✓ |
| hermes agent | ✓ | ✓ | ✓ |
| kilo code cli | ✓ | ✓ | ✓ |
| devin cli | ✓ | ✓ | ✓ |
| cursor agent | ✓ | ✓ | ✓ |
| antigravity cli | ✓ | ✓ | ✓ |
| kimi code cli | ✓ | ✓ | ✓ |
| github copilot cli | ✓ | ✓ | ✓ |
| qodercli | ✓ | ✓ | ✓ |
| kiro cli | ✓ | ✓ | — |
已检测但未完全测试:gemini cli、cline。任何其他 agent 仍然可以工作;herdr 将其作为终端复用器运行,自定义集成可以通过 socket API 报告标签和状态。
官方集成添加了原生会话恢复,有些直接报告语义状态。使用 herdr integration install <agent> 安装一个,适用于 pi、omp、claude、codex、copilot、devin、droid、kimi、opencode、kilo、hermes、qodercli 和 cursor。参见集成文档。
agent 也可以使用 herdr
本地 Unix socket 允许 agent 创建工作区、分割或放大窗格、生成辅助进程、读取输出以及订阅状态变化,而无需轮询。使用以下命令安装可复用的技能:
npx skills add ogulcancelik/herdr --skill herdr -g
从 agent 技能文档、socket API 文档 和 SKILL.md 开始。
文档
- 快速开始:首次会话、窗格、复制和命名会话
- 概念:服务器和客户端、工作区、标签页和窗格
- 安装:安装、更新、频道、Homebrew、mise 和 Nix
- 会话状态:断开、重启恢复、agent 恢复和实时交接
- 配置:键绑定、复制模式、主题、通知、环境变量
- 集成:每个 agent 的原生会话恢复和语义状态
- socket API:socket 协议和 CLI 参考
SKILL.md:可复用的 agent 技能
agent 说明
如果你是一个正在协助此仓库的 AI agent,请在做出更改前阅读 AGENTS.md,并在提交 issue 或 PR 前阅读 CONTRIBUTING.md。
开发
git clone https://github.com/ogulcancelik/herdr
cd herdr
cargo build --release
./target/release/herdr
just test # 单元测试
just check # 格式化、测试和维护检查
赞助商
herdr 是全职、公开开发的,背后没有收入。赞助直接资助开发、稳定性以及通往真正 agent 运行时的道路。
→ 成为赞助商 · 企业/合作:hey@herdr.dev · 查看 SPONSORS.md 了解层级。谢谢 🐑
许可证
Herdr 采用双重许可:
- 开源:GNU Affero General Public License v3.0 或更高版本(AGPL-3.0-or-later)。
- 商业:对于无法遵守 AGPL 的组织,提供商业许可证。
联系方式:hey@herdr.dev