字节笔记本
2026年6月13日
Herdr 使用技巧:Workspace 管理、多 Agent 并行、远程附着与 CLI 操控
试了两天 Herdr,把值得记录的操作技巧整理出来。这篇文章假定你已经装好了 Herdr(curl -fsSL https://herdr.dev/install.sh | sh),直接讲怎么用好它。
先搞懂它的核心模型
Herdr 有三层结构:Workspace > Tab > Pane。
一个 Workspace 对应一个项目,里面可以建多个 Tab,每个 Tab 里可以分多个 Pane。每个 Pane 跑一个终端进程——可以是 Claude Code、OpenCode、Codex,也可以是普通的 just test 或者 tail -f log。
侧边栏会自动聚合状态:一个 Pane 里的 agent 如果 blocked,整个 Workspace 都会标记为 blocked。这样扫一眼就知道哪个项目需要你去处理。
安装所有 agent 集成
Herdr 能自动检测大部分 agent,但要拿到完整的状态上报(blocked / working / idle),需要装集成插件:
herdr integration install claude
herdr integration install codex
herdr integration install opencode
herdr integration install pi
herdr integration install kimi
# ... 你用的 agent 都装一遍装完之后,agent 在 Herdr pane 里运行时就会通过 Unix socket 主动向 Herdr 上报状态。拿 opencode 来说,session.status、tool.execute、permission.asked 这些事件都会触发状态更新。
查看安装状态:
herdr integration status用好 Workspace 来组织多项目
Herdr 默认会在当前目录创建一个 Workspace。如果你同时维护多个项目,按项目建 Workspace 是最合理的组织方式:
# 创建新 workspace
herdr workspace create --cwd ~/project-a --label "Project A"
herdr workspace create --cwd ~/project-b --label "Project B"
# 切换 workspace
herdr workspace focus <workspace_id>
# 列出所有 workspace
herdr workspace list也可以直接在 TUI 里操作:右键侧边栏 → 创建 workspace,或者键盘 prefix+shift+n。
分屏策略:左右分给 agent,上下分给工具
我试下来最顺手的布局是在一个 Tab 里:
- 左侧 pane(宽列):跑主 agent,比如 Claude Code
- 右侧 pane(窄列):跑辅助 agent,比如 opencode 做代码审查
- 底部 pane:跑日志、测试或 dev server
创建方式:
# 先启动主 agent
claude
# 在 TUI 里右键 → split right,再在新 pane 里启动第二个 agent
# 或者用键盘:
# prefix+v 垂直分屏,prefix+minus 水平分屏分屏之后可以直接拖拽边框调整大小,Herdr 是鼠标原生的。
快捷键:记住这 5 个就够了
Herdr 支持鼠标操作,键盘不是必须的。但如果想提升效率,记住这几组:
| 操作 | 快捷键 |
|---|---|
| 新 tab | prefix+c |
| 垂直分屏 | prefix+v |
| 水平分屏 | prefix+minus |
| 切换 workspace | prefix+w |
| 分离客户端(后台继续跑) | prefix+q |
prefix 默认是 ctrl+b,和 tmux 一样。按 prefix+? 可以查看所有绑定。
如果你嫌 prefix 模式麻烦,可以绑定直通键:
[keys]
focus_pane_left = ["prefix+h", "ctrl+alt+h"]
focus_pane_down = ["prefix+j", "ctrl+alt+j"]
split_vertical = ["prefix+v", "ctrl+alt+d"]
new_tab = ["prefix+c", "ctrl+alt+c"]配置在 ~/.config/herdr/config.toml,改完执行 herdr server reload-config 即时生效。
用 CLI 远程操控 agent
Herdr 的 socket API 和 CLI 让 agent 可以反过来操控终端。这是和 tmux 最本质的区别。
# 在指定 pane 里运行命令
herdr pane run 1-2 "just test"
# 读取 pane 的输出
herdr pane read 1-2 --source recent --lines 50
# 等待 agent 完成某个状态
herdr agent wait 1-1 --status done --timeout 300000
# 发送文本到 agent
herdr agent send reviewer "请审查这段代码的命名规范"我在 motai 项目里试了试:在第二个 pane 里跑 opencode,第一个 pane 里的 claude 执行到某个阶段后,通过 CLI 向第二个 pane 发指令做代码审查,然后等它出结果再继续。整个过程不需要切窗口。
给 agent 起别名
如果一个 Workspace 里有多个 agent,默认显示的是"claude"、"opencode"这样的标签。可以重命名让侧边栏更清晰:
# 重命名
herdr agent rename 1-1 "前端审查"
# 清除别名
herdr agent rename 1-1 --clear这样侧边栏显示的就是"前端审查"而不是笼统的"claude"。
远程工作的三种姿势
Herdr 的 client-server 架构让远程工作很自然:
-
SSH 进去再跑 herdr:和 tmux 一样,SSH 到服务器,执行
herdr。断开后 agent 继续跑,再连回来herdr重新 attach。 -
herdr --remote直连:本地 herdr 作为 thin client,远程 herdr 在服务器上跑,TUI 流回本地终端:bashherdr --remote workbox这种方式可以读取本地剪贴板,适合从手机上 SSH 检查 agent 状态。
-
手机上 SSH:任何 SSH 客户端都可以连接,Herdr 在窄屏上会自动切换为响应式布局。
侧边栏状态解读
侧边栏的图标含义:
| 图标 | 状态 | 含义 |
|---|---|---|
| ✓ | done | 任务完成,等你查看 |
| ◉ | idle | 空闲中 |
| ● | blocked | 被阻塞,需要你操作(通常是权限确认或回答问题) |
| ⠋ | working | 正在工作 |
blocked 是最值得关注的状态。Herdr 只会在检测到 agent 正在等待输入(permission 弹窗、问题确认等)时才标记为 blocked,不会误报。
查看状态来源:
herdr agent explain 1-1会输出完整的状态判定链路,包括用了哪个 manifest 规则、匹配到了什么 evidence。
配置推荐
我目前的配置:
[theme]
name = "catppuccin"
[sidebar]
width = 28
[keys]
prefix = "ctrl+b"
split_vertical = ["prefix+v", "ctrl+alt+d"]
split_horizontal = ["prefix+minus", "ctrl+alt+shift+d"]
new_tab = ["prefix+c", "ctrl+alt+c"]]
[notifications]
enabled = true做了两件事:换了 Catppuccin 主题,加了几个 ctrl+alt 直通键减少 prefix 按键次数。
什么时候该用 Herdr
如果你同时跑 2 个以上 agent,或者在远程服务器上跑 agent、本地只是看看状态,Herdr 的收益很明显。如果只是单 agent 本地开发,tmux 可能已经够用。
Herdr 真正的价值在于它的 agent 语义感知——不是让你去 monitor agent,而是让 agent 主动告诉你它在干什么。这个设计思路的变化,比功能清单重要得多。