flowchart LR
subgraph Herdr_Workspace["Herdr Workspace"]
A["Claude Code<br/>代码重构"]
B["Codex<br/>API 文档"]
C["Gemini CLI<br/>代码审查"]
D["Test Runner<br/>自动化测试"]
end
A --"重构完成通知"--> D
B --"文档更新"--> A
C --"审查反馈"--> A
3 第 1 章 · 初识 Herdr
3.1 从一个场景说起
想象一下你的日常工作状态:
你打开了一个终端窗口,启动了 Claude Code 来重构某个模块;又打开了一个窗口运行测试服务器;第三个窗口里用 Codex 查阅 API 文档;第四个窗口正在跑一个长时间的数据库迁移。你的终端看起来像这样:
[终端窗口 1] Claude Code 正在重构...
[终端窗口 2] vite dev server running on :3000
[终端窗口 3] codex > 查阅文档中...
[终端窗口 4] mysql migration running... 45%
四个窗口、三个桌面、两个 Space切换——你已经开始迷失了。
Herdr 就是用来解决这个问题的。
3.2 Herdr 是什么
Herdr 是一个专为 Coding Agent 设计的终端工作空间管理器(terminal multiplexer)。它源自传统的终端复用器(如 tmux、zellij),但在设计上做了根本性的范式转变:
传统终端复用器管理的是「终端窗口」,而 Herdr 管理的是「Agent 工作流」。
在 Herdr 中,终端窗口只是载体,真正的主角是运行在其中的 AI Agent——Claude Code、Codex、Gemini CLI、OpenClaw 等。Herdr 围绕这些 Agent 提供了状态感知、任务编排、团队协作等能力。
3.2.1 一句话定义
让终端成为 AI Agent 的操作系统——每一个 Agent 都有自己独立的安全运行空间,你只需要关注「谁在做什么」,而不需要关心「哪个窗口在第几个标签页」。
3.3 为什么需要 Herdr
3.3.1 多 Agent 时代的痛点
随着 AI Coding Agent 的爆发式发展,一个开发者的日常从「一个人写代码」变成了「指挥一个 AI 团队写代码」。但这带来了新的问题:
| 痛点 | 描述 | 传统方案的困境 |
|---|---|---|
| 窗口混乱 | 每个 Agent 一个终端窗口,5 个 Agent 就是 5 个窗口 | tmux 能分屏,但无法感知 Agent 状态 |
| 状态不可见 | Agent 在等什么?完成了?卡住了?报错了? | 需要逐个切换窗口检查,效率极低 |
| 无法协作 | Agent A 的结果需要给 Agent B 用 | 手动复制粘贴,或维护笨重的消息中转 |
| 资源浪费 | 多个 Agent 同时运行,CPU/内存争抢 | 无法统一调度和优先级管理 |
| 会话脆弱 | 关掉终端 = 杀掉 Agent,SSH 断了 = 前功尽弃 | tmux 有 detach 能力,但 Agent 不知道自己被 detach 了 |
3.3.2 Herdr 的解法
Herdr 通过三个层面的创新来应对这些挑战:
3.3.2.1 1. Agent 状态检测(State Detection)
Herdr 能够实时检测每个终端窗格中运行的 Agent 状态。不需要 Agent 主动上报——Herdr 通过分析终端输出(ANSI 序列、输出频率、特定标记符)来推断状态:
┌─────────────────────────────────────────────┐
│ Herdr 侧边栏 │
│ │
│ 📦 workspace: my-project │
│ ├─ 🤖 claude [working] 重构 auth.ts │
│ ├─ 🤖 codex [idle] 等待指令 │
│ ├─ 🖥️ dev-server [running] :3000 OK │
│ └─ 🤖 gemini [done] ✓ 文档已生成 │
│ │
└─────────────────────────────────────────────┘
Herdr 通过 PTY(伪终端)层面的输出分析来检测 Agent 状态,支持: - 输出模式匹配:识别 Agent 的 spinner、进度条、提示符等 - 输出频率分析:长时间无输出 = 可能卡住了 - 退出码捕获:进程结束时自动标记为 done - 自定义检测规则:通过配置文件扩展新的 Agent 类型
3.3.2.2 2. 真实终端 Pane(Non-Headless)
这是 Herdr 与其他 Agent 编排工具最本质的区别。
很多 Agent 编排框架(如 CrewAI、AutoGen)使用的是headless 模式——Agent 在后台运行,你看不到它的实时输出。这在「任务 → 结果」的简单场景下没问题,但 Coding Agent 不同:
Headless 模式(其他工具):
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Agent A │ ──→ │ Agent B │ ──→ │ 结果输出 │
└──────────┘ └──────────┘ └──────────┘
黑盒运行 黑盒运行 只看到结果
Herdr 模式:
┌──────────────┐ ┌──────────────┐
│ 🖥️ Pane 1 │ │ 🖥️ Pane 2 │
│ │ │ │
│ Claude Code │←──→ │ 测试服务器 │
│ 实时可见 │ │ 实时可见 │
│ 可交互输入 │ │ 可交互输入 │
└──────────────┘ └──────────────┘
透明运行 透明运行
Coding Agent 的核心特点是交互式:它会提问、会犹豫、会请求确认。如果你看不到 Agent 的实时输出,就无法在关键时刻做出决策。Headless 模式适用于「明确输入 → 明确输出」的管道式任务,但 Coding Agent 需要的是人在环中(Human-in-the-Loop)的协作模式。
3.3.2.3 3. 混合模型组队(Multi-Model Teaming)
Herdr 不绑定任何一个 AI 模型或 Agent 框架。你可以在同一个工作区中混合使用不同的 Agent:
这种异构 Agent 团队的模式,让每个 Agent 发挥自己的长处,而不是用一个模型解决所有问题。
3.4 Herdr vs. 传统终端复用器
3.4.1 与 tmux / zellij 的对比
| 特性 | tmux | zellij | Herdr |
|---|---|---|---|
| 基本定位 | 终端复用器 | 终端工作空间 | Agent 工作空间 |
| 窗格管理 | ✅ 强大 | ✅ 强大 | ✅ 强大(基于前缀键) |
| 分离/重连 | ✅ 有 | ✅ 有 | ✅ 有(server 模式) |
| Agent 状态检测 | ❌ 无 | ❌ 无 | ✅ 核心能力 |
| Agent 编排 | ❌ 无 | ❌ 无 | ✅ 内置 |
| 多模型组队 | ❌ 无 | ❌ 无 | ✅ 原生支持 |
| 鼠标支持 | 基础 | 较好 | ✅ 完善(点击/拖拽/右键) |
| 配置复杂度 | 高(.tmux.conf) | 中(KDL) | 低(TOML + 引导) |
| AI Agent 集成 | ❌ 无 | ❌ 无 | ✅ 深度集成 |
| 学习曲线 | 陡峭 | 中等 | 平缓(渐进式) |
| 插件系统 | 有限 | 有(WASM) | 有(Agent Skills) |
| 社区规模 | 非常大 | 增长中 | 新兴但快速成长 |
| 适用平台 | Linux/macOS/BSD | Linux/macOS | Linux/macOS(Windows Beta) |
tmux 是一个非常成熟、强大的终端复用器。如果你不使用 AI Coding Agent,tmux 完全够用。Herdr 的价值在于:当你开始在终端中频繁使用 AI Agent 时,传统终端复用器无法理解 Agent 的语义——它们只看到进程和输出流,看不到「Agent 正在等待用户确认」这样的高层语义。
3.4.2 在 AI 编程生态中的定位
当前的 AI 编程生态有很多工具,Herdr 的定位非常明确:
┌─────────────────────────────────────────────────────────────────┐
│ AI 编程生态全景图 │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ AI 编辑器 │ │ Agent SDK │ │ 终端工具 │ │
│ │ Cursor │ │ OpenAI SDK │ │ Herdr │ │
│ │ Windsurf │ │ Claude SDK │ │ tmux │ │
│ │ Cline │ │ OpenClaw │ │ zellij │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ↑ ↑ ↑ │
│ │ ┌────┘ │ │
│ │ ┌────┴────┐ │ │
│ │ │ Agent │────────────────┘ │
│ │ │ 框架 │ │
│ │ │ CrewAI │ │
│ │ │ AutoGen │ │
│ │ └─────────┘ │
│ └────────────────────────────────── │
│ Coding Agent 运行时 │
│ Claude Code / Codex / Gemini CLI │
└─────────────────────────────────────────────────────────────────┘
与其他工具的关系:
| 工具 | 关系 | 说明 |
|---|---|---|
| Claude Code Agent Teams | 竞争 + 互补 | Anthropic 官方的多 Agent 编排方案,绑定 Claude 生态;Herdr 是模型无关的 |
| OpenClaw | 互补 | OpenClaw 是 Agent 运行时框架;Herdr 提供 Agent 运行的终端环境 |
| Cursor / Windsurf | 不同赛道 | 它们是 AI 编辑器(图形界面);Herdr 是终端工具(命令行界面) |
| CrewAI / AutoGen | 不同层次 | 它们是 Agent 编排框架(SDK 层);Herdr 是终端工作空间(运行环境层) |
Herdr 是目前唯一一个以 Agent 为一等公民的终端工作空间管理器。它不是在 tmux 上面包一层壳,而是从零开始为 AI Agent 设计的终端环境。这意味着 Agent 的需求不是「附加功能」,而是「核心架构决策」。
3.5 Herdr 的发展历程
Herdr 从 2025 年中期开始开发,经历了快速的迭代演进:
timeline
title Herdr 发展历程
2025-06 : 0.1.0 首次发布<br/>基本的终端分屏
2025-08 : 0.3.0 引入 PTY 管理<br/>支持 detach/reconnect
2025-10 : 0.5.0 Agent 状态检测<br/>侧边栏 UI
2025-12 : 0.6.0 多 Agent 编排<br/>工作区概念
2026-02 : 0.7.0 鼠标支持完善<br/>Agent Skills 集成
2026-04 : 0.7.5 当前稳定版<br/>Windows Beta<br/>社区生态成熟
3.5.1 版本演进的意义
| 版本阶段 | 核心变化 | 设计哲学 |
|---|---|---|
| 0.1 - 0.3 | 从「终端复用器」到「可分离的工作空间」 | 先解决基本的窗口管理和会话持久化 |
| 0.4 - 0.5 | 从「通用终端」到「Agent 感知终端」 | 引入 Agent 状态检测,这是与 tmux 的分水岭 |
| 0.6 - 0.7 | 从「单 Agent 管理」到「多 Agent 编排」 | 工作区概念成熟,支持异构 Agent 团队 |
| 0.7.5+ | 从「极客工具」到「主流工具」 | 降低学习门槛,完善文档,Windows 支持 |
- 新手用户:直接安装最新的 0.7.5 stable 版本
- 尝鲜用户:可以使用 preview 频道获取最新功能
- 企业用户:建议等待 1.0 正式版,目前 API 可能有小幅变动
3.6 适用场景与不适用场景
3.6.1 ✅ 适合使用 Herdr 的场景
| 场景 | 描述 | 典型工作流 |
|---|---|---|
| 多 Agent 协作开发 | 同时运行 2+ 个 Coding Agent | Claude 写代码 + Codex 写文档 + 测试自动跑 |
| 长时间 Agent 任务 | Agent 任务运行时间 > 10 分钟 | 重构大型模块、批量修改、迁移框架 |
| 服务器端 Agent | 在远程服务器上运行 Agent | SSH 到服务器 → 启动 Herdr → 运行 Agent → 断开 |
| CI/CD 与 Agent 结合 | 在持续集成中使用 Agent | Agent 自动修复 lint 错误、自动生成测试 |
| 原型开发 | 快速验证想法 | 启动多个 Agent,每个尝试不同方案 |
| 代码审查自动化 | Agent 辅助的代码审查 | Agent 分析 PR + 人工最终确认 |
| 教学与演示 | 展示 Agent 的工作过程 | 学生可以实时看到每个 Agent 的状态 |
3.6.2 ❌ 不适合使用 Herdr 的场景
- 不需要 AI Agent 的场景:如果你只是需要一个终端复用器,tmux 更轻量、更稳定
- 资源极度受限的环境:Herdr 比 tmux 多消耗约 30-50MB 内存,在嵌入式设备上可能不合适
- 需要严格合规的环境:Herdr 会分析终端输出来检测 Agent 状态,某些合规要求可能不允许这种行为
- Windows 独占的工作流:Windows 支持仍处于 Beta 阶段,部分功能可能不稳定
- 只需要单个 Agent 的简单任务:如果只有一个 Agent 在运行,直接在终端里跑就行
3.7 本章小结
让我们回顾一下本章的核心要点:
- Herdr 是什么:专为 Coding Agent 设计的终端工作空间管理器
- 核心区别:传统终端管理「窗口」,Herdr 管理「Agent 工作流」
- 三大核心能力:
- Agent 状态检测——实时感知每个 Agent 的状态
- 真实终端 Pane——非 headless,可实时交互
- 混合模型组队——不绑定任何单一模型
- 定位:在 AI 编程生态中,Herdr 是 Agent 的「终端操作系统」
- 当前版本:0.7.5(stable),1.0 即将发布
3.8 延伸阅读
- Herdr 官方文档:https://herdr.dev/docs
- Herdr GitHub 仓库:https://github.com/herdrdev/herdr
- tmux 与 Herdr 迁移指南:https://herdr.dev/docs/migration/from-tmux
- Agent 状态检测技术白皮书:https://herdr.dev/blog/state-detection
- 社区 Discord:https://discord.gg/herdr
下一章,我们将正式开始动手——安装 Herdr 并完成初始配置。