herdr 终端工作区管理器:为 AI 编程智能体而生的运行时
一句话定位
herdr 是「the runtime your coding agents live on」——给 AI 编程智能体用的运行时,单个 Rust 二进制,不依赖 Electron,直接跑在你已经在用的终端里。
仓库:github.com/herdrdev/herdr(Apache-2.0,当前版本 0.9.1)。官网:herdr.dev。
它不是另一个包装 Claude/Codex 的工具,而是持有它们的真实终端:shell、日志、提示符、运行中的进程都原样保留,herdr 在上面叠加「工作区 / 标签页 / 窗格 / 智能体」结构和一套为多智能体协作设计的状态面板。
它解决了哪些痛点
我过去同时跑 Claude Code、Codex、Cursor 几个智能体时,遇到过这些很真实的痛点,herdr 几乎是为解决它们而生的:
1. 多个智能体同时跑,谁在等你?
终端里开三四个窗格跑智能体,最大的痛苦是:必须切到每个窗格看一遍,才知道谁在 working、谁在 blocked 等你点确认、谁已经 done。
herdr 给每个窗格打上状态标签,并在侧边栏按工作区聚合:
| 状态 | 含义 |
|---|---|
blocked |
智能体需要你审批 / 回答 |
working |
正在运行 |
done |
已完成,但你还没看 |
idle |
已完成或等待中,已查看过 |
unknown |
暂时无法判定 |

跨所有工作区汇总,所以你能一眼看见哪个项目需要你,而不是挨个 tab 去翻。官方把它总结成一句话:「never hunt for the stuck one」。
2. 关闭终端 / SSH 断线,正在跑的任务就废了
tmux 解决了这个问题,但 tmux 不知道你跑的是 Claude Code。herdr 在 tmux 的能力之上加了:
- 后台服务器 + 客户端模型:窗格在后台服务器里跑,客户端只是终端 UI 渲染层。
ctrl+b q分离客户端后,服务器和所有智能体继续运行。- 重新
herdr一条命令重连,原来的布局、智能体状态全部恢复。 - 服务器/机器重启后会恢复保存的布局,并可恢复受支持的智能体会话(受支持的会话可恢复,原始进程不会跨重启保留——这点要心里有数)。
3. 一台机器的本地 + 多台 SSH 远程,状态分散
项目跑在本地、构建机跑在 A 公司跳板机、CI 在 B 机器上——你得在三个地方各开一套终端。
herdr 的方案是「多台机器,一个窗口」:
- 把本地工作区和保存的 SSH 机器放进同一个客户端。
- 智能体列表跨机器汇总,独立重连。
- 一台机器卡住不会阻塞其他机器。
- 手机装任意 SSH 客户端连上去,TUI 自适应窄屏,等于免费获得了手机端支持(官方推荐 iPhone 用 moshi)。
4. 智能体之间不会协作
这是 herdr 最独特的设计点:智能体也能用 herdr。
它暴露了纯 socket API:智能体可以创建窗格、读取输出、互相发消息、等待另一个智能体进入 blocked。换句话说,Claude Code 可以主动 spawn 一个 Codex 窗格,让它处理某类任务,等它 blocked 时再过去接——多智能体协作编排有了一个原生的运行时底座。
它不开箱即用充当 Claude 的「主脑」,但给所有 agent 提供了一个平等的、协议化的舞台。
5. tmux 太老派,VSCode 终端又太重
tmux 的力量毋庸置疑,但鼠标体验几乎为零;VSCode / Cursor 集成的终端在你 SSH 到远端时基本不可用。herdr 的策略是两头都要:
- 鼠标一等公民:点击切焦点、拖动分割边框、拖选文本即复制到剪贴板、双击选词、右键菜单。
Ctrl+点击打开窗格内链接(OSC 8、http://、https://,包括换行截断的链接)。 - 键盘一等公民:tmux 风格的
ctrl+b前缀键,prefix+v竖向分屏、prefix+minus横向分屏、prefix+c新建标签页、prefix+w工作区导航、prefix+shift+n新建工作区、prefix+q分离客户端。 - 按
prefix+?看所有生效绑定;按prefix+[进入复制模式用键盘复制。
6. 想扩展一点自定义逻辑
支持插件市场 herdr.dev/plugins,可以在不改动核心的前提下扩展窗格和工作流。
7. 单二进制
Rust 写成,单文件、无 Electron、不挑终端。Linux / macOS / Windows 全平台稳定通道二进制。安装 ≈ 30 秒。
支持哪些智能体
官方表里给出了完整清单(2026-09 的 0.9.1 版本):Claude Code、Codex、Cursor Agent CLI、Grok CLI、OpenCode、Pi、Kimi Code CLI、Qwen Code、Letta Code、Droid、Kilo Code CLI、MastraCode、GitHub Copilot CLI、Devin CLI、Qoder CLI、Amp、Kiro CLI、Maki、Muse、Antigravity CLI、Hermes Agent……
外加「可检测但测试较少」的 Gemini CLI 和 Cline。
关键概念:每个智能体有一个「状态权威」——是安装的集成钩子,还是屏幕清单兜底。这是为什么 herdr 能在不打断你原本 CLI 工作流的情况下,准确告诉你哪个智能体真的在等你。
安装
官方提供了五种安装方式,按你的环境选一个:
方式一:官方安装脚本(推荐)
macOS / Linux:
1 | curl -fsSL https://herdr.dev/install.sh | sh |
Windows PowerShell:
1 | powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex" |
如果端点安全软件拦截了无文件 PowerShell,改用 CMD:
1 | curl.exe -fsSLo install.cmd https://herdr.dev/install.cmd && install.cmd && del install.cmd |
安装器会下载匹配平台的二进制并放到 PATH。默认走稳定更新通道。
方式二:Homebrew(macOS / Linux)
1 | brew install herdr |
方式三:mise
1 | mise use -g herdr |
如果报错 herdr not found in mise tool registry,先升级 mise。临时兜底:mise use -g github:herdrdev/herdr。
方式四:Nix
1 | nix run github:herdrdev/herdr/v0.9.1 |
把 v0.9.1 换成最新 release tag。省略 tag 会跟踪 master,但日常使用建议固定到 release。
方式五:手动下载二进制
从 GitHub releases 按平台挑:
| 系统 | 产物 |
|---|---|
| Linux x86_64 | herdr-linux-x86_64 |
| Linux aarch64 | herdr-linux-aarch64 |
| macOS Intel | herdr-macos-x86_64 |
| macOS Apple Silicon | herdr-macos-aarch64 |
| Windows x86_64 | herdr-windows-x86_64.zip |
Linux/macOS 给可执行权限后丢进 PATH:
1 | chmod +x herdr-linux-x86_64 |
Windows 解压后保留整个目录(不要只复制 herdr.exe,因为它依赖同目录的 ConPTY 运行时)。
验证安装
1 | herdr |
能起 UI 就 OK。找不到命令就重启终端或检查 PATH。
更新
herdr 会自动检查并在应用内提示。手动:
1 | herdr update |
切预览通道(拿到 master 上的修复,接受可能回归):
1 | herdr channel set preview |
Homebrew / mise / Nix 安装请用各自的包管理器更新,不要用 herdr update。
快速开始
第一次启动
在工作所在的目录里跑:
1 | herdr |
herdr 会启动或连接到你的默认后台会话。你不需要手动管 socket。即使分离,智能体也会继续运行。
第一次会提示新建一个工作区——给每个活跃项目一个独立的工作区,侧边栏的智能体状态才清楚。
用鼠标(最直观)
- 点击窗格 / 标签页 / 工作区 / 智能体来聚焦
- 拖分割边框调大小
- 右键打开上下文菜单(分屏 / 新标签页等)
- 拖选文本即自动复制到剪贴板(不用 Ctrl+C)
- 双击选词;按住第二次点击并拖动按整词扩展选择
Ctrl+点击打开窗格内链接
在窗格里跑智能体
1 | claude |
也可以是 codex、pi、opencode、cursor-agent、grok 或任何受支持的智能体。herdr 自动检测,侧边栏会立刻出现一条 working / blocked 的智能体记录。
键盘前缀操作(可选)
按 ctrl+b 进入前缀模式,再按一个动作键。常用:
| 动作 | 按键 |
|---|---|
| 向右分割 | prefix+v |
| 向下分割 | prefix+minus |
| 新建标签页 | prefix+c |
| 下一个 / 上一个标签页 | prefix+n / prefix+p |
| 工作区导航 | prefix+w |
| 新建工作区 | prefix+shift+n |
| 分离客户端 | prefix+q |
按 prefix+? 看当前所有绑定;按 prefix+[ 进入复制模式用键盘选中文本。
分离与回来
1 | # 分离:所有智能体继续在后台跑 |
命名会话(多套独立运行时)
1 | herdr session list |
每个命名会话是独立的窗格、socket、持久化状态。日常推荐按工作区划分,只有在需要完全独立的运行时命名空间时再用命名会话。
多机器
1 | herdr machine add prod "ssh [email protected]" |
常用命令一次记下来:
1 | herdr # 启动 / 重连默认会话 |
它和 tmux / Zellij / VSCode 终端的关系
简单对比:
| 维度 | tmux / Zellij | VSCode / Cursor 集成终端 | herdr |
|---|---|---|---|
| 跨 SSH / 客户端断开保持会话 | ✅ | ❌ | ✅ |
| AI 智能体状态面板 | ❌ | 部分有(仅本机) | ✅(含跨机器汇总) |
| 智能体之间 socket 协作 | ❌ | ❌ | ✅ |
| 鼠标体验 | 弱(tmux)/ 中(Zellij) | ✅ | ✅ |
| tmux 风格前缀键 | ✅ | ❌ | ✅ |
| 多机器统一视图 | ❌ | ❌ | ✅ |
| 单文件二进制、无 Electron | ✅(tmux)/ 中(Zellij) | ❌ | ✅ |
| 远程手机可用 | SSH 上去手动 | ❌ | ✅(任何 SSH 客户端) |
如果你只用 Vim + 一个智能体、从不 SSH,tmux 已经够了。
如果你同时跑 ≥2 个智能体、经常在本地和远程切,herdr 的智能体状态面板和跨机器视图是决定性优势。
一些值得注意的细节
- 会保留原始进程:herdr 不会包装或替换 Claude / Codex / Cursor,它「owns their terminals」——这是它的设计哲学。所以你升级智能体、换模型、改提示词都不影响 herdr。
- 持久化不等于无限续命:服务器 / 机器重启后会恢复布局,并可恢复受支持的智能体会话;但原始进程不会跨重启保留(这点官方也写明了)。重要的长任务仍要靠智能体自身的会话续命能力。
- socket API 是核心:CLI、插件、第三方 agent 都能用同一个 API 操控 herdr,所以它更像一个协议层,而不仅是个 TUI。
- 状态准确度有差异:有完整生命周期钩子的智能体(Pi、OpenCode、Kimi Code 等安装集成后)状态最准;只有屏幕清单的智能体偶尔会把罕见的新提示形态判成
idle——这是有意识的「从严」设计,避免误判后给你发输入。
总结
herdr 把「终端复用器」这件事在 AI 编程时代重新做了一遍:
- 多智能体并发:状态面板一目了然,谁在等你不再靠猜。
- 跨断线 / 跨重启:后台服务器 + 会话恢复,离线不再是事故。
- 跨本地 + 远程:统一窗口、独立重连、手机也能用。
- 智能体原生:socket API 让智能体之间能协调,不只是 UI。
- 不抢饭碗:不替换你的智能体,只持有它们的终端。
安装一条命令、上手十分钟。如果你现在同时跑 ≥2 个 AI 编程智能体,强烈建议给它一周时间——大概率回不去。
- 仓库:https://github.com/herdrdev/herdr
- 官网与文档:https://herdr.dev/docs
- 中文文档:https://herdr.dev/zh-cn/docs
- 中文快速开始:https://herdr.dev/zh-cn/docs/quick-start/
- 中文安装指南:https://herdr.dev/zh-cn/docs/install/
本文基于 herdr 0.9.1(2026-09-16 发布)。项目仍在快速迭代,建议装好后跑
herdr update跟版本。