Herdr 放牧指南:社区推荐帖精华总结 + 手机远程全攻略

2026 年,写代码这件事的主角从“一个 Agent”变成了“一群 Agent”:Claude Code、Codex、opencode、Cursor Agent、Copilot CLI 各自开一个终端,谁在干活、谁停下来等你批准、谁早就跑完了,全靠你人肉切换窗口去查。Herdr 就是冲这件事来的——它自己不写代码,只是给这些 Agent 修了个“牧场”:真实终端、后台常驻、状态可见、随时接入。

这篇不是安装说明书的复述,而是把社区里几篇最值得读的 Herdr 帖子(英文讨论串、中文长文、横评帖)串成一条上手路径,并单独用一节解决“人不在电脑前怎么办”——包括手机端。文中链接均可点击,最后附全部来源。

一、社区为什么都在推荐它

Herdr 官网的自我定位是一句话:the runtime your coding agents live on(编码 Agent 跑在上面的运行时)。它和 tmux / zellij 是同一个物种,但保活的对象不同:tmux 保活的是终端会话,Herdr 保活的是住在终端里的 Agent,并且知道那里面跑的到底是哪个 Agent、处于什么状态。

官网首页口径(2026-09-19 抓取):39,347 个 GitHub star、953,506 次安装、1,218 个社区插件、开箱自动识别 22 个 Agent CLI;Apache 2.0 开源,当前稳定版 0.9.1,macOS / Linux / Windows 三平台。

英文社区里最值得读的三条 Hacker News 讨论串:

翻完几百条评论,推荐理由其实高度集中:

  • 多客户端附着同一个会话:有用户说自己在桌面开一个窗口,回家路上用另一台笔记本 SSH 进来接着看同一个 Agent,会话和输出原地续上,不用重开。这是被提得最多的“真香”点。
  • 鼠标原生 + 侧栏状态:pane 右键就能分屏、重命名、关闭,拖边框调布局,选中文本即复制;比起记住一堆快捷键的 tmux,学习成本几乎为零。有评论总结为“一切都是可点击的,状态栏替我把 working/idle 分好了”。
  • 知道谁在等你:blocked 的判定很严格——只有画面里真的出现审批框、提问框、权限确认这类“等你答话”的界面才算,然后汇总到侧栏,你不用一个个终端翻过去找。
  • 反方观点也值得读:也有人直言“tmux 就够了”,担心拿了融资之后的商业化走向,或者拿它跟 Superset、cmux、Emdash、Conductor 等同类项目比较。看完这些再决定用不用,比跟风装一遍靠谱。

中文圈同样有几篇长文值得一读:

二、10 分钟上手

1)安装。一行命令,macOS / Linux / Windows 通用,另有 Homebrew、Nix 与手动安装:

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

2)先记住四层概念,后面所有操作都是它们的组合:workspace(项目级容器)→ tab → pane(真实终端)→ agent(pane 里被识别出来的编码 Agent)。建议一个项目一个 workspace,侧栏才读得清。

herdr                      # 启动或附着到默认后台会话
# 在 pane 里正常起 Agent:
claude                     # 或 codex / opencode / pi / hermes / copilot ...

3)鼠标优先,键盘可选。点击切 pane、右键出菜单、拖边框改布局;键盘派记三个就够:ctrl+b 进前缀模式、ctrl+b q 脱离(pane 和 Agent 继续跑)、herdr server stop 真正停掉整个会话。

4)关键一步:让 Agent 自己会操作 Herdr。官方提供了一个 skill 文件,装上之后,Agent 就能在 Herdr 里自己开 pane、跑命令、读输出、等另一个 Agent 干完——这是它区别于普通终端复用器的地方:

npx skills add herdrdev/herdr --skill herdr -g
# 已经装好 herdr 的话,也可以直接打印release自带的那份:
herdr --skill

这个 skill 的第一条是安全护栏:如果环境变量 HERDR_ENV=1 不存在(即不在 Herdr 管理的 pane 里),Agent 必须停下来说明情况,避免它去操作一个不属于自己的会话。

5)让 Agent 带你上手。如果你连终端复用器都懒得学,官方给了一条“让 Agent 教人”的路子,把这句话丢给你的编码 Agent 即可:

Help me understand and set up Herdr. Read https://herdr.dev/agent-guide.md first,
then walk me through it step by step.

注意官方把两件事分得很清楚:herdr.dev/agent-guide.md 是「让 Agent 教人」的指南,仓库里的 SKILL.md 是「让 Agent 操作 Herdr」的技能文件,别混用。

三、社区高赞的 8 个用法

1)一个项目一个 workspace,并行靠 git worktree。HN 上被反复提到的痛点是“Agent 干活要等很久,不多开几个 worktree 根本推进不动”。做法是每个 worktree 一个 workspace(社区插件 herdr-plus 提供了 Projects 模板,一次按键拉起整套 tab/pane 与启动命令)。

2)把 blocked 当收件箱,而不是轮询终端。与其隔五分钟切一圈窗口,不如让脚本或 Agent 等状态:

herdr agent wait reviewer --until blocked --timeout 120000
herdr agent read reviewer --source recent-unwrapped --lines 80
herdr agent send-keys reviewer esc

3)合盖就走,断网不中断。Herdr 是后台 server + 客户端结构,关掉窗口、合上笔记本、断掉网络,Agent 照跑;回来 herdr 重新附着,布局和滚屏历史都还在(重启机器后也能恢复布局,再配合 Agent 原生 resume 接着聊)。

4)让 Agent 指挥 Agent。Herdr 把控制面拆成三原语:布局(workspace/tab/pane)、pane(跑命令、读输出、等输出)、agent(按名字或 pane 控制生命周期)。官方配方长这样:

split=$(herdr pane split --current --direction right --no-focus)
review_pane=$(printf '%s\n' "$split" | jq -r '.result.pane.pane_id')
herdr agent start reviewer --kind codex --pane "$review_pane" -- -m gpt-5.4
herdr agent prompt reviewer "Review the current diff" --wait --timeout 120000
herdr agent read reviewer --source recent-unwrapped --lines 120

注意创建类命令返回 JSON,ID 要从返回值里取,不要自己猜。

5)多台机器并进一个窗口。把家里台式机、租的服务器挂成一个“机器”列表,工作区与 Agent 并列显示、各自独立重连:

herdr machine add workbox --label workbox
herdr --remote workbox                 # 本地 UI 直连远程会话
herdr --remote ssh://you@server:2222   # 自定义端口

6)用插件补 UI 缺口。社区插件已过千,几个被高频推荐的:herdr-reviewr(diff/文件审查侧栏,评论完直接回传给 Agent)、herdr-file-viewer(键盘友好的文件浏览与 diff)、herdr-annotate(标注终端文本与 Agent 回复后回传)、herdr-browser(在 pane 里跑真 Chromium 并用 CDP 驱动)、herdr-plus(Projects 与 Quick Actions)。

7)重启与升级也不丢现场。Herdr 区分“布局恢复”“滚屏历史回放”“Agent 原生 resume”几条路径,理解它们的差别,才知道哪些任务重启后需要人工补一句。

8)保留拼装链做兜底。SSH + Tailscale/frp + tmux + asciinema 这条老链路依旧可用,而且 Herdr 的多机能力本身就跑在这条链上。真出问题时,兜底方案比“重装一遍”靠谱。

四、手机端:四条路线怎么选

这是社区帖子里最常被追问的一环。官方文档里有一节直接叫 Work from your phone:Herdr 不需要手机 App,也不需要 Web 面板——手机上装任意 SSH 客户端,连到跑 Agent 的机器,敲 herdr 即可;TUI 会自适应窄屏,看状态、切 workspace、瞄一眼 pane 都没问题,官方举例 iPhone 上 moshi 体验不错。

路线 需要什么 手机上能做什么 适合谁
A. 官方:SSH 客户端 + herdr 任意手机 SSH App(moshi / Termius / Blink),机器可达 看侧栏状态、切 workspace、读输出、发短指令;窄屏自适应 想零额外依赖、能接受命令行的人
B. 社区客户端:herdr-remote、Shepherdr、Heeler、herdrm 装一个插件或 App;远程访问一般要一条隧道 一键审批、推送通知、读输出、发命令、中断 Agent;有的还能在手机上建 workspace 不想在手机上敲终端,只要“看状态 + 点审批”的人
C. 图形远控:UU远程 / 向日葵 / TeamViewer / AnyDesk / ToDesk / RustDesk 被控端装客户端,主控端手机装 App 等于把桌面(含终端窗口)投到手机;输入靠屏幕内虚拟键盘与缩放 本来就买过远控、顺带管理 Agent 的人
D. 官方云服务(未上线) 候补名单 号称 Same machines. No SSH setup.,目标是消掉 SSH 配置 不想维护隧道与密钥的人,先排队

B 路线值得展开,社区已经给出四种口味:

  • herdr-remote(Herdi.app)——菜单栏 / 手机 / Telegram 三端一体的看板。本地零配置,远程走免费 Cloudflare 隧道;手机打开网页版粘一条隧道地址即可用,Telegram 里还有 /agents、/read、/send、/reply、/trust、/interrupt、/digest(当天工作时长与 blocked 次数)。所有写操作(回复、发文本、发按键)都会记 JSONL 审计日志。项目:dcolinmorgan/herdr-remote。
  • Shepherdr——自托管、移动端优先的 Web UI,主打“herdr, from your phone”。每个终端标注 working / blocked / idle / done,点通知直达那个终端;手机端 Terminal 默认进 Reader 模式(阅读与选择输出),点终端图标才进全键盘直输;支持在工作手机上建 workspace、加 worktree;认证用 passkey(信任这台手机一次即可,无账号无密码),默认只监听 loopback 与你的 tailnet。iPhone / iPad 建议先“添加到主屏幕”再启用通知。项目:luiscleto/shepherdr。
  • Heeler——原生 iOS 客户端,App Store 可直接下载(TestFlight 也在跑),适合完全不接受网页壳的人。项目:ZingerLittleBee/Heeler。
  • herdrm——macOS 原生控制台(macOS 14+),把本机与多台 SSH 机器的 Claude Code / Codex / Gemini / Grok / opencode 汇到一个窗口,按设备并行连接、自动重连,适合“主控端是 Mac、手机只偶尔看一眼”的场景。项目:missuo/herdrm。

通勤场景实测长什么样?博客园那篇横评记录了一段手机端的会话流:Claude Code 停在 Write(test.txt) 审批框,状态显示 blocked;人在手机上一指点按 “1. Yes” 放行,状态翻成 working;几秒后留下 Wrote 1 line 的回执,全部 idle。作者的关键结论是:审批选项在文本流里是一个可直接点按的目标,在视频流里是需要先缩放、挪画面、再对准的像素——这基本概括了 A/B 路线与 C 路线的体验差别。

手机端的边界要说清楚:看状态、点审批、发几行指令、随时中断,这些够用;指望手机做主力开发环境(读 diff、改文件、连跑几轮测试)不现实,任何工具都不建议。另外两层容错不要混淆:Herdr 保的是 Agent 进程不死,隧道/远控保的是 连接断了之后现场可恢复,两者叠加才够用。

五、6 个容易踩的坑

  • blocked 偶尔被认成 idle。屏幕匹配的 Agent 只会在画面命中已知审批/提问 UI 时才标 blocked;新出现的界面形状可能先落到 idle,解释输出里会标成 default_known_agent_idle_fallback。它只影响状态显示与等待,不会让 Herdr 乱发输入——但别把 idle 当成“一定干完了”。
  • Agent 忙的时候读长历史会失败。agent read --lines N 在需要读备用屏历史时,如果 Agent 处于 working / blocked,会返回 agent_not_idle;等它 idle 再读,或者改用 --source visible。实在拿不到完整回复,就让 Agent 把结果写成 Markdown 文件、只回你路径。
  • 超时 ≠ 没发出去。超时或 agent_prompt_stalled 不代表提示没送达,重试前先 read 一遍,否则同一个提示会提交两次。
  • pane 一搬,ID 就变了。把 pane 移到别的 workspace 后,要接着用返回值里的 .result.move_result.pane.pane_id;正在进行的 wait 会以 agent_not_running 结束。
  • 沙箱与受限运行时。Linux/macOS 上用 VM 或沙箱包装器时,真实 Agent 进程会被藏起来,需要给包装命令设 HERDR_AGENT=claude 之类的提示;某些受限 Linux 运行时则需要用 HERDR_PROCESS_DETECTION=child-groups 启动 server(要在被连的 server 端设置,不是客户端)。
  • 跨机器别想当然。Agent 名字与 ID 都以单个 server 为作用域,在 TUI 里切换机器不会让已经跑起来的 CLI 命令跟着换目标。

六、30 分钟落地清单

  1. 装好 Herdr,跑通 herdr → ctrl+b q → herdr 的脱离/重新附着。
  2. 按项目建 workspace,塞进 2~3 个不同模型的 Agent(比如 claude + codex),观察侧栏状态流转。
  3. 给 Agent 装上 herdr skill,让其中一个去开 pane 跑测试、另一个做审查。
  4. 配一条手机路线:先用官方 SSH 方案跑通“手机上看到 blocked 并放行”,再挑一个 B 路线客户端补推送通知。
  5. 把 herdr machine add 用起来,把第二台机器挂进来。
  6. 留一份兜底:SSH + tmux 的老习惯不删。

Herdr 解决的其实是一件事:让“同时用很多 Agent”从一项体力活变成一件可以旁观的事。先按上面的清单跑一遍,再决定要不要把它变成你每天的默认工作台。


参考来源

数据与功能描述基于 2026-09-19 抓取的官方文档与社区仓库,Herdr 迭代很快,以官网当前版本为准。


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注