herdr 一个窗口调度多个 Coding Agent
2026-7-1 00:0:0 Author: blog.einverne.info(查看原文) 阅读量:0 收藏

什么是 Herdr

Herdr 是一个运行在终端里的 AI 编码 agent 多路复用器(agent multiplexer)。官方用一句话概括它的定位:Herdr 之于编码 agent,就像 [[tmux]] 之于终端。它运行在你的 agent 运行的地方——本地机器、服务器,或任何可以 ssh 进去的环境,让你在一个终端里同时观察和操作多个正在工作的 agent。

随着 [[Claude Code]]、[[Codex]]、[[OpenCode]] 这类终端原生的编码 agent 流行起来,开发者常常会同时跑好几个 agent 处理不同的任务或仓库。问题随之而来:哪个 agent 在干活,哪个卡住了在等你确认,哪个已经做完了?Herdr 解决的就是这个“一群 agent 的可见性与编排”问题,把整个“herd”(畜群,这里指你养的一群 agent)收拢进一个终端。

Herdr 使用 [[Rust]] 编写,是开源项目,在 GitHub 上托管于 ogulcancelik/herdr。它强调 mouse-first(鼠标优先)和 agent-aware(感知 agent 状态),并且不依赖 Electron,是真正的终端原生工具。

核心功能

Herdr 的核心价值在于把多个 agent 的状态可视化并集中控制。

  • 状态一览:在侧边栏中以 working(工作中)、blocked(被阻塞,等待确认)、done(已完成)、idle(空闲)等状态实时显示每个 agent 的进展,一眼就能看出谁需要你介入。
  • 点击即达:可以直接点击任意 pane、agent 或 workspace 跳转过去,处理被阻塞的 agent,再切回其他任务。
  • 会话持久化:类似 tmux,detach(断开)后再 reattach(重连),pane 与 agent 都不会死掉。官方的卖点是“合上笔记本,什么都不会消失”。
  • 远程与 SSH:可以在远程服务器上运行 Herdr,通过 SSH bridge 连接,本地终端就能管理跑在服务器上的一群 agent。
  • 原生 agent 恢复:支持 restart restore、pane history replay 以及 live handoff(在替换 server 进程时,pane 的 PTY 仍然存活,长任务继续响应)。
  • 通知机制:agent 状态翻转(比如从 working 变为 blocked)时可以触发通知,提醒你去处理。

核心概念

Herdr 用一套层级化的概念来组织工作空间:

  • Session:顶层命名空间,整个会话环境。
  • Workspace:项目级别的工作区,侧边栏会把该项目下所有 agent 的状态汇总(roll up)显示。
  • Tab:workspace 内的标签页,例如 agents、logs、server 等。
  • Pane:最小的终端单元,每个 pane 承载一个 PTY,可以是一个 agent,也可以是普通的 shell 命令(如 bun run devtail -fpython3 -m http.server)。

这套模型对用过 tmux 或 [[Zellij]] 的人来说很熟悉,但 Herdr 在其上叠加了对 agent 状态的语义理解。

5b4JYetkWF

安装与使用

Herdr 在 Linux 和 macOS 上提供稳定版,Windows 目前是 preview beta(仅供预览)。

脚本安装(Linux/macOS):

curl -fsSL https://herdr.dev/install.sh | sh

此外还支持 Homebrew 与 [[Nix]] flake 安装。Windows 预览版通过 PowerShell:

irm https://herdr.dev/install.ps1 | iex

默认键位前缀沿用 tmux 的习惯 ctrl+b,例如 prefix+v / prefix+c 用于切分 pane,prefix+q 等。对完全没接触过多路复用器的用户,Herdr 主打鼠标优先:可以点击 pane、拖拽边框、通过右键菜单切分和切换,不需要先背快捷键。

配置文件位于 ~/.config/herdr/config.toml,可以自定义键位、主题、侧边栏行为、通知与滚动缓冲等。

键盘快捷键

Herdr 有三种输入模式,快捷键的含义取决于当前所在模式:

  • Terminal mode:按键直接发送到当前聚焦的 Pane(默认模式)
  • Prefix mode:按下 ctrl+b 后触发,执行单次 Herdr 命令
  • Navigate mode:持久化导航界面,用于在 Pane 间移动

默认前缀键为 ctrl+b,可在 ~/.config/herdr/config.toml 中自定义。

Pane 管理

快捷键 功能
prefix+v 向右垂直分屏
prefix+minus 向下水平分屏
prefix+h/j/k/l 在 Pane 间移动(左/下/上/右)
prefix+shift+h/j/k/l 交换相邻 Pane
prefix+z 放大/还原当前 Pane
prefix+x 关闭当前 Pane
prefix+r 进入调整大小模式
prefix+[ 进入复制模式

Tab 管理

快捷键 功能
prefix+c 新建 Tab
prefix+n 切换到下一个 Tab
prefix+p 切换到上一个 Tab
prefix+1..9 直接跳转到对应编号的 Tab
prefix+T 重命名当前 Tab
prefix+X 关闭当前 Tab

Workspace 与会话

快捷键 功能
prefix+N 新建 Workspace
prefix+W 重命名 Workspace
prefix+D 关闭 Workspace
prefix+w 打开 Workspace 导航
prefix+g 跳转选择器(快速跳到任意 Pane)
prefix+b 切换侧边栏显示/隐藏
prefix+q Detach 会话(后台继续运行)
prefix+? 查看所有快捷键帮助

无前缀直接绑定

不需要按前缀键,直接触发:

快捷键 功能
ctrl+alt+h/j/k/l 聚焦左/下/上/右 Pane
ctrl+alt+[ 切换到上一个 Tab
ctrl+alt+] 切换到下一个 Tab
ctrl+alt+c 新建 Tab
ctrl+alt+d 垂直分屏
ctrl+alt+shift+d 水平分屏
ctrl+alt+z 放大/还原当前 Pane
ctrl+p 打开命令面板
ctrl+k 搜索

复制模式(Copy Mode)

进入复制模式(prefix+[)后的操作:

按键 功能
h/j/k/lw/b/e{/} 移动光标
vSpace 开始选择
yEnter 复制选中内容
qEsc 退出复制模式

其他

快捷键 功能
Esc 中断当前操作
shift+tab 循环切换权限模式(permission mode)

与 Agent 的集成

Herdr 一个有意思的设计是它本身对 agent 友好。它附带一个 skill 文件 SKILL.md,安装时会写入 agent 的指令目录(例如 [[Claude Code]] 的 ~/.claude/skills/herdr/SKILL.md,Codex 的 ~/.codex/AGENTS.md),这样 agent 在 pane 内部就能原生地理解并执行 Herdr 命令。

官方甚至建议让 agent 自己来完成 onboarding,把下面这段提示丢给正在运行的 agent 即可:

Help me understand and set up Herdr. Read https://herdr.dev/agent-guide.md first, then walk me through it step by step.

Herdr 还提供 CLI 与本地 socket API,允许脚本、工具和 agent 通过编程方式控制 Herdr,实现自动化编排。

插件与生态

Herdr 支持本地可执行的工作流插件(plugin),通过 manifest 定义 action 和 event hook 来扩展功能。社区可以通过 GitHub 分享插件并打 tag,待官方 marketplace 上线后被收录。主题方面内置了对 catppuccin、tokyo night 等流行配色的支持。

对比分析

Herdr 官方提供了与同类工具的对比,核心差异在于“终端原生”与“感知 agent 状态”两点:

  • 对比 [[tmux]] / [[Zellij]]:传统多路复用器只管理终端 PTY 与会话持久化,并不理解里面跑的是什么 agent,也不会汇总 working / blocked / done 状态。Herdr 在持久化之外叠加了 agent 语义。
  • 对比 [[cmux]]、[[Solo]]、[[Conductor]]、[[Emdash]] 等 agent 编排工具:这些工具不少是 GUI 或 Dashboard 形态,或基于 worktree 调度。Herdr 的差异是完全活在终端里,支持远程 SSH,且以 blocked 状态的可见性为核心。
  • 对比 [[Warp]]:Warp 是 UX 打磨精良的现代终端,但它是面向人的终端体验;Herdr 专注于多 agent 的并行可见与编排。

简单说,如果你需要的是“在终端里同时盯住一群编码 agent,谁卡住了立刻去救”,Herdr 的定位最贴合;如果只是单纯需要终端分屏与会话保持,tmux/Zellij 已经够用。


文章来源: https://blog.einverne.info/post/2026/07/herdr.html
如有侵权请联系:admin#unsafe.sh