用途 Herdr 是面向编程智能体的终端多路复用器。它把终端组织成工作区(workspace)、标签页(tab)和窗格(pane),能够识别窗格中正在运行的编程智能体,并通过 herdr 命令行工具对外暴露当前会话。本技能用于在用户明确要求使用或配置 Herdr 时,对当前 Herdr 会话进行查看与操控。
使用前提与验证 在发出任何控制命令前,必须先验证当前智能体是否运行在 Herdr 管理的窗格中,命令为:test "${HERDR_ENV:-}" = 1。若检查失败,应说明自己未运行在 Herdr 内并停止,不得从 Herdr 外部查看或控制当前聚焦的 Herdr 会话。检查通过后,PATH 中的 herdr 可执行文件会与当前会话通信。
主要能力
- 布局与位置管理:workspace、tab、pane 三类拓扑用于组织终端位置。
- 窗格控制:pane 命令控制原始终端、shell、测试、服务器、输入与输出。
- 智能体控制:agent 命令控制当前占据某个窗格的已识别编程智能体,可校验智能体身份并解释 idle、working、blocked、done、unknown 等生命周期状态。
- 其他命令组:worktree、terminal、notification、integration、session。
使用方式 已安装的二进制文件是命令语法的权威来源,可先执行 herdr --help,再以不带子命令的方式打印相关命令组,如 herdr agent、herdr pane、herdr workspace、herdr tab、herdr worktree、herdr terminal、herdr notification、herdr integration、herdr session。不要直接运行裸 herdr 做探索,因为它会启动或附着 TUI;也不要用省略参数的方式试探会改变状态的嵌套命令,例如 herdr workspace create 带默认值即可执行。多数控制命令返回 JSON,应从响应中读取标识符与状态,而非自行预测。
标识符与调用上下文 公开 ID 为不透明且稳定的句柄:workspace 形如 w1,tab 形如 w1:t1,pane 形如 w1:p1。已关闭的标签页和窗格 ID 不会复用;窗格移动到另一工作区后会获得新的带工作区限定的窗格 ID,此时应使用 .result.move_result.pane.pane_id 或存活的智能体名继续操作,旧值仅在移动进程继承的调用方上下文中可解析,不应作为通用智能体目标。Herdr 会向每个受管窗格注入调用方上下文,可通过 $HERDR_WORKSPACE_ID、$HERDR_TAB_ID、$HERDR_PANE_ID 读取。需要以调用窗格为目标时应优先使用 --current,省略目标可能落到 UI 聚焦窗格,而该窗格可能属于用户或其他客户端。可用 herdr workspace list、herdr tab list --workspace "$HERDR_WORKSPACE_ID"、herdr pane current --current、herdr pane list --workspace "$HERDR_WORKSPACE_ID"、herdr agent list 查看实时状态。
启动与协调智能体 默认在当前标签页创建同级窗格并使用当前工作目录;除非用户明确要求,不要新建工作区、标签页、worktree 或切换目录。遵循用户指定的方向,否则先查看调用窗格布局(herdr pane layout --pane "$HERDR_PANE_ID"),宽窗格向右拆分、窄或高窗格向下拆分,避免重复同向拆分导致过窄列或过矮行。可执行 herdr pane split --current --direction right --cwd "$PWD" --no-focus,并从 .result.pane.pane_id 读取新窗格 ID。可用 shell 窗格必须处于交互提示符状态,shell 在前台且无前台命令、编辑器或智能体运行。随后用唯一且有意义的名称启动受支持智能体,例如 herdr agent start reviewer --kind codex --pane <返回的窗格 ID>;智能体原生参数需放在 -- 之后。成功启动仅在 Herdr 检测到同一窗格中的预期智能体并认为其已准备好交互输入后返回;若启动期间被阻塞,命令立即返回 agent_not_ready,但名称仍可用于读取与发送按键。
提交任务与读取结果 通过 herdr agent prompt reviewer "..." --wait --timeout 120000 提交工作;该命令遵循窗格实时 bracketed-paste 模式,发送文本并在短暂延迟后发送编码回车,若智能体正等待审批或提问对话框,会以 agent_blocked 拒绝发送。对于常规工作,--wait 足以等待首个稳定的 idle、done 或 blocked 状态;仅在需要特定状态的工作流中使用 --until。从非工作状态发出的提示必须在五秒内产生可观察的生命周期变化,否则返回 agent_prompt_stalled。交互式界面控制可用逻辑按键,如 herdr agent send-keys reviewer esc。可通过 herdr agent get 与 herdr agent read 读取结果。
普通命令与输出读取 可在新同级窗格中执行普通命令:herdr pane run <窗格 ID> "just test",用 herdr pane wait-output 等待匹配输出(--match 字面子串或 --regex 正则),再用 herdr pane read 读取。读取来源可选 visible、recent、recent-unwrapped、detection;日志与转录优先使用 recent-unwrapped。需要颜色证据时用 --format ansi,否则用 text。若增加 --lines 仍无法看到完整回复,可能因为智能体运行在终端备用屏幕,此时可让智能体把完整回复写成 Markdown 临时文件并只返回路径,再直接读取文件,此方法仅作回退。
安全与协调规则 后台工作使用 --no-focus;使用 --current、显式窗格 ID 或唯一智能体名,不依赖其他客户端的聚焦窗格;从 JSON 响应解析 ID;不要关闭非自己创建的工作区、标签页、窗格或会话,除非用户明确要求;除非用户明确要停止服务器及其窗格进程,否则不要从活动会话运行 herdr server stop;绝不杀死主 Herdr 进程;需要隔离服务器的实验应使用命名测试会话。CLI 服务器错误以 JSON 输出到 stderr 并退出码 1,语法错误退出码 2。
限制与说明 相关资料未提供收费、价格、支持平台、性能指标等信息,暂未提供。