有了 tmux 还需要 herdr 吗?一个给 AI Agent 用的「终端管家」
我同时跑了三个 Claude Code、两个 Codex,外加一个本地构建进程。六个终端 Tab,像六只没拴绳的狗——哪个卡住了?哪个跑完了?哪个在等你回复?
切来切去,纯靠猜。
tmux 帮我分了窗格,但它不知道里面跑的是 Agent 还是普通 shell。它不感知 Agent 状态。
这就是 herdr 存在的理由。
写这篇文章时 herdr v0.6.8,GitHub 4200+ Star。项目地址:https://github.com/ogulcancelik/herdr 作者 Can Celik 用 AI Agent 辅助从零写完整个 Rust 项目——工具本身就是 Agent 协作的产物。)
herdr,它是什么?
herdr 是一个终端原生的 Agent 多路复用器。Rust 写成,单二进制文件,跑在你现有的终端里——不替换终端,不绑架你的工作流。
它做的事说白了就一件:让你在终端里同时管理多个 AI Agent,一眼看清谁在工作、谁卡住了、谁在等你。

它解决了哪些真实痛点
痛点一:长时间会话断开后丢失进度
AI Agent 的编码会话动辄几十分钟。SSH 断了、终端关了、临时走开——回来状态全丢。
herdr 支持 tmux 式的 detach/reattach。prefix + q 离开,Agent 在后台继续跑。回来后 herdr --session my-project 重新连上,状态完整保留。
痛点二:同时管理多个 Agent 混乱
侧边栏(prefix + b 打开)实时显示每个 Agent 的状态:
🟢 idle 空闲 🟡 working 工作中 🔵 done 完成 🔴 blocked 阻塞
自动检测十几种 Agent 类型,零配置。Workspace 级别还会聚合显示:只要有一个 Agent blocked,整个 Workspace 标红。不用靠脑子记”左边第三个在跑啥”。

痛点三:Agent 分散在不同窗口/工具里,来回切换摩擦大
很多 Agent 管理器是独立桌面 App(Electron 打包),等于为了管 Agent 离开终端。herdr 跑在现有终端里——iTerm2、Ghostty、Warp 都行——继承你的 shell、字体、快捷键,只多了多路复用能力。
痛点四:Agent 之间协作靠手动 copy-paste
不同 Agent 的输出要手动搬运。herdr 的 Socket API + CLI 让 Agent 可以编程式协作——读其他 pane 的输出、发文本和按键、等某个 Agent 跑完再触发下一步。多 Agent 编排不再靠人工中转。
痛点五:远程开发场景缺乏轻量方案
本地跑 Agent 吃资源,远程服务器上跑又缺管理工具。herdr 支持 SSH 内运行、远程 attach,单二进制零依赖,不依赖重型 GUI dashboard。
tmux 用户:操作习惯几乎平移
如果你用了多年 tmux,herdr 的上手成本极低:
| 你 tmux 里常做的事 | herdr 里怎么做 |
|---|---|
| 水平分 pane | prefix + v(同 tmux) |
| 垂直分 pane | prefix + -(同 tmux) |
| 切 pane | prefix + h/j/k/l(同 tmux) |
| detach | prefix + q |
| copy mode | prefix + [ |
| 搜索历史 | 复制模式下按 / |
不是说完全一模一样,但肌肉记忆能直接迁移。它比 tmux 多出来的是:
- 鼠标原生支持:点击切焦点、拖选即复制、拖拽边框分 pane(macOS 用户会爱死这点)
- Agent 侧边栏:tmux 做不到的状态感知
- Workspace 层级:比 tmux 的 session/window/pane 更直觉——Workspace = 项目,Tab = 分组,Pane = 终端
唯一要注意:herdr server 和 tmux server 是两个独立进程,互不感知。
新手用户:30 秒快速上手
安装:
brew install herdr然后 cd 到项目目录,敲:
herdr够了。
记好下面这五个快捷键就能正常干活啦:
prefix + b→ 打开 Agent 状态栏(最重要的一个)prefix + v→ 左右分屏prefix + q→ 离开(Agent 继续跑)prefix + z→ 当前 pane 全屏prefix + w→ 切换项目 Workspace
默认 prefix 是 Ctrl+b(和 tmux 一致),觉得不顺手的小伙伴可以在 ~/.config/herdr/config.toml 里改成 Ctrl+a。
多 Agent 协作:Socket API
前面说的都是人用 herdr 管理 Agent。反过来,Agent 也能用 herdr 管理 Agent。
herdr 暴露了一套 Socket API + CLI 命令,Agent 可以编程式地:
- 创建 workspace、拆分 pane、启动其他 Agent
- 读取任意 pane 的输出内容
- 向其他 pane 发送文本和按键
- 阻塞等待某个 Agent 进入 idle 状态
- 订阅实时事件
举个例子:一个协调 Agent 先 herdr agent start claude -- "写后端 API",再 herdr agent start codex -- "写前端页面",然后用 herdr agent wait claude --status idle 等它跑完,最后 herdr agent read claude 读输出,把结果传给下一个步骤。
多 Agent 编排不再靠手动复制粘贴了。
和竞品比,它卡在什么位置
| 工具 | 一句话 | 换终端? | Agent 感知 | SSH |
|---|---|---|---|---|
| herdr | 终端内的 Agent 管家 | 不换 | ✅ 内置 | ✅ |
| tmux / Zellij | 通用终端多路复用 | 不换 | ❌ | ✅ |
| cmux | macOS 原生终端 App | 要换 | ✅ badge 通知 | ❌ |
| muxy | 终端版 IDE | 要换 | ❌ | ❌ |
herdr 的独特位置:唯一一个不让你换终端、又有 Agent 状态感知、又能 SSH detach 的选项。
它不是要取代 tmux——如果你只用 tmux 做窗口管理,没有多 Agent 需求,tmux 够了。但如果你同时在跑多个 AI Agent,herdr 是 tmux 的天然补充。
我用下来的感受
用了一个月,说几个真实体感:
- 鼠标拖选即复制。tmux 的 copy mode 我练了好几年才肌肉记忆,herdr 拖一下完事
prefix + q走人零负担。Agent 后台继续跑,回来herdr --session接上,像没离开过。远程服务器上尤其实用- 侧边栏点一下直达 pane。不用记编号,鼠标点 Agent 名直接跳过去——对新手和老手一样友好
- 更新后 server 不自动重启得手动
herdr server stop再开,部分 Agent 的 blocked 状态判断还不够准——v0.6 阶段的小毛病
一句话:tmux 是窗口管理器,herdr 是 Agent 调度中心。两个工具解决不同时代的问题。
谁适合用
- 同时跑多个 Agent 的开发者(尤其是 tmux 用户)
- 远程服务器上跑 Agent、需要 detach 的场景
- 不想为 Agent 管理换终端的用户
- 需要 Agent 间协作编排的重度用户
不适合的人:你只开一个终端、偶尔跑跑 claude 命令——那 herdr 对你来说 overkill 了,终端本身够用。
写在最后
终端被 AI Agent 重新定义了一遍。以前终端是你的手脚——敲命令、看日志。现在终端是你的调度中心——管理一群 Agent 同时干活。
herdr 做的事不复杂:让终端在多 Agent 时代继续好用。没有 Electron,没有付费墙,一个 brew install 就开干。
对我来说,它已经从「试试看」变成了每天打开终端的第一个命令——herdr。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!