当前位置: 首页 > news >正文

herdr:给 AI 编码 Agent 的终端多路复用器,让多个 Agent 同屏协作 | Github Daily

每日开源 081|herdr:给 AI 编码 Agent 的终端多路复用器,让多个 Agent 同屏协作

2026-07-02 · 早间篇 · GitHub Trending 今日 +611 Stars

**免责声明:**本工具依赖境外公开数据源(GitHub 等),部分平台在中国大陆需合规网络环境。

如果你最近同时开过Claude CodeCodexCursor AgentOpenCode,一定经历过这种场景:三四个代理各占一个终端窗口,有的正在跑测试、有的卡在确认 prompt、有的已经跑完但你不知道。切来切去,全凭记忆和运气。

今天要聊的herdr,就是专门为这种「多 Agent 并行」场景设计的终端工具。它把自己定位为agent multiplexer——不是 tmux 的替代品,而是 AI 编码时代的终端调度中心。

一、项目速览

**项目名:**herdr

**作者:**ogulcancelik

**定位:**终端原生的 AI 编码 Agent 多路复用器

**Stars:**约 9.5k - 10k(今日 GitHub Trending +611 Stars)

**语言:**Rust

**许可证:**AGPL-3.0-or-later / 商业双许可

**官网:**herdr.dev

**代码:**github.com/ogulcancelik/herdr

~10MB单二进制体积

**15+**内置 Agent 集成

4Agent 状态可视化

977GitHub 提交数

二、它能解决什么问题?

AI 编码 Agent 和人的工作模式不一样。人类操作终端是「输入一个命令、等结果、再输入下一个」;Agent 是「长时间运行、可能中途要确认、可能自己卡住、也可能 quietly 跑完」。传统终端多路复用器(如 tmux)擅长管理「人的会话」,但不理解「Agent 的语义状态」。

herdr 针对四个真实痛点做了专门设计:

痛点 1:多 Agent 状态不可见。tmux 能看到窗格,但不知道里面是 Agent 在工作、被阻塞还是已完成。herdr 把状态抽象为 blocked / working / done / idle 四色信号。

痛点 2:会话断开进度丢失。Agent 一次任务可能跑几十分钟,SSH 断了或终端关了容易丢进度。herdr 支持 detach/reattach,后台 server 保持 pane 进程继续运行。

痛点 3:Agent 之间协作靠手动复制。不同 Agent 的输出需要人工搬运。herdr 提供 Socket API + CLI,让 Agent 可以编程式读取其他 pane 输出、等待状态变化、发送输入。

痛点 4:GUI 管理器太重。很多 Agent 客户端是 Electron 桌面应用,离开终端、绑架工作流。herdr 跑在你现有终端里(iTerm2、Ghostty、Warp、原生 Terminal 均可),不替换终端。

三、核心亮点

1. 真实终端 + Agent 状态感知

herdr 的每个 pane 都是真实终端进程,不是被改写的 Agent 视图。Agent 输出的 ANSI 序列、光标移动、alternate screen、progress bar、diff 高亮都会被完整保留。同时,herdr 通过三种方式识别 Agent 状态:

  • 集成上报:Pi、OMP、Claude Code、Codex、Cursor、Kimi、OpenCode、Kilo、Hermes 等通过官方 integration 主动上报状态;

  • 屏幕检测 + session identity:对 Claude Code、Codex、Copilot CLI、Devin、Droid、Qoder 等基于底部 live buffer 和进程名识别;

  • 纯屏幕检测:对 Amp、Grok、Antigravity、Kiro 等通过前台进程和屏幕快照判断。

blocked 的判定故意收紧,只在底部缓冲区出现明确的确认、批准或提问 UI 时才标记。这种 evidence-based 的检测方式避免了误判。

2. workspace / tab / pane 三层组织

herdr 的容器层级比 tmux 多了一层项目维度:

  • workspace:项目级容器,建议一个 repo 或一个任务一个 workspace;

  • tab:workspace 内的视图分组,比如 agents、logs、server、review;

  • pane:真实终端进程,可拆分、可重命名、可被 CLI/API 读取。

侧边栏会按 workspace 汇总状态。只要某个 pane 里的 Agent 被阻塞,整个 workspace 就会标红,提醒你优先处理。这种设计把「切 pane」变成「按优先级处理 attention」。

3. 五种会话恢复路径

herdr 把持久化做了细粒度拆分,不同场景对应不同恢复能力:

live persistence:detach 后原始进程根本没停,是最强的恢复路径。

snapshot restore:server 重启后恢复 workspace、tab、pane、布局和 cwd,但不恢复普通进程。

pane screen history replay:server 重启后回放最近的终端内容,默认关闭(避免泄露敏感信息)。

native agent session restore:利用 integration 上报的 session reference,在 server 重启后自动执行claude --resumecodex resume等命令接回 Agent 会话。

live handoff:实验性功能,herdr update --handoff在替换 server 时尝试把活 pane 迁移到新 server。

4. Socket API + 插件系统:Agent 也能编排 Agent

herdr 不仅给人用,也暴露给 Agent 用。本地 Unix socket(默认~/.config/herdr/herdr.sock)支持 NDJSON 协议,覆盖 workspace、tab、pane、agent、事件订阅、集成管理等完整控制能力。CLI 是其封装:

# 读取另一个 pane 的最近输出herdr panereadw1:p2--sourcerecent--lines50# 等待某个 Agent 进入 done 状态herdrwaitagent-status w1:p1--statusdone--timeout60000# 等待输出匹配特定模式herdrwaitoutput w1:p3--match"server.*ready"--regex--timeout30000# 右侧分屏并运行测试herdr panesplitw1:p1--directionright --no-focus herdr pane run w1:p2"cargo test"

此外,herdr 还有插件市场,支持任意语言编写的插件,并提供黑名单机制。插件可以声明自己的动作、打开终端 UI 窗格,并通过环境变量注入HERDR_PLUGIN_IDHERDR_WORKSPACE_ID等上下文。

5. Rust 工程实现:轻量、跨平台、无依赖

herdr 是单二进制 Rust 实现,核心依赖栈分工清晰:

  • ratatui:TUI 渲染;

  • crossterm:跨平台终端事件和控制;

  • portable-pty:跨平台 PTY;

  • tokio:异步调度;

  • interprocess:本地 IPC;

  • serde / bincode:配置与协议序列化。

项目约 10MB 单二进制,Linux 和 macOS 稳定支持,Windows 处于 preview beta。作者强调的几条工程约束也值得关注:状态与 runtime 分离、渲染函数纯函数、无 god objects、平台差异代码隔离、检测与 UI 解耦。

四、实战场景展示

场景 1:多 Agent 并行开发

左侧 pane 跑 Claude Code 改业务逻辑,右侧 pane 跑 Codex 执行测试,下面 pane 跑 dev server 或日志 tail。Claude 改完等待批准时 pane 变 red,Codex 测试完成后 pane 变 blue,一眼就能看到下一步该点哪个窗格。

场景 2:远程服务器上长时间跑 Agent

在远程 Linux 服务器上启动 herdr,跑一个需要半小时的代码重构任务。临时要开会,直接ctrl+b q离开。会后从任意终端(包括手机 SSH)执行herdr重新 attach,任务继续。

场景 3:Agent 编排脚本

一个协调 Agent 调用 herdr CLI 启动多个子 Agent:先起 Claude 写后端 API,再起 Codex 写前端页面,然后herdr wait agent-status claude --status idle等后端完成,再herdr agent read claude读取结果传给下一步。多 Agent 协作不再靠手动复制粘贴。

场景 4:对比不同 Agent 的输出

同一个需求,左边 pane 跑 Claude Code,右边 pane 跑 Codex,下面 pane 跑 OpenCode。通过 herdr 的状态栏和输出读取,快速横向对比三种 Agent 的实现思路与质量差异。

五、上手指南

1. 安装

推荐用官方一键脚本(Linux/macOS):

curl-fsSLhttps://herdr.dev/install.sh|sh

如果已经用 Homebrew:

brewinstallherdr

或者用 mise、Nix:

mise use-gherdr nix run github:ogulcancelik/herdr

Windows 用户目前处于 preview beta:

powershell-ExecutionPolicyBypass-c"irm https://herdr.dev/install.ps1 | iex"

2. 启动与基本操作

在项目目录下直接运行:

herdr

默认前缀键是ctrl+b(和 tmux 一致),常用快捷键:

ctrl+b shift+n:新建 workspace

ctrl+b vctrl+b -:垂直/水平分屏

ctrl+b c:新建 tab

ctrl+b w:切换 workspace

ctrl+b q:detach client(Agent 继续运行)

ctrl+b ?:查看所有快捷键

herdr 是鼠标原生的,点击、拖拽、分屏都可以不用快捷键。

3. 安装 Agent 集成

以 Claude Code 和 Codex 为例:

herdr integrationinstallclaude herdr integrationinstallcodex herdr integration status

安装后,herdr 能更准确识别这些 Agent 的状态,并在 server 重启后支持原生 session 恢复。

4. 命名 session 隔离项目

如果要同时运行多个完全独立的项目会话,可以用命名 session:

herdr session list herdr session attach work herdr session attach side-project

5. 更新

官方安装器管理的版本:

herdr update

Homebrew/mise/Nix 用户通过各自包管理器更新。大版本更新可能需要先 stop 旧 server:

herdr server stop herdr

**小提示:**第一次试用建议先只装 1-2 个最常用的 Agent 集成,确认状态栏真的改变了你的切换顺序后,再考虑替代 tmux。如果你只偶尔跑一个 Agent,herdr 可能 overkill;但只要你同时跑多个 Agent,它就会显著降低注意力切换成本。

六、适合与不适合

✅ 适合:同时跑多个 coding agent、经常因切 pane 和盲扫状态浪费注意力的人;想保留终端工作流、不想被 GUI 改写输出的人;需要脚本化或 Agent 化编排 terminal tasks 的人。

❌ 不适合:长期只跑一个 Agent、几乎没有并行调度需求;根本不想留在终端里、希望一切都在 GUI 中完成;需要稳定 Windows 体验(当前为 preview beta)。

七、今日总结与互动

herdr 不是 tmux 的替代品,而是为 AI 编码 Agent 时代重新设计的一类终端工具。它的核心价值在于:把「同时管理多个 Agent」从人肉轮询变成状态驱动的注意力调度。真实终端 + 状态可视化 + detach 持久化 + Socket API 编排,这四件事组合在一起,让它成为目前终端里最完整的 Agent 调度中心。

如果你已经在日常用 Claude Code、Codex 或 Cursor Agent,不妨试试把 herdr 作为第一个打开的命令。它可能会改变你对「终端里该有什么」的想象。

今日互动

你同时开过几个 AI 编码 Agent?

你觉得终端工具还需要补充哪些 Agent 原生能力?

欢迎在评论区聊聊你的多 Agent 工作流。

http://www.jsqmd.com/news/1114329/

相关文章:

  • HsMod终极指南:55个功能全面解锁您的炉石传说游戏体验
  • 3个核心技巧:让Video Download Helper成为你的视频下载专家
  • 计算机Java毕设实战-基于 SpringBoot 的 “图书森林” 校园图书共享借阅平台的设计与实现 基于 SpringBoot 的高校共享图【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 终极炉石传说插件HsMod:完全免费的游戏功能增强工具
  • 软考高项和PMP考试难度真相:不是题难,而是你没看懂这4个隐性门槛(附2023真题通过率反推分析)
  • 如何用Universal Pokemon Randomizer ZX打造你的专属宝可梦冒险
  • 软考高级证书含金量黑箱揭秘(仅限内部学员披露):为什么92%的系统架构设计师持证者3年内晋升技术总监,而信息系统项目管理师仅41%?
  • 软考副高评审时间节点全预警:申报→初审→复审→答辩→公示5阶段倒计时管理法(含2024各省市截止日速查表)
  • 软考与PMP到底选哪个?(一张决策树图解决90%人的职业卡点)
  • 【软考vsPMP终极抉择指南】:20年项目管理老兵亲授——3大维度对比、5类人群适配图谱、2024通过率与薪资溢价数据全披露
  • Destiny 2单人模式终极指南:免费享受纯净游戏体验
  • 软考高级哪个最值钱?基于人社部2023人才缺口数据、北上广深平均年薪增幅(+37.6%)、以及127家上市公司招聘JD语义分析的终极结论
  • 智能锡膏管理设备真的能提高效率吗?
  • 企业级数据主权解决方案:个人数字资产本地化备份与AI训练架构
  • okbiye AI 科研绘图:一站式期刊级科研图表生成工具,告别 Origin 与 Visio 繁琐制图
  • 社交媒体文案生成器——鸿蒙 + AI 让表达更出彩
  • 微信聊天记录永久保存终极指南:3种格式对比+快速上手方案
  • 视频下载助手:如何优雅地保存网络视频资源
  • 抖音内容高效管理终极方案:douyin-downloader自动化批量下载完整指南
  • Palworld存档修复终极指南:如何轻松拯救损坏的游戏数据
  • 3个关键步骤:轻松掌握开源视频下载助手的高效使用技巧
  • OpenCode模型配置与切换:本地AI编程的可控性实践
  • 为什么92%的云计算工程师在拿到ACP后,第18个月就补考软考高项?——来自12家头部云厂商用人部门的内部人才画像报告
  • ExplorerBlurMica:Windows资源管理器现代化视觉效果技术实现深度解析
  • 大数据环境下的数据建模核心技术与实践指南
  • 终极图像分层工具Layerdivider:如何将单张图片智能转换为PSD分层文件
  • 48tools:你的跨平台多媒体内容管理助手
  • 【JAVA毕设源码分享】基于springboot社区诊所在线挂号与排队系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • Java毕设选题推荐:基于 SpringBoot 的智能排班考勤综合管理系统的设计与实现 基于 SpringBoot 的员工考勤异常审批管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • OpenCV实现发票文档透视矫正:四点透视变换完整实战解析(附完整代码)