注:本文文字经 AI 辅助校对排版。0. 为什么我们需要一个懂 Agent 的分屏工具?现在很多人接手稍微大一点的重构任务,桌面上往往同时挂着好几个 CLI 编程工具——比如一个窗口跑改业务逻辑,旁边开着补单元测试,偶尔还要调 再调一个做方案对比。窗口一多,最打断思路的不是写需求,而是在各个终端之间来回切屏和确认:任务派出去之后,切去写别的模块,等想起来切回来,才发现 Agent 早在 10 分钟前就跑完了,正卡在 [y/N] 确认框前等你敲回车;又或者不小心误关了终端窗口、SSH 临时掉线,跑了一半的会话上下文就全丢了。herdr 解决的就是这个问题。它是一个 Rust 编写的终端复用器。基础功能和 tmux、Zellij 类似:在一个窗口里自由切分屏幕、保持后台会话常驻。但它针对 AI 编程多做了一件很实用的事:能自动识别常见的 CLI Agent,并在左侧栏标出每个分屏的当前状态(目前已原生支持 Claude Code、Codex、Cursor CLI、Grok Build、Antigravity CLI、Pi、OpenCode 等主流工具;普通进程则作为标准终端运行)。外层依然是你习惯的终端(如 Ghostty、iTerm2 或手机上的 Moshi),内层依然跑着你的 zsh 或 fish,而夹在中间的 herdr 负责把各个 Agent 的状态整理在同一屏里。1. 安装与快速上手herdr 支持 macOS、Linux 和 Windows,以单二进制分发。官方提供了一行安装脚本:curl -fsSL https://herdr.dev/install.sh | sh包管理器用户可以用 Homebrew 或 mise 安装;Windows 平台可以使用官方提供的 PowerShell 脚本(详见 官方指南)。安装后在项目目录下输入 herdr 即可启动。关掉窗口或断网后,后台会话依然运行,重新打开终端输入 herdr 即可恢复现场。一屏里同时开着编辑器和两个 Agent2. 日常使用与工作流2.1 鼠标与快捷键分屏和窗口操作支持常规的鼠标交互,无需额外配置:拖拽分屏边框调整大小;滚轮独立滚动各分屏的历史输出;右键点击呼出菜单,快速切分或关闭窗格;点击任意分屏直接切换输入焦点。快捷键默认沿用了 tmux 的 Ctrl+b 前缀(按下 Ctrl+b 松开,再按对应字母):操作快捷键对应鼠标操作左右垂直分屏Ctrl+b 然后按 v右键选择「Split Vertical」上下水平分屏Ctrl+b 然后按 -右键选择「Split Horizontal」新建标签页 (Tab)Ctrl+b 然后按 c点击顶部栏 + 号后台挂起 (Detach)Ctrl+b 然后按 q-快捷键帮助Ctrl+b 然后按 ?-左边开着 nvim 写代码,右边随手切一格跑 Agent:nvim 再分出一格2.2 状态感知与快速跳转herdr 左侧的状态栏会自动识别各格子里运行的 Agent,并归类为四种状态:Blocked:卡在权限确认框(如 [y/N])或正在向你提问,等待人工放行;Working:正在执行命令、读写文件或进行模型推理;Done:本轮任务执行完毕,等待验收;Idle:普通 Shell 空闲。(状态点的颜色会随终端主题自适应)当右侧 Agent 卡在确认环节时,左侧栏会实时显示哪一个分屏需要处理:左边在写,右边卡在确认;侧栏同时能看见 blocked 和正在跑当同时跑好几个任务时,按下 Ctrl+b 松开再按 g,可以唤出 Agent 快速跳转面板:Ctrl+b g 弹出跳转面板按键过滤目标使用场景bBlocked直达所有卡在确认框的 Agent,敲回车放行wWorking查看哪些 Agent 正在高负载运行dDone切到已完成的窗口审查修改结果iIdle寻找空闲窗口分派新任务aAll列出全部 Agent实际用下来最顺手的操作是:按下 Ctrl+b g 后按 b 直达卡住的 Agent 敲回车放行;处理完再按 Ctrl+b g + d 切换到跑完的分屏验收。双手不用离开主键盘区,也不用在一堆小分屏里到处找光标。2.3 让主力 Agent 充当主控调度herdr 提供了官方 Skill。只要让你的主力 Agent 读入 herdr --skill,它就能通过命令自己切分屏幕和管理会话。例如输入这样一条 Prompt,让它自己切出一套多窗口布局:read herdr --skill then split 10 other panels that make my computer look like some scifi hacker terminal from the movies它会自动完成分屏:读 herdr --skill 之后自己开格子更实用的场景是多模型交叉 Code Review。比如给主力 Agent 下发任务:“请针对当前分支开 3 个独立 Tab,分别启动 Codex、Grok Build 和 Antigravity CLI 做交叉代码审计;把大家的意见汇总成一份综合方案呈报给我,待我确认后再关闭这 3 个临时 Review 窗口。”主控会自动开 Tab、拉起不同模型、分发代码差异并等待它们跑完,最后汇总意见给你确认。如果需要多个 Agent 并行修改同一个项目,吩咐它开 git worktree 或独立分支即可,现在的 Agent 基本都能自行做好环境隔离。2.4 移动端与看板:Tailscale + Mosh + herdr-paddock当并发管理的 Agent 较多、或者人离开办公桌后,侧栏状态点虽然看得到,但具体的报错和提问内容依然需要切进分屏查看。在手机上通过 SSH 连入开发机时(iOS 推荐 Moshi、Blink,Android 推荐 Termux),竖屏通常只有约 40 列宽,桌面端 80 列以上的布局容易挤压。此时可以先按 Ctrl+b b 临时收起侧边栏。我的移动端配置Tailscale:异地组网,无需公网 IP 和端口转发;Mosh:在移动端代替传统 SSH,进出地铁或切换 Wi-Fi 断网后会自动重连,几乎无感;终端客户端:iOS 主力用 Moshi,Android 推荐 Termux。herdr-paddock:竖屏卡片流看板为了在手机和副屏上更直观地查看各 Agent 的状态,我写了一个轻量辅助插件 herdr-paddock。它读取 herdr 的状态,把各个 Agent 的最新输出排版成竖屏卡片流:桌面副屏:常驻在副屏角落,不用频繁切窗,余光一扫就能看清所有 Agent 当前在干什么;手机通勤:配合 Tailscale + Mosh 连入,卡在等待审批的任务会自动置顶,通勤路上单手按 y 即可放行。(下面两张为仓库 neyham/herdr-paddock 的卡片流演示:blocked 任务自动置顶,点进单卡可直接交互)paddock 卡片墙:blocked 置顶,一眼看完全场手机竖屏上的 paddock 卡片流3. 和现有工具怎么搭配?herdr 和常用工具的结合方式:1. Ghostty / 原生终端直接在 Ghostty 里运行 herdr 即可——Ghostty 的渲染效果不受影响,同时获得了后台会话保活和状态看板。2. tmux / Zellij快捷键完全兼容(默认都是 Ctrl+b),习惯 tmux 的人基本零迁移成本。在并发跑 Agent 时,多出来的状态栏和单键跳转会更省心。3. 官方桌面客户端(如 Codex App 等)单模型的日常对话与本地 Diff 预览用官方 App 很直观;当需要多个不同厂商模型(如 Claude + Codex + Grok)协同、或者把任务挂在无图形界面的 Linux 服务器上时,走终端更灵活。4. 远程桌面(向日葵 / ToDesk / UU)图形化交互留给远程桌面;如果只是跟进终端里 Agent 的写代码进度,走 Tailscale + Mosh + herdr 字符流,在手机弱网环境下更轻快省电。4. 避坑与使用边界会话持久化的范围:detach 保证的是关掉终端窗口或 SSH 断线时后台 Server 与任务持续运行。如果遇到断电或系统重启,普通进程依然会被操作系统回收。只有安装了官方 herdr integration 的受支持 Agent,在重启后才具备恢复会话上下文的能力,跑了一半的普通命令并不会凭空复活。5. 结语用了这段时间,herdr 真正帮我解决的核心问题,其实就是在终端里同时奔跑着成群的 Agent 时,帮开发者守住注意力。清晰的状态侧栏、Ctrl+b g 的快速跳转,再加上可以让主力 Agent 调度多个模型协同——如果你也经常在多个终端分屏之间来回找光标、漏看确认框,在终端里敲下 herdr 试试,应该会顺手不少。
从分屏到放牧 Agent:herdr 终端复用器实践指南
来源:少数派
2026年09月01日 10:01
0 阅读
分享到: