herdr: Terminal Agent Multiplexer for Coding Agents — 12K+ Stars
herdr is a Rust-based terminal multiplexer for AI coding agents. Run Claude Code, Codex, Cline, and OpenCode in parallel — each with its own real terminal, workspace tabs, and state tracking. tmux rebuilt for agents.
- NOASSERTION
- 更新于 2026-07-07
{{< 资源信息 >}}
AI 编码代理正在快速繁殖——Claude Code、Codex CLI、Cline、OpenCode、Aider、Devin——同时管理它们是一场噩梦。每个代理都想要自己的终端、自己的工作区、自己的进程树。在它们之间切换意味着通过 alt-tab 键切换一堆混乱的终端窗口,从而无法跟踪哪个代理正在工作、哪个代理被阻止以及哪个代理崩溃了。
herdr 通过成为专为 AI 代理构建的终端多路复用器来解决这个问题。想想 tmux,但它管理的不是 shell,而是代理。每个代理都有自己的真实终端(不是应用程序的模仿),您可以一目了然地看到它们的状态,将它们组织到工作区和选项卡中,并从任何地方重新连接——甚至可以通过 SSH 重新连接您的手机。

什么是牧民? #
herdr(发音为“heer-der”)是一个用于 AI 编码代理的 基于 Rust 的终端多路复用器。它由 Ogul Cancelik 创建,为您提供一个终端界面来同时运行、监控和管理多个编码代理。
核心理念:代理应该在真实终端中运行,而不是在沙盒模拟中运行。当代理启动全屏 TUI(如“htop”或“lazygit”)时,它需要一个真正的 PTY。 herdr 通过在内部将每个代理包装在 tmux 会话中来提供此功能,但在顶部提供一个干净的以代理为中心的界面。
关键功能 #
- 每个代理都有真实终端 — 每个代理都在自己的 PTY 中运行,并具有完整的 TUI 支持
- 代理状态跟踪 — 侧边栏将每个代理显示为阻止(红色)、工作(黄色)、完成(蓝色)或空闲(绿色)
- 工作区和选项卡 — 按项目文件夹或存储库组织代理
- 持久会话 — 关闭笔记本电脑,与 SSH 分离,代理继续运行;从任何终端重新连接
- 零遥测 - 单个二进制文件,无帐户,无云依赖性,无数据收集
- 鼠标本机 UI — 单击、拖动和拆分窗格,无需触摸键盘
架构 #
herdr 建立在一个简单但功能强大的架构之上:
┌─────────────────────────────────────┐
│ herdr CLI (Rust) │
│ ┌──────────┬──────────┬─────────┐ │
│ │ Workspace│ Workspace│ Workspace│ │
│ │ Tab 1 │ Tab 2 │ Tab 3 │ │
│ │ │ │ │ │
│ │ ┌────┐ │ ┌────┐ │ ┌────┐ │ │
│ │ │AGT1│ │ │AGT2│ │ │AGT3│ │ │
│ │ └────┘ │ └────┘ │ └────┘ │ │
│ └──────────┴──────────┴─────────┘ │
└─────────────────────────────────────┘
│ │ │
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
│ tmux #1 │ │ tmux #2 │ │ tmux #3 │
│ (PTY) │ │ (PTY) │ │ (PTY) │
└─────────┘ └─────────┘ └─────────┘
代理服务器 #
herdr 运行一个后台服务器进程(“herdr-server”),该进程在终端会话中持续存在。该服务器:
- 管理代理的所有 tmux 会话
- 跟踪座席状态(阻塞/工作/完成/空闲)
- 处理新终端的重新连接
- 维护工作区和选项卡组织
当您关闭笔记本电脑或失去 SSH 连接时,服务器会继续运行。当您重新连接时,“herdr Attach”会将您的整个工作区恢复为您离开时的样子。
状态检测 #
herdr 通过监控终端输出模式来检测代理状态:
- 已阻止(红色) — 代理正在等待用户输入、文件编辑或批准
- 工作(黄色) — 代理正在主动运行命令、编写代码或推理
- 完成(蓝色) — 代理完成其任务并退出
- 空闲(绿色) — 代理正在运行但未主动处理
这是基于启发式的(不需要钩子),并且可以与任何生成终端输出的代理一起使用 - Claude Code、Codex CLI、Cline、OpenCode、Aider 等。
安装 #
货物安装 #
货物安装牧民
需要 Rust 1.70+。这是获得完整功能支持的推荐方法。
预构建的二进制文件 #
# Linux (x86_64)
卷曲 -L https://github.com/ogulcancelik/herdr/releases/latest/download/herdr-x86_64-linux.tar.gz |焦油
sudo mv herdr /usr/local/bin/
# macOS(苹果芯片)
卷曲 -L https://github.com/ogulcancelik/herdr/releases/latest/download/herdr-aarch64-darwin.tar.gz |焦油
sudo mv herdr /usr/local/bin/
码头工人 #
docker run -it --rm \
-v ~/.herdr:/root/.herdr \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/ogulcancelik/herdr:最新
先决条件 #
- tmux 3.2+(herdr 在底层使用 tmux 进行 PTY 管理)
- Rust 1.70+(用于货物安装)
- SSH(可选,用于远程重新连接)
用法 #
启动代理 #
# 在新的代理窗格中启动 Claude Code
herdr 运行克劳德代码
# 启动 Codex CLI 并执行特定任务
herdr run codex“重构身份验证模块以使用 JWT”
# 并行启动多个代理
herdr 运行克劳德代码 &
牧民运行法典 &
牧人等待
管理工作区 #
# 为项目创建一个新的工作空间
herdr 工作区创建我的项目 --dir ./my-project
# 将代理添加到工作区
herdr 工作区使用 my-project
herdr 运行 claude-code --workspace my-project
# 工作空间切换
herdr 工作区列表
herdr 工作区使用另一个项目
监控代理状态 #
# 查看所有代理及其状态
牧民地位
# 实时观察代理状态
牧民观察
# 当代理完成时获取通知
herdr notification --on-done "echo Agent $AGENT 完成"
连接和分离 #
# 连接到 herdr 服务器(显示所有代理)
牧民依附
# 分离(Ctrl+B、D — 与 tmux 相同)
# 代理继续运行
# 从不同的终端或 SSH 会话重新连接
ssh 用户@服务器
牧民依附
# 从您的手机重新连接
ssh 用户@服务器 -p 22
牧民依附
分割和布局 #
# 水平分割
牧人分裂
# 垂直分割
牧人分裂-V
# 循环布局
下一步牧人布局
# 调整窗格大小
herdr 调整大小 --up 5
支持的代理 #
herdr 可与任何基于 CLI 的编码代理配合使用。官方测试:
| 代理 | 状态 | 笔记 |
|---|---|---|
| 克劳德·代码 | 全力支持 | 实时状态检测 |
| 法典 CLI | 全力支持 | OpenAI 的编码代理 |
| 克莱恩(VS 代码) | 支持 | 通过 CLI 模式 |
| 开放代码 | 全力支持 | 状态检测工程 |
| 助手 | 全力支持 | Git 感知代理 |
| 德文 CLI | 支持 | 自主代理模式 |
| 任何兼容 tmux 的 CLI | 作品 | 通用代理模式 |
自定义代理配置 #
您可以使用特定的状态检测模式定义自定义代理:
# ~/.herdr/agents.yaml
代理商:
我的定制代理:
命令:“my-agent --task $TASK”
状态模式:
被阻止:/等待输入|请编辑/
工作:/运行|执行|分析/
完成:/完成|完成|完成/
工作空间默认值:“自定义”
与替代方案的比较 #
herdr 与 tmux #
| Feature | herdr | tmux |
|---|---|---|
| Agent state tracking | Automatic (color-coded) | Manual (window names) |
| Workspace organization | Built-in (by project) | Manual (sessions) |
| Mouse support | Native (click, drag) | Configurable |
| Agent-specific commands | herdr run, herdr watch | tmux new-window, etc. |
| Learning curve | Low (agent-first) | Moderate (terminal-first) |
| Reattachment | Seamless (server-based) | Session-based |
tmux 是更通用的工具。 herdr 是 tmux 用于代理 — 它将 tmux 的会话管理包装在以代理为中心的 UI 中。如果只管理终端(无代理),tmux 就足够了。如果您同时管理多个编码代理,herdr 可以节省大量认知开销。
herdr 与 tmuxinator #
| 特色 | 牧人 | tmuxinator |
|---|---|---|
| 代理状态跟踪 | 实时颜色代码 | 无 |
| 坚持 | 服务器进程 | 基于会话的 |
| 远程重新连接 | 从任何地方使用 SSH | 仅限本地 |
| 多代理工作流程 | 内置 | 手册 |
| 鼠标用户界面 | 本地 | 有限公司 |
tmuxinator 是 tmux 的会话管理器 — 它打开预定义的窗口和窗格。 herdr 更进一步,跟踪每个窗格内运行的内容并以可视方式显示代理状态。
牧群 vs 屏幕 #
| 特色 | 牧人 | GNU 屏幕 |
|---|---|---|
| 代理意识 | 是的 | 没有 |
| 现代用户界面 | 铁锈/TUI | 遗产 |
| 鼠标支持 | 本地 | 有限公司 |
| 社区 | 成长 | 成熟 |
| 套餐可用性 | 预构建的二进制文件 | 系统包 |
Screen 是终端多路复用器的鼻祖。 herdr 是为人工智能代理时代重新设计时所得到的。
性能 #
herdr 是用 Rust 编写的,非常轻量级:
- 二进制大小:~15 MB(单个静态二进制)
- 内存使用:约 2 MB 空闲,每个代理会话约 5 MB
- 启动时间:< 50ms
- CPU 使用率:空闲时接近于零,随代理活动扩展
tmux 服务器作为后台守护进程运行,开销最小。所有状态检测都通过终端输出分析在本地进行——没有网络调用,没有云依赖。
限制 #
无图形用户界面 #
herdr 仅适用于终端。没有桌面应用程序,没有浏览器 UI,没有移动应用程序(尽管您可以通过 SSH 连接到服务器并从手机终端使用 herdr)。如果您更喜欢可视化仪表板,herdr 的 TUI 可能会感觉简朴。
启发式状态检测 #
代理状态检测依赖于终端输出模式,而不是 API 挂钩。这意味着:
- 它适用于任何代理(无需集成)
- 但它有时可能会错误分类状态(例如,代理在实际被阻止时打印“正在工作…”)
- 可以针对边缘情况配置自定义模式
代理兼容性 #
虽然 herdr 可与任何 CLI 代理配合使用,但某些代理有一些怪癖:
- 清除终端屏幕的代理可能会丢失状态上下文
- 使用非标准转义码的代理可能无法被正确检测
- 全屏 TUI 代理(如
vim或htop)运行完美 — 这实际上是 herdr 的强项
无内置计费 #
herdr 不跟踪 API 成本或代币使用情况。如果您跨付费 API 管理代理,则需要单独的成本跟踪工具。
编者的话 #
随着人工智能编码代理的成倍增加,herdr 填补了一个日益扩大的空白。在代理出现之前,tmux 就足够了——您管理的是终端,而不是智能进程。但是,当每个“终端”都是一个自主代理,可以思考、编写代码,并且有时会卡住等待您时,您需要的不仅仅是窗口管理。您需要代理意识。
herdr 的天才在于它的简单性。它并不试图成为 IDE、项目经理或 CI/CD 管道。它是一个终端多路复用器,可以理解代理的状态、工作空间以及在断开连接时持续存在的需求。事实上,它是用 Rust 编写的,并且运行不需要任何成本,这对于任何处理多个编码代理的人来说都是轻而易举的事情。
仅使用颜色编码的状态侧边栏每天就可以节省几分钟的时间。不再需要通过 8 个终端窗口进行 Alt-Tab 操作,想知道哪个代理已完成、哪个代理被卡住。 herdr 告诉你:红色 = 被阻止(你需要采取行动),黄色 = 工作(别管它),蓝色 = 完成(检查输出),绿色 = 空闲(它正在思考)。
对于跨存储库运行多个代理的团队来说,herdr 的工作区组织非常宝贵。每个项目创建一个工作区,每个文件夹添加代理,并在项目之间切换而不会丢失上下文。通过 SSH 重新连接功能意味着即使您的笔记本电脑处于睡眠状态,您的代理也可以在远程服务器上继续运行。
与商业替代品相比,herdr 缺乏的一件事是可视化仪表板。但对于终端用户(也就是 herdr 的受众)来说,TUI 比任何基于 Web 的代理管理器更快、更轻、更可靠。
常见问题解答 #
问:herdr 是否可以与非编码代理一起使用? #
答:是的。任何产生终端输出的 CLI 进程都可以由 herdr 管理。虽然它针对编码代理(Claude Code、Codex、Cline)进行了优化,但您可以使用它来管理任何长时间运行的终端进程 - Web 服务器、数据管道、监控工具等。
问:我可以在 Windows 上使用 herdr 吗? #
答:herdr 需要 tmux,它主要是一个 Unix 工具。在 Windows 上,您可以使用 WSL2(适用于 Linux 的 Windows 子系统)来运行 herdr。本机 Windows 支持已计划但尚未提供。
问:herdr 如何处理代理崩溃? #
答:如果代理崩溃,herdr 会将其标记为已阻止(红色)并保持终端会话处于活动状态。您可以检查崩溃输出、修复问题并在同一工作区中重新启动代理,而不会丢失上下文。
问:herdr 有基于网络的仪表板吗? #
答:还没有。 herdr 在设计上是终端优先的。创建者提到路线图中有一个网络仪表板,但当前的 TUI 被认为足以满足目标受众的需求。
问:herdr 可以管理远程服务器上的代理吗? #
答:是的。由于 herdr 使用服务器进程,因此您可以在远程计算机上运行 herdr-server 并从任何终端(包括来自手机的 SSH)连接。无论您的连接状态如何,代理都会继续在远程服务器上运行。
问:herdr 是否支持代理间通信? #
答:不直接。 herdr 并行管理代理,但不促进它们之间的通信。如果代理需要共享数据,请使用共享文件系统、环境变量或消息队列。
Dibi8 的更多内容 #
来源 #
发布时间:2026 年 7 月 7 日 |最后更新时间:2026 年 7 月 7 日 |星级: 12,627 |许可证:NOASSERTION
💬 留言讨论