Herdr:tmux 为 AI 编程时代重写了一遍,让你一眼看清 6 个 Agent 谁在 "摸鱼"

Herdr:tmux 为 AI 编程时代重写了一遍,让你一眼看清 6 个 Agent 谁在” 摸鱼”

一、三个 Terminal 标签页同时跑 Claude Code,我差点” 精神分裂”

如果你和我一样,最近半年同时挂着 Claude Code + Codex + Copilot CLI + Cursor Agent 写代码,那你大概率体验过这种” 精神分裂”:

  • 标签页 1:Claude Code 在跑 refactor,已经 4 分钟没动了,是不是卡了?切过去看一眼 —— 其实在等 npm install。
  • 标签页 2:Codex 在写测试,跑完了一直没回我,但我没注意,错过了它的提问。
  • 标签页 3:Copilot CLI 早就跑完了,但我忘记收尾,浪费了 30 分钟。
  • 手机 SSH 进服务器:刚才关电脑前开的 agent 全死了,回去一看啥都没干。

这种” 我的 Agent 们到底谁在干嘛” 的焦虑,是 AI 编程时代每个多 Agent 用户都会撞上的墙。tmux 能让你挂很多个 pane,但它不知道哪个 pane 里的程序是个 Agent,更不知道这个 Agent 是” 在干活” 还是” 在等你确认”。GUI 类的 Agent 管理器(cmux、conductor、emdash)能显示状态,但它们要么只支持 macOS,要么要装一个 Electron App,要么把你的真实终端” 包” 在一个模拟器里 ——SSH 进服务器就废了。

今天我们要聊的 ogulcancelik/herdr(11.4k stars,66 个 release,2026 年 6 月 30 日登顶 GitHub Trending #1)走了一条不一样的路:它就是一个 10MB 的 Rust 单文件二进制,但把 tmux 的” 持久化” 和 GUI 管理器的”Agent 状态感知” 结合在了一起。关键是 —— 它不接管你的终端,它是住进你终端里的。

二、herdr 是什么?一个” 为 Agent 重写” 的 tmux

官方原话是:

if you’ve used tmux: it’s that, rebuilt for agents.

拆开看三个关键词:

  1. Agent Multiplexer:和 tmux 一样,它能在一个终端里开多个 pane、tab、workspace。但它在每个 pane 的边框 / 侧栏实时告诉你” 这个 Agent 当前是 blocked /working/done /idle 中的哪一种”。
  2. Lives in your terminal:不像 cmux、warp、conductor 这种” 套壳终端”,herdr 不替换你的 iTerm / Ghostty / Kitty / Alacritty。它就在你现有的终端里跑。
  3. Runs anywhere:一个~10MB 的 Rust 静态二进制,无 Electron、无 GUI、无 mac-only wrapper、无账号、无遥测。Linux /macOS 稳定版,Windows beta。手机 SSH 进去也能用 —— 这点直接秒杀了 90% 的 GUI 类 Agent 管理器。

它的设计哲学用一句话总结:tmux 解决了” 程序跑在比你的会话更长的寿命里”,herdr 解决了” 我同时挂了 6 个 Agent,但我知道哪个在干活、哪个在等我”

三、五大核心功能(一个一个拆给你看)

3.1 侧栏 Agent 状态可视化 —— 零配置” 看脸色”

herdr 最杀的功能是它的侧栏(sidebar)。每个 pane 旁边会自动出现一个彩色状态点:

  • 🔴 blocked —— Agent 在等你确认 / 答问题(这就是你最容易错过的”Agent 已经做完一半在等你” 的状态)
  • 🟡 working —— Agent 正在干活(写代码、跑命令)
  • 🔵 done —— Agent 已经完成这一轮,等待下一条指令
  • 🟢 idle —— 闲着的 pane(普通 shell)

它怎么知道 Agent 在哪个状态?纯靠读 PTY 输出 + 进程名匹配0 配置、0 hooks、0 插件。官方说它默认支持 Claude Code、Codex、GitHub Copilot CLI、Devin CLI、Amp、Cursor Agent、Grok CLI、Kimi、Qoder CLI、OpenCode 等 15+ 主流 Agent。任何 CLI Agent 都能用 ——herdr 不在你 Agent 里装任何东西,它只” 读” 你终端的输出流

这一招很关键:很多 GUI 管理器要你在每个 Agent 里装一个 plugin 才能上报状态,herdr 完全不需要,纯靠看屏幕

3.2 真实的 PTY —— 让全屏 TUI 渲染不糊

很多 Agent(Claude Code、Codex)现在都带漂亮的全屏 TUI:进度条、diff 高亮、tool call 折叠面板。如果把它们塞进一个” 伪终端”(Electron 套壳),TUI 渲染要么糊要么错位。

herdr 的做法是:每个 Agent 拿到的都是一个真实的 PTY(pseudo-terminal)。Claude Code 的全屏 TUI 在里面是什么样,在外面还是什么样。你的 shell、字体、配色、快捷键全部保持原样

3.3 持久化 + 远程 Reattach —— 真正的” 关电脑不丢工作”

这是 tmux 的老本行,herdr 完整继承:

1
2
3
4
5
6
7
8
9
10
11
12
# 早上开工:开 3 个 agent 干活
herdr
# ctrl+b shift+n 开新 workspace
# ctrl+b v 上下分屏
# ctrl+b - 左右分屏

# 午饭前:detach(agent 不死)
# ctrl+b 然后 q

# 下午地铁上:用手机 SSH 进服务器
ssh workbox
herdr # 自动 reattach,agent 还在跑

更狠的是它支持 thin-client 模式

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

这会让你的本地终端变成远端 server 的客户端 —— 不是简单的 ssh + tmux,而是保留了本地粘贴图片的能力(这条普通 ssh + tmux 直接断的)。

3.4 鼠标原生 + 移动端友好

很多人讨厌 tmux,是因为它” 鼠标没用,全靠快捷键”。herdr 是鼠标原生的:

  • 点侧栏条目直接跳到对应 agent
  • 拖拽调整 pane 大小
  • 鼠标点 workspace 切换

而且它在窄屏(手机 / 平板 SSH)会自动切到 touch-friendly 模式:侧栏变成大按钮,pane 切换改成 swipe。对手机党极度友好。

3.5 Socket API + CLI:让 Agent 也能” 管”Agent

这是我觉得最有想象力的功能。herdr 暴露了一个本地 Unix Socket + JSON API

1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建工作区
herdr --cwd ~/project --label api
herdr --label logs

# 拆 pane
herdr 1-1 --direction right
herdr 1-2 "just test"

# 等待 agent 完成
herdr 1-1 --status done

# 读取最近输出
herdr 1-2 --source recent-unwrapped

这意味着:你的” 总指挥 Agent” 可以用 shell 调用 herdr,去 spawn /split/wait /read 其他 Agent。比如你有一个” 项目经理” Agent,它会自动开 3 个” 工程师” Agent 子 pane,分配任务,等 done 再合并报告。Agent 自己编排 Agent—— 这才是 AI 编程时代的” 真・多路复用”。

官方还提供了一组社区插件做演示:Telegram 通知(agent 完了 @ 你)、GitHub PR 预览(一键侧栏打开)、三栏 Dev Layout 模板。任何能写 shell 的语言都能写 herdr 插件

四、5 分钟实战:把 herdr 跑起来

4.1 安装

一行命令,Linux /macOS 通吃:

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

或者用你熟悉的包管理器:

1
2
3
brew install herdr
mise use -g herdr
nix run github:ogulcancelik/herdr

更新:herdr update

4.2 开第一个 workspace

1
herdr

默认进入一个 workspace。前缀键是 ctrl+b(先按 ctrl+b 松开,再按动作键):

快捷键 动作
ctrl+b shift+n 新 workspace
ctrl+b vctrl+b - 拆分 pane
ctrl+b c 新 tab
ctrl+b w 切 workspace
ctrl+b q detach(agent 继续跑,下次 herdr 自动 reattach)
ctrl+b ? 查全部快捷键

4.3 同时跑 3 个 Agent

1
2
3
4
5
6
7
8
9
# pane 1:跑 Claude Code
claude

# pane 2:跑 Codex
codex

# pane 3:开个 git worktree + Cursor Agent
git worktree add ../feature-x
cd ../feature-x && cursor-agent

你会看到左侧自动出现 3 个状态点。当某个 agent 在等你确认(blocked),那个状态点会变红 —— 再也不会错过 Agent 的提问了

4.4 在手机上继续看

1
2
3
4
5
6
# VPS 上跑
ssh workbox
herdr

# 本地用 thin-client 连过去
herdr --remote ssh://workbox

回家路上用 Termius SSH 进你的工作 VPS,herdr 一敲,早上开的 3 个 Agent 状态全在侧栏里,该等的等、该收的收。

五、它和 tmux /cmux/warp 到底差在哪

官方列了一张表,我把它翻译成人话:

能力 tmux / Zellij GUI Agent 管理器(cmux 等) herdr
持久化 session
detach / reattach
SSH 远程
Agent 状态感知
住进现有终端
真实 PTY 渲染
鼠标原生
10MB 静态二进制
Agent 编排 Agent

简单说:

  • tmux 党:tmux 的” 持久化 + 多 pane + SSH” 它全有,还多了”Agent 状态” 和” 鼠标”。
  • GUI 党:cmux/warp/conductor 的” 状态可视化” 它全有,还多了” 不抢你的终端、不限 macOS、SSH 可用”。
  • 二者的中间地带:它就长在终端里不是套壳还能被 Agent 用 API 驱动

六、适用场景 vs 限制

最适合的人

  1. 同时跑 ≥ 2 个 AI 编程 Agent 的开发者(Claude Code + Codex、Cursor + Copilot 等)。
  2. 在 VPS / 远程机器上跑 Agent,回家 / 出差用手机 SSH 跟进的人。
  3. 想搭”Agent 编排 Agent” 工作流(比如一个 PM Agent 调度 3 个工程 Agent)的重度用户。
  4. 不想装 Electron、不想换终端、不想登录账号的”tmux 原教旨主义者”。

当前的一些限制

  1. Windows 还在 beta,日常主力 Windows 的朋友要再等等。
  2. 快捷键模型和 tmux 不完全兼容(前缀是 ctrl+b 不是 ctrl+a),如果你重度依赖 tmux 脚本可能要稍微适应。
  3. 状态识别靠” 读 PTY + 进程名启发式”,对极其冷门的 Agent 可能识别不准;不过” 任何 CLI 都能跑” 是兜底。
  4. 协议:AGPL-3.0 + 商业双许可。如果你打算把它嵌进闭源产品里卖,需要买商业授权。

七、总结

herdr 的核心命题非常清晰:当 AI Agent 取代了” 一个人 + 一个终端” 的传统开发模型,你就需要一个新的” 终端操作系统” 来调度这些 Agent。tmux 解决了” 程序比会话活得久”,GUI 工具解决了” 我知道 Agent 在干嘛”,但没有任何一个工具同时做到了” 在终端里 + 持久的 + Agent 感知的 + 远程可用的 + Agent 也能编排的”

herdr 第一个把这个交集全部占住了。

如果你今天就要试一件事:装上 herdr,开 2 个 pane 分别跑 claudecodex盯着侧栏看 5 分钟 —— 你会发现这是你过去半年第一次真正知道” 我那 6 个 Agent 到底谁在摸鱼”

仓库:github.com/ogulcancelik/herdr・官网:herdr.dev · License: AGPL-3.0 / Commercial dual