GitHub 3 万 Star,AI Agent 也有了自己的 tmux
同时开四五个 Agent,总在窗口间来回切?我试了专为 Agent 做的终端复用器 herdr,鼠标点点就能分屏,还能一眼看出哪个 Agent 在等我处理。
不知道大家有没有这种体验。
开了两个 Claude Code,一个在写功能,一个在改 bug。旁边还挂着一个 Codex 做 review,再加一个终端跑测试服务器。
四五个窗口来回 cmd+tab,切到眼花。
更麻烦的是,你根本不知道哪个 Agent 在等你操作。
于是工作状态慢慢变成了这样:在几个终端窗口之间来回切换,挨个确认进度,然后再切回正在处理的任务。
有人推荐 tmux,tmux 确实是终端复用比较成熟的解决方案。
但如果只是想把几个 Agent 管理起来,前缀键、窗口操作、配置和插件还是有一些门槛。为了少切几个窗口,先背一套快捷键,多少有点劝退 🤣
今天介绍一个新工具,叫 herdr。
专门为 Agent 打造的一个终端复用器。

herdr 是什么?
herdr 官方给自己的定义是:Coding Agent 运行其上的 Runtime。

herdr 并不是一个新的 Coding Agent,也不会替代你的 Claude Code、Codex、Cursor 或 Pi。
这些工具还是照常运行,只是它们所在的终端,交给 herdr 来管理。
它的结构并不复杂:Workspace 对应一个项目,Workspace 里可以创建多个 Tab,每个 Tab 里又可以切分出多个 Pane。
Claude Code 或 Codex 运行在 Pane 里以后,herdr 会自动识别出这个 Agent。
这个项目推出的时间并不算长。截至 2026 年 8 月,GitHub 上已经超过 3 万 Star,作者也在 8 月宣布加入 Y Combinator F 26。
而且 herdr 本身依然免费、开源,采用 Apache 2.0 协议。
GitHub 地址在这里:https://github.com/herdrdev/herdr
实际安装和使用都很简单
herdr 支持 macOS、Linux 和 Windows。
比如我用的是 macOS,就可以直接通过 Homebrew 安装:
brew install herdr
也可以使用官方提供的安装脚本:
curl -fsSL https://herdr.dev/install.sh | sh
安装完成以后,进入项目目录,运行:
herdr

然后在右侧的终端 Pane 里,像平时一样输入 claude、codex 或 opencode 就可以了。
它没有要求我改变原来的 Agent,也没有额外套上一层新的工作流。
实际界面也很直观,herdr 的布局逻辑是三层:Workspace → Tab → Pane。
左侧上半部分是 Workspace,可以用来区分不同项目;
左侧下半部分是 Agent 列表和状态;
右侧则是正常的终端区域,可以创建 Tab,也可以把一个窗口横向或纵向切分。

鼠标原生,上手几乎零门槛
这是我个人非常喜欢的一点,herdr 把鼠标当成了「一等公民」。
这是我觉得 herdr 和 tmux 最大的体验差异。
在 tmux 里,分屏要按 ctrl+b %,切换 pane 要 ctrl+b o,调整大小要 ctrl+b 加方向键。
鼠标默认是不管用的。虽然可以通过配置开启,但体验上总是差点意思。
而 herdr 则是把鼠标作为默认交互方式。
点击可以切换 Workspace、Tab 和 Pane,拖动边框可以调整分屏大小,右键菜单可以新建 Tab 或切分窗口,直接框选文字就能复制。
这些操作当然也能通过快捷键完成。herdr 默认使用 Ctrl+B 进入前缀模式,熟悉 tmux 的朋友上手会很快。
但对于不想一开始就记快捷键的人,鼠标基本已经覆盖了日常需要的操作。
Agent 状态实时感知
窗口管理解决的是「东西放在哪里」,但同时运行多个 Agent 时,更麻烦的问题其实是「谁正在等我」。
目前支持 20 多种主流 Agent 的自动检测:Claude Code、Codex、Pi、Hermes、Gemini CLI、Cursor Agent、Devin CLI、OpenCode。
基本上你叫得上名字的,它都能识别。
herdr 会识别 Pane 里运行的 Agent,并在左侧显示它当前的状态:
-
•
working🟡:还在执行任务 -
•
blocked🔴:需要输入、授权或做决定 -
•
done🟢:已经完成,但还没有查看 -
•
idle:任务结束或正在等待,而且已经看过

比如我同时开着几个任务时,就不需要挨个点进去确认进度。
看到 working 可以先放着;看到 blocked,说明它正在等我处理;变成 done,再切进去检查结果。
这也是我觉得它比普通分屏工具更适合 Coding Agent 的原因。
它管理的不只是终端布局,还会把不同项目、不同 Agent 的工作状态集中到同一个界面里。项目一多,这种差别会很明显。
不过,这块也需要说清楚:状态识别并不是百分之百准确。
herdr 会结合前台进程、屏幕内容和 Agent 集成来判断状态,偶尔可能出现 unknown,或者识别结果与实际情况不完全一致。
Agent 自动化与多 Agent 协作
herdr 还有一个更有意思的能力:它不只让人来管理窗口,也向 Agent 提供了 CLI、Socket API 和一个专门的 Skill。
安装 herdr Skill 的命令是:
npx skills add herdrdev/herdr --skill herdr -g
当 Claude Code 或其他支持 Skill 的 Agent 运行在 herdr 里面时,它可以通过 herdr 的命令行做这些事情:
-
• 创建新的 workspace 和 pane
-
• 在某个 pane 里启动另一个 Agent
-
• 给另一个 Agent 发 prompt
-
• 等另一个 Agent 完成任务
-
• 读取另一个 Agent 的输出
换句话说,Agent 之间可以通过 herdr 互相协作了。
举个简单例子 👇
把一个较大的开发任务交给主 Agent,让它在相邻的 Pane 里启动辅助 Agent,分别检查接口、前端和测试。
主 Agent 不需要不停向其他终端发送按键,而是可以读取结果、等待状态变化,再继续汇总。
到这里,herdr 提供的不只是一个「给人用的终端界面」,同时也是 Agent 能操作的运行环境。
但它解决的是启动、观察、等待和通信这些基础动作,并不会自动替你拆好任务,也不会让几个 Agent 天然拥有同一份上下文。
如果多个 Agent 同时修改同一个项目,我的建议依然是配合 Git Worktree,把各自的工作目录和分支隔离开。
否则窗口虽然管理好了,代码冲突还是会照样出现。
写在最后
herdr 并不适合所有人。
如果你平时只开一个 Claude Code 或 Codex,或者已经非常熟悉 tmux,并且有一套稳定的终端工作流,那它带来的提升可能并不明显。
但如果你经常同时跑多个 Agent,还要兼顾几个项目、日志和开发服务,它确实能减少很多无意义的来回切换。
另外,herdr 目前仍处于 1.0 之前的快速迭代阶段,有些边界需要提前知道。
它的后台运行不等于云服务。电脑真的进入睡眠以后,任务也会随系统暂停;
herdr 服务完整重启以后,可以恢复窗口布局和受支持 Agent 的会话,但普通命令和任意后台进程并不能原样恢复。
所以它更适合那些已经开始同时使用多个 Agent 干活,但缺少一个简单易用的终端复用器的人。
如果你也遇到了类似的需求,可以试试。