ByteNoteByteNote

字节笔记本

2026年6月13日

Herdr 使用技巧:Workspace 管理、多 Agent 并行、远程附着与 CLI 操控

API中转
¥120

试了两天 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),需要装集成插件:

bash
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.statustool.executepermission.asked 这些事件都会触发状态更新。

查看安装状态:

bash
herdr integration status

用好 Workspace 来组织多项目

Herdr 默认会在当前目录创建一个 Workspace。如果你同时维护多个项目,按项目建 Workspace 是最合理的组织方式:

bash
# 创建新 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

创建方式:

text
# 先启动主 agent
claude

# 在 TUI 里右键 → split right,再在新 pane 里启动第二个 agent
# 或者用键盘:
# prefix+v 垂直分屏,prefix+minus 水平分屏

分屏之后可以直接拖拽边框调整大小,Herdr 是鼠标原生的。

快捷键:记住这 5 个就够了

Herdr 支持鼠标操作,键盘不是必须的。但如果想提升效率,记住这几组:

操作快捷键
新 tabprefix+c
垂直分屏prefix+v
水平分屏prefix+minus
切换 workspaceprefix+w
分离客户端(后台继续跑)prefix+q

prefix 默认是 ctrl+b,和 tmux 一样。按 prefix+? 可以查看所有绑定。

如果你嫌 prefix 模式麻烦,可以绑定直通键:

toml
[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 最本质的区别。

bash
# 在指定 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"这样的标签。可以重命名让侧边栏更清晰:

bash
# 重命名
herdr agent rename 1-1 "前端审查"

# 清除别名
herdr agent rename 1-1 --clear

这样侧边栏显示的就是"前端审查"而不是笼统的"claude"。

远程工作的三种姿势

Herdr 的 client-server 架构让远程工作很自然:

  1. SSH 进去再跑 herdr:和 tmux 一样,SSH 到服务器,执行 herdr。断开后 agent 继续跑,再连回来 herdr 重新 attach。

  2. herdr --remote 直连:本地 herdr 作为 thin client,远程 herdr 在服务器上跑,TUI 流回本地终端:

    bash
    herdr --remote workbox

    这种方式可以读取本地剪贴板,适合从手机上 SSH 检查 agent 状态。

  3. 手机上 SSH:任何 SSH 客户端都可以连接,Herdr 在窄屏上会自动切换为响应式布局。

侧边栏状态解读

侧边栏的图标含义:

图标状态含义
done任务完成,等你查看
idle空闲中
blocked被阻塞,需要你操作(通常是权限确认或回答问题)
working正在工作

blocked 是最值得关注的状态。Herdr 只会在检测到 agent 正在等待输入(permission 弹窗、问题确认等)时才标记为 blocked,不会误报。

查看状态来源:

bash
herdr agent explain 1-1

会输出完整的状态判定链路,包括用了哪个 manifest 规则、匹配到了什么 evidence。

配置推荐

我目前的配置:

toml
[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 主动告诉你它在干什么。这个设计思路的变化,比功能清单重要得多。

分享: