什么是 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,是真正的终端原生工具。
| Bilibili | YouTube |
核心功能
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 dev、tail -f、python3 -m http.server)。
这套模型对用过 tmux 或 [[Zellij]] 的人来说很熟悉,但 Herdr 在其上叠加了对 agent 状态的语义理解。

安装与使用
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/l、w/b/e、{/} |
移动光标 |
v 或 Space |
开始选择 |
y 或 Enter |
复制选中内容 |
q 或 Esc |
退出复制模式 |
其他
| 快捷键 | 功能 |
|---|---|
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 已经够用。