herdr: Terminal Agent Multiplexer for Coding Agents — 12K+ Stars

herdr is a Rust-based terminal multiplexer for AI coding agents. Run Claude Code, Codex, Cline, and OpenCode in parallel — each with its own real terminal, workspace tabs, and state tracking. tmux rebuilt for agents.

  • NOASSERTION
  • 更新于 2026-07-07

{{< 资源信息 >}}

AI 编码代理正在快速繁殖——Claude Code、Codex CLI、Cline、OpenCode、Aider、Devin——同时管理它们是一场噩梦。每个代理都想要自己的终端、自己的工作区、自己的进程树。在它们之间切换意味着通过 alt-tab 键切换一堆混乱的终端窗口,从而无法跟踪哪个代理正在工作、哪个代理被阻止以及哪个代理崩溃了。

herdr 通过成为专为 AI 代理构建的终端多路复用器来解决这个问题。想想 tmux,但它管理的不是 shell,而是代理。每个代理都有自己的真实终端(不是应用程序的模仿),您可以一目了然地看到它们的状态,将它们组织到工作区和选项卡中,并从任何地方重新连接——甚至可以通过 SSH 重新连接您的手机。

herdr 徽标

什么是牧民? #

herdr(发音为“heer-der”)是一个用于 AI 编码代理的 基于 Rust 的终端多路复用器。它由 Ogul Cancelik 创建,为您提供一个终端界面来同时运行、监控和管理多个编码代理。

核心理念:代理应该在真实终端中运行,而不是在沙盒模拟中运行。当代理启动全屏 TUI(如“htop”或“lazygit”)时,它需要一个真正的 PTY。 herdr 通过在内部将每个代理包装在 tmux 会话中来提供此功能,但在顶部提供一个干净的以代理为中心的界面。

关键功能 #

  • 每个代理都有真实终端 — 每个代理都在自己的 PTY 中运行,并具有完整的 TUI 支持
  • 代理状态跟踪 — 侧边栏将每个代理显示为阻止(红色)、工作(黄色)、完成(蓝色)或空闲(绿色)
  • 工作区和选项卡 — 按项目文件夹或存储库组织代理
  • 持久会话 — 关闭笔记本电脑,与 SSH 分离,代理继续运行;从任何终端重新连接
  • 零遥测 - 单个二进制文件,无帐户,无云依赖性,无数据收集
  • 鼠标本机 UI — 单击、拖动和拆分窗格,无需触摸键盘

架构 #

herdr 建立在一个简单但功能强大的架构之上:

┌─────────────────────────────────────┐
│           herdr CLI (Rust)          │
│  ┌──────────┬──────────┬─────────┐ │
│  │ Workspace│ Workspace│ Workspace│ │
│  │   Tab 1  │   Tab 2  │   Tab 3 │ │
│  │          │          │         │ │
│  │  ┌────┐  │  ┌────┐  │  ┌────┐ │ │
│  │  │AGT1│  │  │AGT2│  │  │AGT3│ │ │
│  │  └────┘  │  └────┘  │  └────┘ │ │
│  └──────────┴──────────┴─────────┘ │
└─────────────────────────────────────┘
         │           │           │
    ┌────▼────┐ ┌────▼────┐ ┌────▼────┐
    │ tmux #1 │ │ tmux #2 │ │ tmux #3 │
    │ (PTY)   │ │ (PTY)   │ │ (PTY)   │
    └─────────┘ └─────────┘ └─────────┘

代理服务器 #

herdr 运行一个后台服务器进程(“herdr-server”),该进程在终端会话中持续存在。该服务器:

  1. 管理代理的所有 tmux 会话
  2. 跟踪座席状态(阻塞/工作/完成/空闲)
  3. 处理新终端的重新连接
  4. 维护工作区和选项卡组织

当您关闭笔记本电脑或失去 SSH 连接时,服务器会继续运行。当您重新连接时,“herdr Attach”会将您的整个工作区恢复为您离开时的样子。

状态检测 #

herdr 通过监控终端输出模式来检测代理状态:

  • 已阻止(红色) — 代理正在等待用户输入、文件编辑或批准
  • 工作(黄色) — 代理正在主动运行命令、编写代码或推理
  • 完成(蓝色) — 代理完成其任务并退出
  • 空闲(绿色) — 代理正在运行但未主动处理

这是基于启发式的(不需要钩子),并且可以与任何生成终端输出的代理一起使用 - Claude Code、Codex CLI、Cline、OpenCode、Aider 等。

安装 #

货物安装 #

货物安装牧民

需要 Rust 1.70+。这是获得完整功能支持的推荐方法。

预构建的二进制文件 #

# Linux (x86_64)
卷曲 -L https://github.com/ogulcancelik/herdr/releases/latest/download/herdr-x86_64-linux.tar.gz |焦油
sudo mv herdr /usr/local/bin/

# macOS(苹果芯片)
卷曲 -L https://github.com/ogulcancelik/herdr/releases/latest/download/herdr-aarch64-darwin.tar.gz |焦油
sudo mv herdr /usr/local/bin/

码头工人 #

docker run -it --rm \
  -v ~/.herdr:/root/.herdr \
  -v /var/run/docker.sock:/var/run/docker.sock \
  ghcr.io/ogulcancelik/herdr:最新

先决条件 #

  • tmux 3.2+(herdr 在底层使用 tmux 进行 PTY 管理)
  • Rust 1.70+(用于货物安装)
  • SSH(可选,用于远程重新连接)

用法 #

启动代理 #

# 在新的代理窗格中启动 Claude Code
herdr 运行克劳德代码

# 启动 Codex CLI 并执行特定任务
herdr run codex“重构身份验证模块以使用 JWT”

# 并行启动多个代理
herdr 运行克劳德代码 &
牧民运行法典 &
牧人等待

管理工作区 #

# 为项目创建一个新的工作空间
herdr 工作区创建我的项目 --dir ./my-project

# 将代理添加到工作区
herdr 工作区使用 my-project
herdr 运行 claude-code --workspace my-project

# 工作空间切换
herdr 工作区列表
herdr 工作区使用另一个项目

监控代理状态 #

# 查看所有代理及其状态
牧民地位

# 实时观察代理状态
牧民观察

# 当代理完成时获取通知
herdr notification --on-done "echo Agent $AGENT 完成"

连接和分离 #

# 连接到 herdr 服务器(显示所有代理)
牧民依附

# 分离(Ctrl+B、D — 与 tmux 相同)
# 代理继续运行

# 从不同的终端或 SSH 会话重新连接
ssh 用户@服务器
牧民依附

# 从您的手机重新连接
ssh 用户@服务器 -p 22
牧民依附

分割和布局 #

# 水平分割
牧人分裂

# 垂直分割
牧人分裂-V

# 循环布局
下一步牧人布局

# 调整窗格大小
herdr 调整大小 --up 5

支持的代理 #

herdr 可与任何基于 CLI 的编码代理配合使用。官方测试:

代理状态笔记
克劳德·代码全力支持实时状态检测
法典 CLI全力支持OpenAI 的编码代理
克莱恩(VS 代码)支持通过 CLI 模式
开放代码全力支持状态检测工程
助手全力支持Git 感知代理
德文 CLI支持自主代理模式
任何兼容 tmux 的 CLI作品通用代理模式

自定义代理配置 #

您可以使用特定的状态检测模式定义自定义代理:

# ~/.herdr/agents.yaml
代理商:
  我的定制代理:
    命令:“my-agent --task $TASK”
    状态模式:
      被阻止:/等待输入|请编辑/
      工作:/运行|执行|分析/
      完成:/完成|完成|完成/
    工作空间默认值:“自定义”

与替代方案的比较 #

herdr 与 tmux #

Featureherdrtmux
Agent state trackingAutomatic (color-coded)Manual (window names)
Workspace organizationBuilt-in (by project)Manual (sessions)
Mouse supportNative (click, drag)Configurable
Agent-specific commandsherdr run, herdr watchtmux new-window, etc.
Learning curveLow (agent-first)Moderate (terminal-first)
ReattachmentSeamless (server-based)Session-based

tmux 是更通用的工具。 herdr 是 tmux 用于代理 — 它将 tmux 的会话管理包装在以代理为中心的 UI 中。如果只管理终端(无代理),tmux 就足够了。如果您同时管理多个编码代理,herdr 可以节省大量认知开销。

herdr 与 tmuxinator #

特色牧人tmuxinator
代理状态跟踪实时颜色代码
坚持服务器进程基于会话的
远程重新连接从任何地方使用 SSH仅限本地
多代理工作流程内置手册
鼠标用户界面本地有限公司

tmuxinator 是 tmux 的会话管理器 — 它打开预定义的窗口和窗格。 herdr 更进一步,跟踪每个窗格内运行的内容并以可视方式显示代理状态。

牧群 vs 屏幕 #

特色牧人GNU 屏幕
代理意识是的没有
现代用户界面铁锈/TUI遗产
鼠标支持本地有限公司
社区成长成熟
套餐可用性预构建的二进制文件系统包

Screen 是终端多路复用器的鼻祖。 herdr 是为人工智能代理时代重新设计时所得到的。

性能 #

herdr 是用 Rust 编写的,非常轻量级:

  • 二进制大小:~15 MB(单个静态二进制)
  • 内存使用:约 2 MB 空闲,每个代理会话约 5 MB
  • 启动时间:< 50ms
  • CPU 使用率:空闲时接近于零,随代理活动扩展

tmux 服务器作为后台守护进程运行,开销最小。所有状态检测都通过终端输出分析在本地进行——没有网络调用,没有云依赖。

限制 #

无图形用户界面 #

herdr 仅适用于终端。没有桌面应用程序,没有浏览器 UI,没有移动应用程序(尽管您可以通过 SSH 连接到服务器并从手机终端使用 herdr)。如果您更喜欢可视化仪表板,herdr 的 TUI 可能会感觉简朴。

启发式状态检测 #

代理状态检测依赖于终端输出模式,而不是 API 挂钩。这意味着:

  • 它适用于任何代理(无需集成)
  • 但它有时可能会错误分类状态(例如,代理在实际被阻止时打印“正在工作…”)
  • 可以针对边缘情况配置自定义模式

代理兼容性 #

虽然 herdr 可与任何 CLI 代理配合使用,但某些代理有一些怪癖:

  • 清除终端屏幕的代理可能会丢失状态上下文
  • 使用非标准转义码的代理可能无法被正确检测
  • 全屏 TUI 代理(如 vimhtop)运行完美 — 这实际上是 herdr 的强项

无内置计费 #

herdr 不跟踪 API 成本或代币使用情况。如果您跨付费 API 管理代理,则需要单独的成本跟踪工具。

编者的话 #

随着人工智能编码代理的成倍增加,herdr 填补了一个日益扩大的空白。在代理出现之前,tmux 就足够了——您管理的是终端,而不是智能进程。但是,当每个“终端”都是一个自主代理,可以思考、编写代码,并且有时会卡住等待您时,您需要的不仅仅是窗口管理。您需要代理意识

herdr 的天才在于它的简单性。它并不试图成为 IDE、项目经理或 CI/CD 管道。它是一个终端多路复用器,可以理解代理的状态、工作空间以及在断开连接时持续存在的需求。事实上,它是用 Rust 编写的,并且运行不需要任何成本,这对于任何处理多个编码代理的人来说都是轻而易举的事情。

仅使用颜色编码的状态侧边栏每天就可以节省几分钟的时间。不再需要通过 8 个终端窗口进行 Alt-Tab 操作,想知道哪个代理已完成、哪个代理被卡住。 herdr 告诉你:红色 = 被阻止(你需要采取行动),黄色 = 工作(别管它),蓝色 = 完成(检查输出),绿色 = 空闲(它正在思考)。

对于跨存储库运行多个代理的团队来说,herdr 的工作区组织非常宝贵。每个项目创建一个工作区,每个文件夹添加代理,并在项目之间切换而不会丢失上下文。通过 SSH 重新连接功能意味着即使您的笔记本电脑处于睡眠状态,您的代理也可以在远程服务器上继续运行。

与商业替代品相比,herdr 缺乏的一件事是可视化仪表板。但对于终端用户(也就是 herdr 的受众)来说,TUI 比任何基于 Web 的代理管理器更快、更轻、更可靠。

常见问题解答 #

问:herdr 是否可以与非编码代理一起使用? #

答:是的。任何产生终端输出的 CLI 进程都可以由 herdr 管理。虽然它针对编码代理(Claude Code、Codex、Cline)进行了优化,但您可以使用它来管理任何长时间运行的终端进程 - Web 服务器、数据管道、监控工具等。

问:我可以在 Windows 上使用 herdr 吗? #

答:herdr 需要 tmux,它主要是一个 Unix 工具。在 Windows 上,您可以使用 WSL2(适用于 Linux 的 Windows 子系统)来运行 herdr。本机 Windows 支持已计划但尚未提供。

问:herdr 如何处理代理崩溃? #

答:如果代理崩溃,herdr 会将其标记为已阻止(红色)并保持终端会话处于活动状态。您可以检查崩溃输出、修复问题并在同一工作区中重新启动代理,而不会丢失上下文。

问:herdr 有基于网络的仪表板吗? #

答:还没有。 herdr 在设计上是终端优先的。创建者提到路线图中有一个网络仪表板,但当前的 TUI 被认为足以满足目标受众的需求。

问:herdr 可以管理远程服务器上的代理吗? #

答:是的。由于 herdr 使用服务器进程,因此您可以在远程计算机上运行 herdr-server 并从任何终端(包括来自手机的 SSH)连接。无论您的连接状态如何,代理都会继续在远程服务器上运行。

问:herdr 是否支持代理间通信? #

答:不直接。 herdr 并行管理代理,但不促进它们之间的通信。如果代理需要共享数据,请使用共享文件系统、环境变量或消息队列。

Dibi8 的更多内容 #

来源 #


发布时间:2026 年 7 月 7 日 |最后更新时间:2026 年 7 月 7 日 |星级: 12,627 |许可证:NOASSERTION

💬 留言讨论