
🐐 一个终端,管一群 agent:把 AI 编程助手装进 Herdr 里
本期主题来源于前两天公众号小伙伴“佛波勒”推荐的 herdr,我之前没有听说过,收到推荐后我这两天上手体验了一下。虽然目前我自己的单项目任务运行占了我一大半,少部分时候我会进行多项目并行,我还没有用满 herdr,但是现在只要跑 agent 任务,我都更愿意放到 herdr 当中来跑了,状态提醒的功能太香了。😂😂😂
1. 🐐 从零到跑起来
Herdr 是一个二进制命令行工具(不是 Electron 应用,不是浏览器 dashboard),它在一个终端窗口中管理多个 AI 编程 agent 的 PTY 会话。它的定位是 Agent Multiplexer(agent 多路复用器)——就像 tmux 多路复用了多个 shell session,Herdr 多路复用了多个 agent session。
核心设计哲学:"Real panes, not rebuilt chat views."——Herdr 不重新实现 agent 的聊天界面,而是让 agent 运行在真正的终端 PTY 中,保留 shell、字体、keybinding 等一切终端体验。
安装十分简单,执行命令即可:
装完之后终端里敲:
一个带 sidebar 的 TUI 界面就出来了。可以发现有三个面板:spaces、agents、Pane,Pane 就是一个正常的终端界面,在这里直接运行一个 opencode,然后开始对话,在 agents 面板中可以方便地查看 opencode 的运行状态。
图:herdr 的 TUI 界面,左侧 spaces/agents 面板,右侧真实 PTY 终端
操作到这里,其实可以说已经掌握 herdr 的核心用法了。
首次运行 herdr 背后做了两件事:在后台 spawn 一个 server 进程,同时在前台启动一个 client TUI。你看到的只是 client,server 悄悄在后台活着。这个分离是理解 herdr 一切行为的关键——后面会展开讲。
2. 多 agent 并行,sidebar 帮你盯全场
装完之后我做了件很自然的事:跑 agent。
在 herdr 里跑 agent 和平时在终端里跑没有区别。你就在 pane 里敲 opencode,它就在那个 pane 里启动。唯一的区别是——sidebar 上多了一个状态标记。
Herdr 不需要你告诉它"这个 pane 里跑的是 agent"。它通过两套机制自动检测:
blocked 规则。零配置,开箱即用。两种机制互斥:有 hook 就不走 screen manifest。
herdr 真正强大的地方,不是跑一个 agent,而是同时跑多个。
当你打开了一个 workspace,Ctrl+B v 向右 split 了一个 pane,又 Ctrl+B - 向下 split 了一个。三个 pane,每个里面跑一个 opencode,分别输入不同的任务指令。
然后 sidebar 上你可能看到的画面是这样的:
opencode working 🟡 — 正在写代码opencode blocked 🔴 — 卡住了,在等你确认权限opencode done 🔵 — 干完了,等你看不用手动切 tab 去看谁干完了。 sidebar 帮你盯全场。哪个 agent blocked 了需要你介入,哪个 done 了可以去看结果——一目了然。
有了这个状态展示的功能,我就不用像之前那样,在 Ghostty 中反复的去切换 Tab 页查看各个 agent 的运行状态了。方便了太多了,而且这样的感觉很棒。
Herdr 里 agent 有五种状态:
图:Herdr 中 agent 的五种状态及触发条件
状态会向上汇总:一个 blocked 的 agent 让它所在的 pane、tab、workspace 都在 sidebar 上亮红灯。这是 herdr 的核心工作流——起几个 agent 并行干活,sidebar 告诉你哪个项目需要你。
鼠标操作也很舒服:点击 pane 聚焦,拖边框 resize,右键出菜单,选中文本自动复制。herdr 是 mouse-native 的,不强迫你用键盘——但快捷键也全都给了。
图:Herdr 常用快捷键速查
3. 关终端 ≠ 关 session
这是我最开始的理解盲区。我以为 herdr 和普通命令行程序一样——我关掉终端,它就应该随着我终端的进程被杀没了。
❌ 但是不是的。
还记得前面说的吗?首次 herdr 做了两件事:后台 spawn server,前台启动 client。你关终端窗口,死掉的只是 client。Server 和它手里的所有 agent 进程还活着。
你可以验证:
⚠️ 注意:这个行为对习惯了"关窗口 = 结束一切"的人来说是一个认知切换。如果你不知道这个机制,你可能会在不知不觉中让好几个 herdr server 在后台吃资源。
什么情况 session 真会停?
图:不同事件对 Herdr Session 存活状态的影响
这个设计和 tmux 一模一样。tmux 的 session 在关终端后也继续跑——你把"agent"替换成"shell",把"herdr"替换成"tmux",行为逻辑是完全一致的。
而且就算 session 停止后,herdr 仍有两个恢复路径:
claude --resume <id> 等方式恢复对话。前提是 agent 本身支持 session 恢复。4. 五层俄罗斯套娃:Herdr 的架构模型
client-server 关系搞清楚了。下一个问题是:herdr 内部是怎么组织这些 pane 和 agent 的?
它的层级结构长这样:
图:Herdr 五层架构模型 — Session > Workspace > Tab > Pane > Agent
说人话:Session 是你整台电脑上的"herdr 世界",Workspace 是一个项目,Tab 是项目里的不同视角(比如"agents"和"logs"分开),Pane 是终端窗口,Agent 是跑在终端里的 AI。
图:Herdr 五层架构各层级的定义与创建方式
对准我的实操:我开的就是一个 workspace,在里面 split 了多个 pane,每个 pane 跑 OpenCode。herdr 把这些 pane 里的进程识别为 agent,在 sidebar 上汇总状态。
一个更完整的结构可能是这样的:
图:一个实际的 Session 结构示例,包含两个 Workspace
理解了这五层,后面看 herdr 的 CLI 命令就不会觉得乱了——所有命令都围绕这五层寻址。
5. 还能走多远:Agent 编排 + 插件生态
核心机制讲完了。herdr 还有两个进阶能力值得提一下。
5.1 Agent 可以操作 herdr 本身
herdr 提供一份 SKILL.md,可以装进任何 agent 的 skill 系统。直接从 GitHub 下载这个文件,配置到对应工具的 SKILL 目录即可——我用的 OpenCode,放在 ~/.config/opencode/skills/herdr 下。
它的工作原理很朴素:
HERDR_ENV=1 被自动注入)herdr pane split 开新窗格,用 herdr pane run 在里面启动另一个 agent」ls 或 npm test 一样自然本质就是 agent 在终端里跑 shell 命令,只不过这些命令恰好是 herdr 的 CLI。 装完之后 agent 就能跑这些命令:
图:Agent 通过 herdr CLI 操控 pane 和 agent 的核心命令
以下做了一个简单的样例演示:
视频:在 herdr 中,Agent 通过 SKILL.md 操控 herdr 的 CLI 来 split pane、启动子 agent
Agent A 从头到尾只是在一个 pane 里跑 shell 命令。但因为这些命令能操作 herdr,它就获得了"调度其他 agent"的能力。这打开了一个方向:agent 自己管理自己的流水线,不需要人类在中间当传话筒。
5.2 插件生态
herdr 的插件系统也很轻:一个 herdr-plugin.toml 清单文件 + 任意语言的脚本 = 一个插件。推到 GitHub 加个 herdr-plugin topic,很快就会自动上架到 marketplace。
核心设计哲学和 Pi 很像:herdr 核心只负责 terminal workspace、pane、agent 检测、CLI/Socket API,所有额外的工作流全部外包给插件,避免了变成一个臃肿的"全家桶"。
目前我还没有体验插件,让 AI 自行调研了一下社区插件,差不多分为这几类:
图:Herdr 社区插件主要功能分类
6. 我的判断:没有负担,装上就不会想删
herdr 是一个很棒的工具。 安装零摩擦,跑 agent 和平时在终端跑没有区别——但多了一个状态面板的收益。多 pane 并行的时候,sidebar 上的 blocked/working/done 让"同时盯多个 agent"从一件需要手动切来切去的事,变成了一眼扫过去就知道的事。
herdr 的体验足够好,好到即使我没有"必须用"的场景,我也愿意把日常的 agent 放进 herdr 里跑。它没有额外的认知负担——开 herdr 然后跑 agent,和开终端跑 agent 一样简单。但多出来的那个 sidebar,让整个体验上了一个台阶。
对我最有用的两点:
我目前暂时还没有"关电脑 agent 继续在服务器上跑"的需求,也没有"需要同时盯三个项目的 agent 进度"的场景。但如果以后开始远程开发、或者 agent 的并行度上来了——herdr 是现成的,不用再找别的。建议大家都去试试,用着真的挺爽的,设计理念也很棒,主体精简,插件丰富,而且完全开源,推荐给大家。
夜雨聆风