对所学知识内容的兴趣可能成为学习动机。——赞科夫

https://github.com/ogulcancelik/herdr

Herdr:当你的终端开始学会“放牧”AI 代理

在这个人人都在谈 AI 代理、自动化协作和终端工作流的时代,herdr 像一个突然闯进开发者视野的牧羊人。它不喧哗,不铺张,不把你拽进一个笨重的 GUI 世界里,而是安安静静住进你的终端,替你看住一群正在埋头干活的 coding agents。

herdr 的一句话描述非常直接:

agent multiplexer that lives in your terminal.

如果把这句话翻译成更有画面感的语言,那它就像一位住在终端里的调度员,手里拿着一张井井有条的工作清单,眼睛盯着每一个 agent 的状态。谁卡住了,谁还在埋头苦干,谁已经干完等你验收,它都能第一时间告诉你。你不必再一扇扇窗口找,不必靠猜,不必靠吼,它就在终端里,把这群数字工蜂安排得明明白白。


Herdr 到底是什么

herdr 是一个运行在终端里的 agent multiplexer。它的目标很明确:在一个终端里运行和管理你的所有 coding agents,并让你一眼看清它们的状态。

它的核心气质很迷人,因为它不是那种“为了现代而现代”的工具。它没有急着把开发者从终端里拽出去,也不靠花里胡哨的包装来取胜。相反,它非常笃定地告诉你:

  • 你的 agent 继续在它们本来就适合运行的地方运行
  • 可以在你的机器上运行,也可以在服务器上运行,只要能 SSH 就行
  • 每个 agent 都拥有自己的真实终端
  • 即使是全屏 TUI,也能正常显示
  • 你可以随时 detach,再从任意终端重新 attach
  • 甚至可以拿手机通过 SSH 连回来继续看现场

这意味着,herdr 不是在“模拟”终端,而是真的尊重终端。

很多工具都说自己让多任务管理更简单,但它们常常只是给你搭了个外壳,把真正的终端体验稀释掉。herdr 不一样。它很像一个懂分寸的助手:不替你做决定,不替你篡改习惯,只把你已有的工作方式组织得更顺手、更清晰、更适合 AI agent 时代。


它最动人的地方,是“看得见”

如果你已经开始同时运行多个 agent,你大概很快会碰到一种熟悉的混乱:

  • 这个 pane 里的 agent 还在跑吗
  • 那个窗口为什么不动了,是完成了还是卡住了
  • 哪个 agent 正在等我输入
  • 哪个任务已经结束,只是我还没点进去看

这时候,herdr 最像一位会观察神色的管家。它在侧边栏里把每个 agent 的状态收拢得非常清楚:

  • 🔴 blocked
  • 🟡 working
  • 🔵 done
  • 🟢 idle

这套状态设计非常有“人味”。它不是冷冰冰地告诉你“进程存在”或“进程退出”,而是在用一种更贴近协作关系的方式跟你说话:

  • 红色是在举手:我卡住了,来帮我一下
  • 黄色是在埋头:先别打扰,我正忙
  • 蓝色是在敲门:我做完了,你来看看
  • 绿色则像一个安静坐回工位的人:已经处理过,当前平稳

更妙的是,herdr 并不要求你为这些状态做一堆复杂配置。它支持开箱即用的检测机制,通过进程名匹配和终端输出启发式判断 agent 状态,做到zero config, no hooks required。这点非常关键,因为真正好用的工具从来不是让你先搭半天舞台,而是上来就能开始表演。


它不是 GUI,也不是 Electron,它就是终端里的原住民

herdr 很骄傲的一点,是它lives in your terminal

这句话看似朴素,实际上很有力量。因为在今天,太多“提高效率”的工具,第一步就是要求你离开熟悉的环境,进入一个被重新包装过的界面。你明明只是想跑几个 agent,最后却像被拉进了一间装修精美但门窗都不顺手的新办公室。

herdr 不这样。它像一个很懂老派开发者脾气的朋友,对你说:

“你继续用你的终端。你的肌肉记忆不用重练。你的 SSH、你的工作目录、你的远程主机、你的习惯,都可以照旧。我只是来帮你把这一切管得更好。”

而且它还是一个单个约 10MB 的 Rust 二进制,支持 Linux 和 macOS,Windows 处于 beta 预览阶段。没有额外依赖,这种轻量感本身就很讨喜。它没有臃肿地往你系统里铺满自己的存在感,而像一把锋利、安静、随手就能抽出来的工具刀。


Herdr 能给你什么

从 README 里看,herdr 提供的东西非常完整,而且每一项都直指真实痛点。

1. 每个 agent 一个真实终端

这是它最根本的承诺之一。

你看到的是 agent 自己的终端画面,不是某个应用对终端的拙劣模仿。所以全屏 TUI 也能正常渲染,这一点对于很多依赖 CLI/TUI 的 agent 来说非常重要。它让“管理 agent”这件事不再意味着“牺牲原始体验”。

2. 一眼看清 agent 状态

侧边栏会把 agent 的状态汇总成 blocked、working、done、idle。你不需要挨个 pane 进去查岗,herdr 已经替你做了第一轮巡视。

3. workspaces、tabs、panes 一应俱全

它不是一个只会“堆 pane”的简单工具,而是一整套组织结构:

  • workspace 负责项目层级的组织
  • tab 帮你分组
  • pane 负责具体终端进程

你可以按 repo 或文件夹组织工作流,支持点击、拖拽、拆分,整体是 mouse-native 的。这种设计很像一个既懂终端也懂空间规划的建筑师,把凌乱的工作台收拾成了真正可长期居住的房间。

4. detach 以后,什么都不会死

这一点太重要了。

后台 server 会保持 pane 和 agents 存活。你可以 detach,转身离开,再从另一台机器、另一个终端,甚至手机上的 SSH 会话里重新 attach 回来,现场还在。

对于跑长任务、跨设备接力、远程开发、夜里把任务丢到服务器继续跑的人来说,这几乎是一种安全感。

5. 跑在哪都行

它可以在你的本地机器,也可以在服务器,只要能 SSH 就行。这个“哪里都能跑”的特性,让它非常适合现代开发环境——尤其是那些代码在远端、模型在远端、算力在远端,而你本人不一定总在同一台设备前的场景。

6. 可脚本化

herdr 提供本地 socket API 和 CLI,agent 也能驱动它,还支持用任意语言编写插件。这就意味着它不仅是一个“给人用的界面工具”,还是一个“给 agent 编排 agent”的基础设施。

换句话说,herdr 不只是牧羊人,它甚至在训练牧羊犬。


它和 tmux、图形化管理器比起来怎么样

README 里有一张非常直白的对比表,大意可以总结成一句话:

tmux 有持久化和 pane,但它不是为 agent 时代造的;GUI 管理器有些 agent 感知能力,但往往让你离开终端;herdr 则试图把两边的优点收进同一只口袋。

它支持:

  • persistent sessions
  • detach / reattach
  • over SSH 运行
  • panes、tabs、workspaces
  • agent awareness
  • 终端内原生使用
  • real terminal views
  • mouse-native
  • lightweight binary
  • agents can orchestrate

这就是它最有意思的地方:它不是在复制 tmux,也不是在做一个终端版 GUI 管理器,而是在认真回答一个新的问题:

当开发者开始同时使用多个 coding agents 时,终端该如何重新进化。


安装它,很快

herdr 的安装方式很直接。

Linux / macOS

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

Windows 预览版

1
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"

除此之外,它还支持这些安装方式:

  • brew install herdr
  • mise use -g herdr
  • nix run github:ogulcancelik/herdr

如果你是通过安装器安装的,还可以直接升级:

1
herdr update

如果你使用的是 Homebrew、mise 或 Nix,则通过各自的包管理流程更新。

这种安装体验很像一个很会照顾新朋友的产品:门口没有复杂的登记流程,也不会先让你填一堆表。你来,它就开门。


快速启动:一条命令,把终端变成 agent 牧场

真正的开始非常简单:

1
herdr

执行之后,herdr 会启动或连接到一个后台 server,并打开一个 workspace。然后你就可以在 pane 里运行 agent。

这是一个非常有画面感的启动方式。你敲下 herdr,像是在空地上吹了一声口哨,后台的组织结构立刻搭起来,工作区张开,pane 就位,接下来只等 agent 们各自入场。

README 里还给出了几个非常实用的默认按键:

1
2
3
4
5
6
ctrl+b 然后 shift+n   # 新建 workspace
ctrl+b 然后 v # 垂直拆分 pane
ctrl+b 然后 minus # 水平拆分 pane
ctrl+b 然后 c # 新建 tab
ctrl+b 然后 w # 切换 workspace
ctrl+b 然后 q # detach,agent 会继续运行

如果你想查看完整按键,可以用:

1
ctrl+b 然后 ?

这里能看出 herdr 的设计很克制。它借鉴了终端用户熟悉的 prefix 模式,但又努力把鼠标操作做得原生顺手。也就是说,它既不强迫纯键盘,也不排斥鼠标,两边都照顾到了。


一个实际使用场景

你可以想象这样一个工作夜晚:

你手上有三个任务:

  • 一个 agent 在重构项目里的认证逻辑
  • 一个 agent 在排查 CI 异常
  • 一个 agent 在写文档和注释补全

传统做法下,你可能会开一堆终端标签页,或者 tmux pane,然后在脑子里勉强记住“左上角是重构,右边是 CI,下面是文档”。过十分钟以后,谁还在跑、谁停了、谁等你,都开始变模糊。

而在 herdr 里,这种场面会变得很整齐。

你可以先开一个 workspace,然后拆几个 pane,每个 pane 放一个 agent。侧边栏会像一个耐心巡逻的值班员,盯着这些数字同事的状态:

  • 重构 agent 还在工作,亮着黄色
  • CI agent 遇到阻塞,变成红色,提醒你去看
  • 文档 agent 已经写完,挂起蓝色,等你验收

这时候你根本不需要挨个问“你还好吗”。herdr 已经替你读懂了这群 agent 的情绪。


远程开发,是它的拿手戏

README 里有一个非常吸引人的能力:remote

如果你把 herdr 运行在 VPS 上,就可以从本地终端连过去。命令示例如下:

1
2
herdr --remote workbox
herdr --remote ssh://you@yourserver:2222

这件事听起来平平无奇,但其实很强。因为它意味着你可以把 agent、任务、长时运行过程都放在远端机器上,而自己只保留一个轻盈的本地入口。你换电脑、断开会话、离开办公桌,都不必担心现场消失。

更妙的是,README 特别提到:这样做还能让往 agent 里粘贴图片这类事情继续正常工作。这说明 herdr 在远程客户端体验上不是“能连就算完”,而是在认真打磨“像本地一样自然”这件事。

它像一个很会安排远行的人,知道你不可能永远站在机房门口,所以干脆把家里的秩序带到了远方。


支持哪些 agent

herdr 对 agent 的支持非常广,而且检测能力开箱即用。

README 中列出的支持对象包括:

  • pi
  • claude code
  • codex
  • droid
  • amp
  • opencode
  • grok cli
  • hermes agent
  • kilo code cli
  • devin cli
  • cursor agent
  • antigravity cli
  • kimi code cli
  • github copilot cli
  • qodercli
  • kiro cli

其中大多数都支持 idle/done、working、blocked 三类状态识别,部分为部分支持或未完全测试。

还有一些“检测到了但未完全测试”的对象,比如 gemini cli、cline。即使不在内置列表中,herdr 依然能作为 terminal multiplexer 正常运行它们,而自定义集成则可以通过 socket API 上报标签和状态。

这部分特别能体现 herdr 的格局。它没有把自己做成一个只服务于某单一 agent 生态的小花园,而是在试图成为一个更通用的“agent 工作场”。

谁来放羊不重要,重要的是这片草地真的能容下很多羊。


不只是你用 Herdr,agent 也可以用 Herdr

这一点是 herdr 身上非常前瞻的地方。

它提供本地 Unix socket,让 agent 可以:

  • 创建 workspaces
  • 拆分或放大 panes
  • 生成辅助进程
  • 读取输出
  • 订阅状态变化,而不是不停轮询

而且 README 里给出了一个可直接上手的命令:

1
npx skills add ogulcancelik/herdr --skill herdr -g

这背后的意义并不只是“提供 API”这么简单,而是说明 herdr 在被设计时,就已经把 agent 当成真正的参与者看待了。它不是只有人类在操控,agent 自己也能借助它组织工作流。

这让 herdr 看起来像一座正在成形的基础设施,而不是一个只负责展示的外壳。它不仅在帮你管理 agent,也在给 agent 彼此协作留出舞台。


键盘、鼠标、空间感,它都想照顾

从 README 的描述里能明显感受到,herdr 很在意空间组织和操作手感。

它是 mouse-native 的,你可以点击、拖拽、拆分。与此同时,它也保留了键盘优先用户会喜欢的 prefix 模式。默认 ctrl+b 进入前缀模式,这对熟悉 tmux 的人会非常亲切。

它还支持:

  • workspaces
  • tabs
  • panes
  • copy mode
  • themes
  • notifications
  • session persistence

这些能力叠在一起,形成的不是一堆零散功能,而是一个相当完整的终端工作环境。它像一个会收纳的人,不只是把东西塞进柜子里,而是会替你想好抽屉、分层、标签和取用路径。


开发者如果想自己构建

如果你想从源码构建,README 也给出了非常直接的开发流程:

1
2
3
4
5
6
7
git clone https://github.com/ogulcancelik/herdr
cd herdr
cargo build --release
./target/release/herdr

just test
just check

从这里也能看出项目本身是 Rust 实现,整个仓库的开发节奏看上去是偏工程化、偏扎实的。cargo build --releasejust 命令组合,传递出一种很明显的气质:这个项目不是一时兴起拼出来的玩具,而是在认真构建一个长期可维护的工具。


为什么 Herdr 会让人眼前一亮

因为它抓住了一个正在快速变得真实的场景:

一个开发者,已经不再只操作一个终端、一个任务、一个助手,而是在同时与多个 coding agents 协作。

过去,我们的终端工具主要是为“一个人同时处理多个 shell 进程”而设计的。现在,这个问题正在变成“一个人同时管理多个拥有不同状态、不同节奏、不同交互需求的 agent”。两者听起来接近,但本质已经不同。

herdr 最聪明的地方就在于,它没有只是把旧工具换个壳,而是承认这个新现实,并围绕它重写了一套体验逻辑:

  • 不是只有 pane,而是 pane 里的 agent 状态
  • 不是只有持久化,而是 agent 在你 detach 后继续工作
  • 不是只有 SSH,而是让远程 attach 依然顺手
  • 不是只有终端布局,而是 agent 也能通过 socket API 参与编排

它像是终端世界里最先意识到“牧羊人时代来了”的那批工具之一。


适合谁用

如果你符合下面这些情况,herdr 会很值得试试:

  • 你常同时运行多个 coding agents
  • 你喜欢终端,不想被迫迁移到 GUI 管理器
  • 你依赖 SSH、远程主机、VPS 或长期任务
  • 你希望任务 detach 后继续跑
  • 你希望一眼知道哪个 agent 卡住了
  • 你想让 agent 不只是“干活”,还参与工作流编排

它尤其适合那种已经开始把 AI agent 当作“并行同事”来使用的人。你不是偶尔开一个辅助 CLI,而是真的在安排多个数字劳动力同时推进工作。这时,herdr 的价值会变得非常具体。


一个简单的上手流程

如果你想最快感受 herdr 的气质,可以按下面的节奏来:

1. 安装

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

2. 启动

1
herdr

3. 在 pane 中启动你的 agent

比如你可以在不同 pane 里各跑一个 agent,然后观察侧边栏状态变化。

4. 试试拆分、切换和 detach

1
2
3
ctrl+b 然后 v
ctrl+b 然后 c
ctrl+b 然后 q

5. 重新连接

1
herdr

这套流程的魅力在于,它几乎没有学习门槛式的阻塞点。你不需要先读完一整本手册才能体会它的价值。它很像一把一上手就顺手的工具,你用着用着,才发现细节远比第一眼看到的多。


最后

herdr 是一个很有时代感的项目,但它的动人之处不是“新”,而是“准”。

它准确地击中了一个新的开发现实:终端没有过时,反而正在迎来一批新的居民——AI agents。而当这些居民越来越多、越来越忙、越来越需要协同的时候,我们需要的不是离开终端,而是让终端长出新的组织能力。

herdr 就像那个提前把围栏、哨塔、分区和巡逻系统都搭好的牧场管理员。它不抢风头,不喧宾夺主,却让整个场子突然有了秩序。每个 agent 都有自己的位置,每次状态变化都有迹可循,每一次 detach 与重连都不再像意外中断,而像一次从容的转身。

如果说过去的终端是一个人对着黑底白字独自劳作的工位,那么 herdr 想做的,是把它变成一间真正适合人类与 agents 共同办公的控制室。

而且,它依旧住在你最熟悉的终端里。

如果你已经开始和多个 coding agents 并肩作战,那么 herdr 很可能不是一个“可以看看”的玩具,而是一件会慢慢长进你工作流里的工具。