Herdr 工作区入门:workspace、tab、pane 和 agent 怎么用

2026-06-28

写 herdr 之前我已经用了几年 tmux,后来换成 Zellij,写过一系列上手文章。那些文章默认读者已经熟悉"终端复用器"的基本概念——分面板、持久会话、detach 之后进程不挂。

但 herdr 的情况不一样。它给自己的定位是 agent multiplexer,面向的是开始用 AI coding agent(Claude Code、Codex、OpenCode 这类)的开发者。很多人第一次接触终端复用器是因为 agent,不是因为要在服务器上跑 vim。

所以这篇不讲对比,不讲高级功能,只把四个核心概念和界面用法讲清楚。

上一篇:Herdr:agent 复用器,不只是另一个 tmux — 讲 herdr 的定位、对比 tmux/Zellij、live handoff 等高级特性。

为什么需要 herdr

一个场景就够了:项目 A 跑着 opencode 改代码,项目 B 的 claude 在跑测试,项目 C 的 codex 卡在一个权限确认弹窗。三个项目各开一个终端窗口,来回切——每次都要扫一眼输出才能判断"现在该处理哪个"。

Herdr 把这个问题拆成两层:

  • 持久化:关掉终端窗口后进程继续跑,下次打开 herdr 回到之前的状态。
  • Agent 感知:侧栏显示每个 agent 当前状态——working、blocked、done、idle——不用一个个面板切过去看。

两者是同一层解决的,不需要 tmux + 桌面 agent 管理器两套工具。

四个核心概念

Herdr 的界面围绕四个层次组织,从大到小分别是:

Session → Workspace → Tab → Pane → Agent 层级关系

Workspace(工作区)

最顶层的项目容器。一个 workspace 对应一个项目、仓库或任务。侧栏按 workspace 聚合 agent 状态——每个 workspace 只显示其中最紧急的一个状态(blocked > working > done > idle)。

比如三个项目各一个 workspace,侧栏一眼看到 lls_blog 是 idle、api-server 是 working、dns-tools 是 blocked——先处理哪个不用想。

Tab(标签)

Workspace 内部的视图分组。同一个项目里可能同时需要写代码、看日志、跑 dev server,每个用途一个 tab,用 Ctrl+B n/p 切换。

Tab 也是 Socket API 里的一级对象——agent 可以创建 tab、在 tab 内拆分面板、管理布局。

Pane(面板)

一个真实的终端进程。不是 agent 输出的包装视图——pane 里显示的就是进程本身的输出,shell、vim、btop、tail -f 都可以跑。

Pane 可以横向或纵向拆分。每个 pane 都有自己的 PTY,detach 后由 herdr server 持有。attach 回来时所有 pane 的内容和状态都在。

Agent(Agent)

Herdr 识别出 pane 里运行的是 AI coding agent 后,会在侧栏显示其状态。识别方式通过进程名和屏幕输出检测,零配置。

Agent 状态流转如下:

Agent 状态流转:idle → working → blocked → done

状态含义
blockedAgent 需要输入、确认或决策
workingAgent 正在执行任务
doneAgent 完成了,尚未查看
idle已查看,等待下一条指令
unknownHerdr 无法确定状态

安装了原生集成(herdr integration install <name>)后,状态上报更精准,且支持会话恢复——server 重启后 agent 能自动恢复到之前的状态。

界面布局

Herdr 的界面分三个区域:

左侧栏、主面板区、右侧栏三区布局

左侧栏:列出所有 workspace。每行显示 workspace 名称和该 workspace 中最紧急的 agent 状态。点击可切换焦点。

主面板区:当前 workspace 的 pane 和 tab 布局。支持鼠标拖拽调整分隔条大小。

右侧栏:当前 workspace 内运行的 agent 列表及各状态。如果需要查看所有 workspace 的 agent,用 Ctrl+B w 打开 workspace 导航。

关掉侧栏可以给主面板更多空间:Ctrl+B b 切换侧栏显隐。

操作方式:鼠标为主,键盘为辅

Herdr 默认 鼠标全覆盖。不是"支持鼠标"——是每个交互点都可以点。

  • 点击 pane 切换焦点
  • 拖拽分隔条调整大小
  • 右键弹出菜单(拆分面板、新建标签、关闭等)
  • 拖拽选择文本即复制(不需要 Ctrl+C)
  • 双击选中一个 token 复制

不需要记住快捷键就能完成所有操作。键盘绑定是可选层,适合习惯 tmux 前缀键的用户:

操作快捷键
横向拆分 paneCtrl+B v
纵向拆分 paneCtrl+B -
新建 tabCtrl+B c
下一个/上一个 tabCtrl+B n / Ctrl+B p
Workspace 导航Ctrl+B w
新建 workspaceCtrl+B Shift+N
关闭当前 paneCtrl+B x
全屏当前 paneCtrl+B z
分离客户端Ctrl+B q
切换侧栏显隐Ctrl+B b

如果希望只用键盘,可以关闭鼠标捕获:[ui] mouse_capture = false

安装与首次启动

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

在项目目录输入 herdr,自动创建一个 workspace(以目录名或 git 仓库名为名)、一个 tab、一个默认 pane。在 pane 里启动 agent,侧栏立即出现状态。

配置文件在 ~/.config/herdr/config.toml,内置 18 套主题(catppuccin、tokyo night、gruvbox、solarized 等)。主题也可以在界面中通过 Ctrl+B 后选 Settings 切换。

移动端使用示例

Herdr 的 TUI 在窄屏幕上自适应——从手机 SSH 连接后,布局会自动调整为适合触控的切换视图。

手机 SSH 连接 herdr 会话窄屏 workspace 切换菜单

断连后 agent 继续运行,重新 SSH 进去输入 herdr 即可回到之前的会话。

总结

Herdr 的四个概念——workspace、tab、pane、agent——层次清晰,每一个解决一个具体问题:

  • Workspace:多项目管理时不知道哪个项目需要关注 → 侧栏聚合状态
  • Tab:单个项目内多个视角 → 视图分组
  • Pane:agent 需要可靠的终端运行时 → 持久 PTY
  • Agent:不知道 agent 卡住了还是跑完了 → 状态识别

鼠标全覆盖降低了上手门槛,不需要先背快捷键才能用。对于已经开始用 AI coding agent 但还没接触终端复用器的开发者,这是最自然的起点。


参考

https://blog.logfun.xyz/blog/feed.xml