2026年7月

背景:今年 2 月份,本人为随时远程语音指挥家里服务器上 Coding Agent 干活需要,和前同事 librae8226 搭伙开发了远程 Agent 中继器 Nexus4cc 的开发。此后一直跟踪这个 "Agent 中继" 领域的产品,最近发现 Herdr 特别好用。
本文基于 Herdr 官方文档、官方仓库、插件市场,以及 dcolinmorgan/herdr-remote 仓库整理。资料核对时间:2026-07-02。Herdr 和周边插件仍在快速演进,具体命令和插件能力以文末链接的官方资料为准。

如果只用一句话概括 Herdr:它是一个面向 coding agent 的终端 multiplexer。它保留了 tmux/Zellij 这类工具最重要的能力:真实终端、持久会话、detach/reattach、SSH 工作流;同时补上了 agent 时代真正缺的那一层:知道哪个 agent 正在工作、哪个被权限/问题卡住、哪个已经完成,以及用 CLI/socket/API/插件把这些状态接到自动化里。

本文会沿着下面这条脉络展开:

  • 回顾终端复用器的历史:从 PTY、GNU Screen、tmux 到 Zellij,再看 Herdr 为什么会在 agent 时代出现。
  • 拆解 Herdr 的技术原理:后台 session server、真实 PTY、client attach、agent 状态识别、CLI/socket API。
  • 梳理典型使用方式:本地单项目、多 agent/worktree、SSH 远程、herdr --remote、手机审批和 herdr-remote
  • 评估 Herdr 的优势和边界:性能、体验、远程工作流、插件生态、安全和平台限制。
  • 对比同类工具:tmux/Zellij、Warp/cmux、Conductor 等工具分别适合什么场景。

image.png

1. Herdr 到底解决什么问题

先把时间拨回到 AI coding agent 之前。Unix/Linux 上所谓“终端”早就不是一根真的串口线了。今天你在 Terminal.app、iTerm2、Ghostty、SSH、tmux 或 Herdr 里看到的 shell,大多跑在 pseudo-terminal,也就是 PTY 上。PTY 有两端:一端由终端模拟器、SSH server、tmux server 或 Herdr server 这类“外壳”持有;另一端交给 shell、vim、top、Claude Code、Codex 这样的程序当作自己的控制终端。外壳往 PTY 写字节,程序就像收到了键盘输入;程序往终端输出字节,外壳就把它画到屏幕上。Ctrl-C、窗口大小变化、光标控制、全屏 TUI,其实都在这层字节流和终端语义里流动。

image.png

这也是“关掉窗口以后进程为什么会死,tmux 里为什么不会”的关键。普通终端或 SSH 断开时,拿着 PTY 外侧的那个进程也结束了,内侧的 shell/前台进程通常会收到 hangup,除非你用 nohupdisown、systemd、supervisor 之类手段绕开它。tmux、GNU Screen、Herdr 这类 multiplexer 的妙处,是把“拿着 PTY 外侧的人”从你的可见窗口里抽出来,放进一个后台 server。你关掉的只是 client;server 仍然握着那些 PTY,所以里面的进程继续以为终端还在。

tmux 本身就是这个传统的一次现代化。GNU Screen 很早就解决了 detach/reattach;tmux 由 Nicholas Marriott 在 2007 年前后开始发布,后来进入 OpenBSD base,逐渐成为很多开发者的默认终端持久化工具。它的经典价值非常朴素:一个屏幕里创建、访问、控制多个终端;detach 后后台继续运行;以后再 reattach。Herdr 站在同一条脉络上,但把对象从“多个 shell/服务”推进到“多个 coding agent”:不只是让终端活着,还要知道哪个 agent 正在工作,哪个需要批准,哪个已经完成。

image.png

图:终端复用器从会话保活、平铺布局、易用封装、极简 attach/detach,到 agent 状态感知的发展脉络。

顺着这条脉络再看 tmux 的内部结构,就能看到 Herdr 继承的是哪一层传统:后台 server 持有 PTY 和 pane,前台 client 只是接入和渲染。

image.png

图:tmux 的经典 client/server 模型:detach 时离开的只是 client,server 继续握着 pane 的 PTY。

AI coding agent 改变了终端的使用方式。以前一个终端窗口通常服务一个人:开 shell、跑测试、看日志、偶尔开 tmux 分屏。现在一个开发者可能同时启动 Claude Code、Codex、OpenCode、Pi、Cursor Agent、Droid 等多个 agent,让它们分别修 bug、写测试、做迁移、跑 review。问题随之变成:

  • 哪个 agent 还在跑,哪个已经结束?
  • 哪个 agent 需要我批准命令、回答问题、选择方案?
  • 多个仓库、多个 worktree、多个 remote server 上的 agent 怎么放在一个可扫描的视图里?
  • 断开 SSH、合上电脑、换一台终端之后,正在跑的 agent 能不能继续?
  • agent 自己能不能通过 API 创建 pane、读输出、等待另一个 agent 完成?

传统 terminal multiplexer 解决的是“进程和 pane 的持久化”,但不了解 agent 语义。GUI agent manager 解决的是“多任务和可视化状态”,但往往要求你进入一个新的桌面应用、接受它的 terminal wrapper、工作流和平台限制。Herdr 的路线是第三种:让真实终端继续是真实终端,把 agent 状态和自动化能力加在终端 multiplexer 上。

官方 README 对它的定位很直接:每个 agent 都在自己的真实终端里运行,Herdr 可以把它们汇总成 blockedworkingdoneidle 等状态;后台 server 让 panes 在 detach 后继续运行;本体是一个 Rust 二进制,不是 Electron GUI,也不要求账户或遥测。

2. 术语表:先对齐几个容易混淆的词

术语简短解释在 Herdr 里的意义
终端复用器 / terminal multiplexer在一个终端会话里管理多个终端视图,并支持 detach/reattach 的工具。tmux、GNU Screen、Zellij、Herdr 都属于这个谱系。Herdr 是面向 coding agent 的终端复用器:它不只管理 shell,还理解 agent 状态。
Terminal emulator / 终端模拟器Terminal.app、iTerm2、Ghostty、WezTerm 这类应用。它负责把字节流画成屏幕,把键盘/鼠标输入送进终端会话。Herdr 通常运行在你已有的终端模拟器里,不要求替换它。
TTYUnix 里“终端设备”的抽象。历史上来自 teletype,现在泛指进程看到的控制终端。shell、vim、agent CLI 都需要一个类似 TTY 的环境,才能正常处理输入输出和控制信号。
PTY / pseudo-terminal伪终端。它成对出现:master 端由终端模拟器、SSH、tmux、Herdr 等外壳持有;slave 端交给 shell 或程序当控制终端。Herdr server 持有 pane 的 PTY,因此 client 断开后,pane 里的进程还能继续运行。
PTY masterPTY 的外侧。谁持有 master,谁就能向程序“输入”字节,也能读取程序输出。Herdr/tmux 这类后台 server 的关键能力,就是替你持续握住 master。
PTY slavePTY 的程序侧。shell、vim、agent CLI 会把它当作自己的 stdin/stdout/stderr 和控制终端。agent 在 Herdr pane 里看到的仍然是真实终端语义,不是网页文本框。
Session / 会话一组长期存在的终端运行状态。tmux 有 session;Herdr 也有默认 session 和 named session。detach 后 session 继续在后台;再次运行 herdr 可以重新 attach。
Client / 客户端连接到后台 server 的前台界面,负责渲染和输入。你看到的 Herdr TUI 是 client;关掉 client 不等于停止 server。
Server / 后台 server持有真实资源的一侧:PTY、pane、进程状态、布局、agent 状态等。Herdr server 是持久化核心。它让 panes 和 agents 在 detach 后继续运行。
Pane / 终端窗格一个终端复用器里的可分割终端区域。注意不是 panelHerdr 的每个 pane 是一个真实终端,里面可以跑 shell、测试、服务或 agent。
Tab同一个 workspace 里的一个布局页,通常包含一组 panes。可以把 agentslogsserverreview 分成不同 tabs。
Workspace比 tab 更高一层的项目容器,适合按 repo、任务或 worktree 划分。Herdr 会把 workspace 里的 agent 状态汇总到 sidebar,方便扫描。
Attach / detachattach 是接入已有后台会话;detach 是退出前台 client,但保留后台 server 和进程。ctrl+b q detach 后,agent 继续跑;重新运行 herdr attach 回来。
Foreground process / 前台进程当前控制终端输入的进程或进程组。Herdr 会看 pane 的前台进程来识别它是不是 Claude Code、Codex 等 agent。
Agent state / agent 状态Herdr 对 agent 当前语义状态的判断,如 blockedworkingdoneidle这是 Herdr 区别于普通 terminal multiplexer 的核心:它知道哪个 agent 需要你。
Socket API程序通过本地 socket 用 JSON 请求控制 Herdr server 的接口。脚本、插件和 agent 可以读 pane、发输入、等待状态、创建 workspace。
Plugin / 插件herdr-plugin.toml 的可执行 workflow package。插件能声明 actions、events、panes、link handlers,把 Herdr 接到通知、review、手机审批等流程里。

3. 核心模型:server 拥有进程,client 只负责接入

Herdr 的基本架构是“后台 session server + 一个或多个 terminal client”。

当你在项目目录里运行:

herdr

Herdr 会启动或 attach 到默认后台 session。真正持有 shell、PTY、pane、workspace、tab、agent 状态的是 server;你看到的终端 UI 是 client。client 可以 detach,server 继续运行,pane 里的 shell、测试、dev server 和 coding agent 都不会因为你关闭终端窗口而消失。

官方 concepts 文档把结构拆成四层:

  • workspace:项目级容器,适合按 repo、任务或调查方向划分。
  • tab:workspace 里的布局,适合放 agentslogsserverreview 等视图。
  • pane:一个真实终端,Herdr 渲染输出、转发输入,并在 client detach 后保留它。
  • agent:Herdr 在 pane 里识别出的 coding agent 进程,有语义状态。

这就是 Herdr 和“普通终端里开几个 tab”的根本区别:状态不属于某个前台窗口,而属于后台 session。你可以从本地终端 attach,可以 SSH 进去 attach,也可以用 herdr --remote 从本地作为 thin client 接远端 server。

4. Agent 状态是怎么来的

Herdr 的 agent awareness 不是简单看进程名。官方 agents 文档描述了几层信号:

  1. 前台进程识别
    Herdr 先看每个 pane 当前前台进程,判断它是不是 Claude Code、Codex、OpenCode、Kimi、Droid、Cursor Agent 等已知 agent。
  2. screen manifest
    对很多 agent,Herdr 会读取 pane 底部的 live bottom-buffer screen snapshot,用 TOML manifest 匹配 UI 形态,判断当前是 workingblockeddone 还是 idle。它看的是 live bottom,不是你滚动到的历史 viewport。
  3. official integration / lifecycle hook
    对具备完整 lifecycle hook 的 agent,安装官方 integration 后,hook 上报可以成为状态权威来源。对 Codex、Claude Code、Cursor Agent CLI 等部分工具,integration 主要提供原生 session identity,用于 restore;状态仍然可能由 screen manifest 负责。
  4. custom report
    插件、脚本或自定义 hook 可以通过 pane.report_agent 上报语义状态,也可以用 pane.report_metadata 上报展示层信息,例如自定义标题或短状态。

Herdr 的 blocked 检测刻意保守:只有 live bottom-buffer 明确匹配已知审批、问题、权限 UI 时才标 blocked。新的或罕见的 prompt 形态可能先显示为 idle,直到 manifest 更新或你添加本地 override。这是一个重要设计取舍:宁愿状态提示漏报,也不因为错误识别而诱导用户或脚本对 agent 发送危险输入。

这些状态会向上汇总。一个 blocked agent 会让它所在 pane、tab、workspace 都显示需要关注;working agent 会让 workspace 看起来仍在活动;done 会保留到你查看为止。Herdr 的主工作流就是:让多个 agent 并行跑,然后只盯 sidebar,看谁需要你。

5. 持久化要分三层理解

很多人第一次接触 multiplexer 时会把“detach 后继续跑”和“重启后恢复”混成一件事。Herdr 文档把它们分得很清楚。

最强的是 live persistence。
你按 ctrl+b q detach,或直接关掉 client,server 仍在,原来的 shell、agent、测试进程都继续跑。再次运行 herdr attach 回来,看到的是同一批活进程。

server 停止后的 snapshot restore 不是活进程恢复。
如果你执行 herdr server stop,原进程就没了。下次启动时,Herdr 可以恢复 workspace、tab、pane、cwd、layout、focus 等 session 形状,但普通 shell、server、测试进程不会凭空复活。

agent session restore 是另一条路径。
部分 agent 支持自己的 resume/session 机制。Herdr 可以通过官方 integration 上报的 session reference,在 server 重启后重新启动对应 agent 并恢复其对话,例如 codex resume <id>claude --resume <id> 这类方式。它恢复的是 agent 自己的 conversation session,不是旧进程。

还有两个补充能力:

  • pane_history 可以保存 recent screen history,用于 server 重启后回放近期终端内容。默认关闭,因为终端输出可能含 secret/token。
  • --handoff 是实验性 live handoff,用于某些 update 或 remote attach 流程,目标是在替换 server 时尽量保住活进程。

所以,入门时记住一个简化原则:日常只 detach,不要 stop server;stop server 是明确要结束活进程时才做。

6. CLI、socket API 与插件系统

Herdr 不只是一个 TUI。它暴露了三层自动化表面:

CLI wrappers
Herdr CLI 会通过同一个 local socket API 和 server 通信。常用命令包括:

herdr workspace create --cwd ~/project --label api
herdr pane split --current --direction right --ratio 0.5
herdr pane run w1:p2 "npm test"
herdr pane read w1:p1 --source recent --lines 50
herdr wait agent-status w1:p1 --status done
herdr agent start reviewer --cwd ~/project --split right -- codex

Raw socket API
底层协议是 local socket 上的 newline-delimited JSON。Unix 上是 Unix domain socket,Windows beta 上是 named pipe。它支持 workspace、tab、pane、agent、worktree、events、plugins 等方法,例如 pane.readpane.send_textevents.subscribeagent.explainplugin.action.invoke

Plugins
Herdr plugin 不是受限 SDK,而是一个带 herdr-plugin.toml manifest 的可执行 workflow package。插件可以用 Bash、JavaScript、Python、Rust、Go、Lua、PowerShell 等任何本机能运行的命令实现。Herdr 负责 install/link、manifest validation、keybinding、event hook、pane entrypoint、运行时上下文和日志;插件自己负责语言、依赖、文件和持久状态。

一个插件可以声明:

  • [[actions]]:可由命令、keybinding 或 UI 调用的动作。
  • [[events]]:监听 pane.agent_status_changedworktree.created 等事件。
  • [[panes]]:打开一个插件管理的 terminal pane,例如 dashboard。
  • [[link_handlers]]:把终端里的 URL ctrl-click 路由到插件 action。

插件运行时会拿到 HERDR_BIN_PATHHERDR_SOCKET_PATHHERDR_PLUGIN_CONFIG_DIRHERDR_PLUGIN_STATE_DIRHERDR_PLUGIN_CONTEXT_JSON 等上下文。官方建议插件优先通过 HERDR_BIN_PATH 调 CLI,这样跨 Unix socket 和 Windows named pipe 更可移植。

安全上要清醒一点:Herdr plugin 是普通本机代码,不是 sandbox。安装前应该看 herdr-plugin.toml 和脚本;herdr plugin install 在交互式终端会展示 source/command preview。插件市场是按 GitHub topic herdr-plugin 自动索引的公开仓库,不是官方审核目录。

7. 典型使用方式

7.1 本地单项目:替代“一堆终端 tab”

安装后,在项目目录启动:

herdr

在 pane 里启动 agent:

codex
# 或 claude / pi / opencode / cursor-agent / droid ...

常用操作:

目标鼠标方式键盘方式
分屏右键菜单或拖拽布局ctrl+b 后按 v-
新 tab顶部 tab 区域/菜单ctrl+b 后按 c
切 workspacesidebar 点击ctrl+b 后按 w
detach关闭 client 或菜单ctrl+b 后按 q
查看全部快捷键菜单ctrl+b 后按 ?

这类场景里,Herdr 最大的价值是“不用轮询”。以前你需要挨个看 terminal tab;现在 sidebar 会告诉你哪个 pane blocked、哪个 done。

7.2 本地多 agent:workspace + worktree

如果你要让多个 agent 同时处理同一 repo 的不同任务,建议给每个任务独立 worktree,避免文件互相踩。Herdr 提供 worktree 命令,把 Git worktree 打开成正常 workspace:

herdr worktree create --branch agent/auth-refactor --label auth-refactor
herdr worktree create --branch agent/test-hardening --label test-hardening

然后在各自 workspace 中启动 agent:

herdr agent start reviewer --cwd ~/project --split right -- codex
herdr agent start docs --workspace w1 --tab w1:t1 -- claude

如果你在写脚本,可以等待 agent 状态:

herdr wait agent-status w1:p1 --status done --timeout 1800000
herdr agent read reviewer --source recent --lines 80

这让 Herdr 从“人看的 dashboard”变成“脚本和 agent 也能驱动的 runtime”。

7.3 远程方式一:SSH 到服务器后运行 Herdr

最简单的远程方式和 tmux 类似:

ssh you@server
herdr

此时 shell 在远端,Herdr server 在远端,agent 和 pane 也都在远端。你 detach 后断开 SSH,再 SSH 回去运行 herdr 就能继续。

适合:

  • 你本来就长期在远端 shell 工作。
  • 服务器上有代码、凭证、GPU 或内网资源。
  • 你用手机 SSH client 临时查看状态。
  • 你想要最少配置。

限制是:Herdr 完全运行在远端,不能读取你的本地桌面能力。比如普通 SSH + 远端 Herdr 无法直接桥接本地图片剪贴板。

7.4 远程方式二:herdr --remote thin client

另一种方式是在本地运行 client,通过 SSH 连接远端 Herdr server:

herdr --remote workbox
herdr --remote ssh://you@server:2222

这个模式里,本地 Herdr 是 thin client。它通过 SSH 启动或 attach 到远端 server,把 UI stream 回本地终端。因为 client 在本地,所以可以桥接一些本地桌面能力,例如把本地图片剪贴板复制到远端临时文件并粘贴路径。

适合:

  • 你希望远端 session 像本地 Herdr 一样使用。
  • 你要保留本地快捷键习惯。
  • 你需要本地 clipboard/image paste 这类 desktop bridge。
  • 你经常 attach 到同一批远端 host。

建议把远端写进 SSH config:

Host workbox
  HostName server.example.com
  User you
  Port 2222

之后只要:

herdr --remote workbox

需要彻底隔离 runtime 时,可以用 named session:

herdr --remote workbox --session agents

7.5 手机工作:SSH 或 herdr-remote

官方文档说得很直白:你不需要 Herdr 手机 app。装一个手机 SSH client,连到 agent 所在机器,运行 herdr,窄屏 TUI 会适配。

但如果你的核心诉求是“手机上看到哪个 agent blocked,并一键 approve”,dcolinmorgan/herdr-remote 提供了另一条路径:无需手机 SSH,靠 relay 和 Web/PWA/菜单栏/Telegram/TUI 远程监控与审批。

herdr-remote 的 README 定位是:从手机、macOS 菜单栏或 Telegram 监控并批准 Herdr agents。它的架构大致是:

  1. 本地运行 relay/herdr_relay.py,默认监听 :8375,提供 WebSocket + HTTP POST,同时开 127.0.0.1:8376 UDP 接收本机插件事件。
  2. relay 轮询 Herdr CLI:herdr pane listherdr pane readherdr pane send-textherdr pane send-keys
  3. 远端机器可以安装 dcolinmorgan/herdr-push 这类插件,把 agent event push 到 relay。
  4. Web app、macOS menu bar、Telegram bot、terminal TUI 通过 WebSocket 连接 relay。
  5. 可用 Cloudflare quick tunnel 暴露公网 URL,也可以配置 token auth。

快速试用:

git clone https://github.com/dcolinmorgan/herdr-remote
cd herdr-remote/relay
./start.sh

脚本会启动 relay,如果本机有 cloudflared,会生成一个 trycloudflare.com tunnel。然后在手机上打开 demo web app,把 WebSocket URL 填进去。

在运行 Herdr 的机器上配置 push:

herdr plugin install dcolinmorgan/herdr-push
echo "HERDR_RELAY=https://your-tunnel-url" > "$(herdr plugin config-dir herdr.push)/.env"
herdr plugin action invoke herdr.push test

herdr-remote 仓库里的截图如下:

image.png

image.png

笔者本人在办公室通过 herdr 回家里 homelab 上通过 opencode 运维下本博客实景:

image.png

在远端服务器上安装好 herdr ,然后本机配置好 $HOME/.ssh/config

Host faywang
User xxxx
HostName yyyy.cc
Port zzzz

之后 herdr --remote faywang 即可,保活/状态恢复/Agent 任务进展一目了然。

安全注意:Cloudflare quick tunnel 的 URL 会暴露 relay 入口;如果要长期使用,建议开启 HERDR_RELAY_TOKEN,并优先用稳定域名、tailnet 或其它私有网络暴露方式。

8. 新手按需求选择路径

你的需求推荐路径起手命令重点
只想让一个 agent 跑完后不丢本地 Herdrherdr 后在 pane 里运行 codex/claude学会 detach:ctrl+b q
同时跑多个 agentworkspace/tab/paneherdr pane split --current --direction right看 sidebar 的状态汇总
同一 repo 多任务并行Herdr worktreeherdr worktree create --branch agent/foo每个任务独立 checkout
agent 在远端服务器SSH 后运行 Herdrssh you@server && herdr简单、稳定、像 tmux
想从本地终端控制远端remote attachherdr --remote workbox本地 client + 远端 server
想手机上批准 blocked agentherdr-remote./relay/start.shrelay、tunnel、token
想写自动化或让 agent 控 HerdrCLI/socket APIherdr pane read ...先用 CLI,再考虑 raw socket
想扩展工作流pluginherdr plugin install owner/repo安装前看 manifest 和脚本
状态识别不准agent explain / manifestherdr agent explain <target>看 manifest source 和 matched rule

一个实用入门顺序:

  1. 先只在本地一个项目里运行 herdr
  2. 学会鼠标分屏、ctrl+b q detach、重新 herdr attach。
  3. 同时开两个 agent,观察 blocked/working/done/idle 汇总。
  4. 再尝试 herdr --remoteherdr worktree create
  5. 最后再装插件或 herdr-remote。

不要一上来就把所有高级能力都打开。Herdr 的好处不是“功能很多”,而是它的核心模型足够稳:先把 live panes 管好,再逐层加自动化。

9. Herdr 的优势

9.1 性能和开销:轻量,不替换终端

Herdr 的性能优势主要来自架构选择,而不是公开 benchmark。它是一个终端里的 Rust binary,server/client 持有真实 PTY;没有 Electron GUI,也不要求把终端 UI 放进一个桌面 app 里重画。官方 README 提到它是单个约 10MB 的 Rust binary,Linux/macOS 稳定支持,Windows 仍是 preview beta。

这带来的体验差异是:

  • full-screen TUI、agent 原生界面、ANSI 输出都还是“真实终端”。
  • 可以在普通 SSH、服务器、VPS、手机 SSH client 里工作。
  • detach/reattach 是 multiplexer 原生路径,不依赖桌面 app 是否还开着。

如果你已经有喜欢的 terminal emulator,Herdr 不要求你换掉它。

9.2 体验:从“找窗口”变成“看状态”

Herdr 最大的 UX 变化是 agent state rollup。你不需要挨个 pane 看 agent 是否卡住,workspace/sidebar 会把状态向上汇总。鼠标也不是二等公民:点击 pane/tab/workspace、拖 split border、右键菜单、拖选复制、double-click token copy 都是官方工作流的一部分;键盘 prefix 只是另一层。

对多 agent 工作来说,这个变化非常实际。你不再管理“窗口”,而是管理“需要我决策的 agent”。

9.3 远程体验:SSH 友好,还有 thin client

Herdr 同时覆盖两类远程心智:

  • ssh you@server 后运行 herdr:像 tmux,简单可靠。
  • herdr --remote <host>:本地 thin client 接远端 server,保留本地 keybinding 和部分 desktop bridge。

这让它比纯 GUI agent app 更适合“代码和凭证在服务器上”的团队,也比普通 tmux 更适合需要 agent 状态的工作流。

9.4 生态:插件是普通仓库,不是封闭商店

Herdr plugin 机制很朴素:manifest + executable commands。优点是门槛低、语言无关、能复用整套 Herdr CLI/socket surface。插件市场按 GitHub topic herdr-plugin 自动索引公开仓库;页面数据里已经能看到通知、review、file viewer、worktree、PR、token dashboard、remote/mobile 等方向。

这种生态早期会更“野生”:插件质量、维护程度、权限安全需要用户判断。但也因为没有复杂 SDK 和审核流程,社区能很快试各种 workflow。

10. 限制和风险

Herdr 不是所有问题的银弹。

首先,状态识别不是魔法。screen manifest 依赖 agent UI 形态,如果 agent 改版或出现新 prompt,可能需要远程 manifest 更新、本地 override 或官方 binary 更新。

其次,server restart 后不等于原进程复活。detach 是最强持久化;stop/restart 后主要恢复 layout,只有支持 session resume 的 agent 才能恢复 conversation。

第三,插件不 sandbox。它们是普通本机代码,能用你的权限和环境执行命令。市场 listing 不代表官方审核。

第四,Windows 是 preview beta,herdr --remote 原生 Windows client 也不是完整稳定路径。跨平台团队需要提前验证。

第五,如果你的核心需求是 PR review、diff comment、merge readiness、团队协作仪表盘,Herdr 本体不是完整 review app。它更像 live terminal runtime;review/PR 流程可以通过插件或与其它工具组合。

11. 同类竞品对比

下面不是“谁全面胜出”的排名,而是按工具中心心智来对比。

工具类别代表核心优势与 Herdr 的关键差异更适合谁
经典 terminal multiplexertmux、Zellij持久终端、分屏、detach/reattach、SSH不理解 agent 语义状态;需要自己写 hook 才能知道 blocked/done主要管理 shell、server、logs,不需要 agent dashboard
agentic terminal appWarp、cmux桌面体验、AI/agent 功能、通知、垂直 tab通常是替换 terminal 的 app;远程和 server 持久语义不同想要 polished desktop terminal/AI UX
worktree/agent workspace managerConductor、Emdash、Superset 等分支隔离、并行 agent、diff/review/PR flow工作中心是 app workspace 和 review pipeline,不是终端 multiplexer重点是从 issue 到 PR 的团队流程
process dashboard / dev stack supervisorSolo 等管理进程、健康检查、自动重启更像服务/进程编排,不是交互式 agent pane runtime主要跑 dev services,而不是 coding agent
HerdrHerdr + plugins真实终端、持久 PTY、agent 状态、SSH、CLI/socket、插件review/GUI 协作不是核心;插件生态还早期喜欢终端、远程工作、多 agent 并行、希望可脚本化

Herdr 相比 tmux/Zellij 的优势很清楚:它知道 agent 状态,也把这些状态暴露给 CLI/API。相比 Warp/cmux,它不要求换终端,也更强调 SSH 和后台 server。相比 Conductor 这类 app,Herdr 不主导 branch review 流程,但能成为 agent 实时运行层:你的 agent 可以在 Herdr pane 里跑,review/PR 工具可以在另一层处理。

实际选择建议:

  • 只要终端持久化,不关心 agent 状态:tmux/Zellij 仍然足够。
  • 想要漂亮的桌面 terminal + AI 功能:Warp/cmux 这类 app 更顺手。
  • 想要完整团队化 issue 到 PR 流程:Conductor/同类 worktree manager 更聚焦。
  • 想保留现有终端和 SSH 工作流,同时管理多个 coding agent:Herdr 是更贴近问题本身的选择。
  • 可以组合使用:例如 Herdr 管 live agent panes,Conductor 或其它工具管理 review/merge 流程;或者 Herdr 跑在远端 server,手机用 herdr-remote 做审批入口。

12. 一个推荐的实战配置

如果你准备认真试 Herdr,可以按这个配置阶段推进:

第一天:纯本地

curl -fsSL https://herdr.dev/install.sh | sh
cd ~/your-project
herdr

在一个 pane 里跑 agent,在另一个 pane 跑测试或 dev server。只练三件事:split、看 sidebar、detach/reattach。

第二阶段:多任务

herdr worktree create --branch agent/refactor-auth --label refactor-auth
herdr worktree create --branch agent/add-tests --label add-tests

每个 worktree workspace 启一个 agent。把每个任务和分支绑定起来,避免多 agent 写同一 checkout。

第三阶段:远程

先用最简单路径:

ssh workbox
herdr

确认服务器上的 agent、凭证、依赖都正常后,再试:

herdr --remote workbox

第四阶段:插件和手机审批

先浏览插件市场,挑一个你信任、需求明确的插件。安装前看 manifest。手机审批用 herdr-remote 时,先在局域网或临时 tunnel 测,确认 token/auth 和网络暴露策略后再长期使用。

13. 总结

Herdr 的关键不是“又一个终端工具”,而是它把 terminal multiplexer 的进程持久化能力,和 coding agent 时代的状态感知、事件订阅、自动化控制面放在了一起。

它适合这样的人:你愿意继续住在终端里,常在本地和远端之间切换,开始同时跑多个 agent,并且希望 agent 状态能被人和脚本共同理解。它不一定取代 GUI agent workspace,也不一定取代所有 tmux/Zellij 用法;但在“真实终端 + 多 agent + SSH + 持久会话 + 可编程”这个交叉点上,Herdr 的定位非常清晰。

参考资料