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 讨论串:
- Herdr: One terminal to rule them all(404 赞 / 178 评论)
- Herdr is joining Y Combinator. The runtime stays open(281 赞 / 189 评论)
- Herdr: Agent multiplexer that lives in your terminal(166 赞 / 110 评论)
翻完几百条评论,推荐理由其实高度集中:
- 多客户端附着同一个会话:有用户说自己在桌面开一个窗口,回家路上用另一台笔记本 SSH 进来接着看同一个 Agent,会话和输出原地续上,不用重开。这是被提得最多的“真香”点。
- 鼠标原生 + 侧栏状态:pane 右键就能分屏、重命名、关闭,拖边框调布局,选中文本即复制;比起记住一堆快捷键的 tmux,学习成本几乎为零。有评论总结为“一切都是可点击的,状态栏替我把 working/idle 分好了”。
- 知道谁在等你:blocked 的判定很严格——只有画面里真的出现审批框、提问框、权限确认这类“等你答话”的界面才算,然后汇总到侧栏,你不用一个个终端翻过去找。
- 反方观点也值得读:也有人直言“tmux 就够了”,担心拿了融资之后的商业化走向,或者拿它跟 Superset、cmux、Emdash、Conductor 等同类项目比较。看完这些再决定用不用,比跟风装一遍靠谱。
中文圈同样有几篇长文值得一读:
- 知乎《GitHub 9K 人收藏!Herdr:一个专为 AI 编程 Agent 打造的终端复用器》——项目背景与“为什么需要 Agent 复用器”的通俗解释。
- Text Matrix《herdr:为 AI 编程智能体而生的终端复用器》——四层抽象(workspace / tab / pane / agent)、五种状态机、安装与远程访问场景对照表。
- 扎塔《Herdr 详解:给 AI Agent 用的终端运行时》——基于 0.9.0 实测,覆盖概念模型、鼠标与复制模式、集成配置、Agent 协作配方、插件从装到写,还有远程与手机用法、中文输入法开关等避坑细节,是中文资料里最完整的一篇。
- 博客园《herdr 都跑起来了,人还在地铁上:2026 年 9 月 AI 编程远程终端横评》——把关注点从“机器里那端”挪到“人这端”:Agent 活着之后,人怎么从外面回来。文中的场景拆解很有价值(注意该文推广色彩明显,具体产品结论请自行核实)。
二、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 分钟落地清单
- 装好 Herdr,跑通
herdr→ctrl+b q→herdr的脱离/重新附着。 - 按项目建 workspace,塞进 2~3 个不同模型的 Agent(比如 claude + codex),观察侧栏状态流转。
- 给 Agent 装上
herdrskill,让其中一个去开 pane 跑测试、另一个做审查。 - 配一条手机路线:先用官方 SSH 方案跑通“手机上看到 blocked 并放行”,再挑一个 B 路线客户端补推送通知。
- 把
herdr machine add用起来,把第二台机器挂进来。 - 留一份兜底:SSH + tmux 的老习惯不删。
Herdr 解决的其实是一件事:让“同时用很多 Agent”从一项体力活变成一件可以旁观的事。先按上面的清单跑一遍,再决定要不要把它变成你每天的默认工作台。
参考来源
- Herdr 官网与文档:herdr.dev | How to work(含 Work from your phone) | Agent automation | Agents | Persistence & remote access | agent-guide.md
- 源码与技能文件:herdrdev/herdr
- Hacker News 讨论串:One terminal to rule them all | Joining Y Combinator | Agent multiplexer
- 中文长文:知乎 | 扎塔 | Text Matrix | 博客园横评
- 手机端社区方案:herdr-remote | Shepherdr | Heeler(iOS) | herdrm(macOS)
数据与功能描述基于 2026-09-19 抓取的官方文档与社区仓库,Herdr 迭代很快,以官网当前版本为准。

发表回复