README“detach without stopping work”说明后台服务器会保留终端并恢复保存的布局
Herdr:让编码代理在可重连终端里持续协作
给运行Claude Code等编码代理的人用的终端运行时,断线后能重连并统一管理多台机器。
🧭 决策指南
为什么现在热: 无法从材料判断
适合,如果你
-
你经常关闭客户端或断开SSH,但仍要保留Claude Code、Codex的工作布局
-
你在本机和多台SSH机器上同时运行编码代理README“several machines, one window”说明本地工作与保存的SSH机器共享代理列表并独立重连
-
你希望代理通过CLI或Socket API创建窗格并等待其他代理阻塞README“agent-native”明确列出spawn panes、prompt each other和等待blocked代理
不适合,如果你
-
你要求服务器或机器重启后原有代理进程本身继续存活README明确写出“the original processes do not survive”
-
你的Windows环境属于端点保护场景,且不接受Windows Beta路径安装章节将endpoint-protected Windows单独链接到windows-beta文档
-
你只需要单机、单终端的简单代理启动,不需要布局恢复或多机列表README的核心功能集中在后台会话、保存布局、SSH机器和代理状态管理
前置条件
- 需要一个可用终端;README称herdr“runs in whatever terminal you already use”。
- 需要按README安装herdr,例如curl安装脚本、Homebrew、mise或Windows PowerShell路径。
- 若使用远程机器,需要README所述的保存SSH机器与独立重连能力。
- 开发源码需要Rust构建链;README development章节使用cargo build --release。
第一步命令(README 原文)
curl -fsSL https://herdr.dev/install.sh | sh
要注意
-
机器重启后不要把布局恢复误认为原进程恢复,README明确排除原进程存活README“session state”描述保存布局和支持的代理会话恢复,同时写明原进程不会存活
-
Windows端点保护用户需查看windows-beta文档,而非只执行通用安装命令install章节把endpoint-protected Windows链接到https://herdr.dev/docs/windows-beta/
-
代理接入不是自动包装,README要求构建代理者阅读add herdr support文档README写明herdr“不 wrap or replace”现有代理,并提供add herdr support链接
替代方案
-
tmux:只需要经典终端复用,不需要herdr的代理状态、Socket API或多机代理列表时更直接README中的“tmux-style prefix keys”与通用领域知识
材料未说明
- README没有说明支持的Claude Code、Codex、Cursor、OpenCode或Grok版本。
- README没有给出CPU、内存、磁盘或网络带宽要求。
- README没有说明服务器重启后哪些具体代理属于“supported agent sessions”。
- README没有提供Windows Beta的稳定性范围、限制或正式发布日期。
- README没有说明SSH认证方式、端口配置和远程机器数量上限。
- README没有给出Socket API的认证、权限控制和兼容性细节。
- README没有说明插件市场中的插件数量、维护状态或安全审核机制。
- README没有提供v0.9.5相对前一版本的变更内容。
💡 深度解析
6
视情况
我需要机器重启后恢复保存的窗格布局和部分代理会话;herdr 能否保证原来的 Claude Code 或 Codex 进程继续执行?
适合读者: 需要在机器重启后恢复工作区、但不能接受代理进程被误认为持续运行的开发者
视情况,herdr 能恢复布局和部分受支持的代理会话,但不能保证原始 Claude Code 或 Codex 进程跨重启存活。
- README 明确写出机器或服务器重启后会恢复 saved layout,并且“can resume supported agent sessions”。
- 同一句话也明确限定:“the original processes do not survive”,因此这不是完整的进程级检查点或任务永生机制。
- 恢复能力依赖代理是否属于 supported agent,以及是否保存了对应会话状态;README 列出了 Claude Code、Codex、Cursor、OpenCode 和 Grok,但没有逐一说明恢复覆盖范围。
因此,如果你的约束是恢复可视化工作区,项目匹配;如果约束是让原进程无缝继续执行,则不匹配。
- README:detach without stopping work — “after a server or machine restart, herdr restores the saved layout and can resume supported agent sessions; the original processes do not survive”
- README:runs what you already run — “claude code, codex, cursor, opencode, grok and the rest”
- 项目洞察:usage limitations — “跨重启恢复能力并非完整进程级恢复”
herdr
适合
我已经使用 Claude Code、Cursor 和 OpenCode,团队不想迁移到新的代理封装层;herdr 会不会替换或重写这些代理?
适合读者: 正在维护现有 Claude Code、Cursor 和 OpenCode 工作流、又不想更换代理运行方式的软件工程师
适合,因为 README 明确表示 herdr 不封装或替换现有代理,而是负责拥有并管理它们的终端。
- “runs what you already run”直接列出 Claude Code、Cursor、OpenCode、Codex 和 Grok,说明目标是承载既有工具。
- README 原文是“herdr doesn’t wrap or replace them; it owns their terminals”,因此迁移重点是把代理放入 herdr 窗格,而不是改写代理调用方式。
- 项目还提供 tmux 风格快捷键,以及鼠标点击、拖动和分屏,已有终端工作流不必完全改成图形化操作。
不过,通用终端承载不等于所有代理都具备完整状态识别、会话恢复或 agent-native 控制;这些能力是否可用,取决于具体代理的集成支持。
- README:runs what you already run — “herdr doesn't wrap or replace them; it owns their terminals”
- README:runs what you already run — “claude code, codex, cursor, opencode, grok and the rest”
- README:keyboard and mouse, both first-class — “tmux-style prefix keys and click, drag, split”
herdr
适合
我正在构建一个编码代理,希望它能通过 CLI 和 Socket API 创建窗格、提示其他代理并等待阻塞状态;herdr 是否提供这种控制面?
适合读者: 正在构建编码代理、希望让代理通过 CLI 和 Socket API 创建窗格并协调其他代理的工具开发者
适合,因为 agent-native 能力就是 herdr 的明确设计目标,并且 README 提供了对应文档入口。
- “agent-native”说明代理可通过 CLI 和 Socket API 驱动 herdr,而不只是被动运行在终端里。
- README 明确列出三类动作:spawn panes、prompt each other、wait until another agent is genuinely blocked,与你的编排需求直接对应。
- 文档目录包含 “agent skill”“add herdr support” 和 “socket api”,说明项目为代理集成提供了专门接口,而不是仅依赖人工键盘操作。
- 插件机制还允许扩展窗格和工作流。
但 README 没有给出 API schema、认证模型、错误返回、版本兼容策略或循环等待保护;这些信息不足以判断它能否直接满足生产级编排要求。
- README:agent-native — “agents drive herdr through the cli and socket api: they can spawn panes, prompt each other, and wait until another agent is genuinely blocked”
- README:docs — “agent skill” · “add herdr support” · “socket api”
- README:plugins — “extend panes and workflows”
git clone https://github.com/herdrdev/herdr
适合
我通过 SSH 连接云主机,同时运行 Claude Code 和 Codex;如果本地终端关闭或 SSH 断开,我能否继续管理这些代理?
适合读者: 通过 SSH 连接云主机、同时运行 Claude Code 和 Codex 的远程开发者
适合,因为它明确把终端生命周期与代理工作区分离,重点解决 SSH 断开和多代理并行管理。
- README 的“detach without stopping work”说明,关闭客户端或 SSH 连接丢失后,终端仍由后台服务器运行。
- “several machines, one window”支持把本地工作区和保存的 SSH 机器放在同一界面,并提供独立重连。
- 项目明确兼容 Claude Code、Codex,并提供 working、blocked、idle 状态,便于识别需要回应的窗格。
但它不会修复云主机不可达、SSH 认证失效或远程资源不足等问题;远程连接配置、重连行为和多代理同时运行时的资源消耗,README 没有给出具体限制。
- README:detach without stopping work — “herdr keeps terminals running in a background server when you close the client or lose your SSH connection”
- README:several machines, one window — “keep local work and saved ssh machines together, with a combined agent list and independent reconnects”
- README:runs what you already run — “claude code, codex, cursor, opencode, grok and the rest”
curl -fsSL https://herdr.dev/install.sh | sh
适合
我熟悉 tmux 的键盘操作,但需要同时观察多个代理的 working、blocked 和 idle 状态;herdr 是否会迫使我改用纯鼠标或完整桌面界面?
适合读者: 习惯 tmux 快捷键、同时想用鼠标和状态视图管理多个编码代理的终端高级用户
适合,因为 herdr 同时保留 tmux 风格键盘操作和鼠标交互,并把代理状态直接显示在窗格上。
- README 的 “keyboard and mouse, both first-class” 明确支持 tmux-style prefix keys,以及 click、drag、split,说明键盘工作流不会被取消。
- “never hunt for the stuck one”说明每个窗格会标记 working、blocked 或 idle,代理停止并等待回答时会提示用户。
- 项目定位是终端运行时和 workspace manager,而不是 Electron 桌面应用;README 强调“one rust binary, no electron”。
但状态标记不代表所有代理都能被准确识别。项目洞察指出,不同代理的输出格式和交互模式可能影响阻塞检测;README 也未列出每个代理的识别规则或误报处理方式。
- README:keyboard and mouse, both first-class — “tmux-style prefix keys and click, drag, split”
- README:never hunt for the stuck one — “every pane is marked working, blocked, or idle”
- README:one rust binary, no electron
- 项目洞察:common pitfalls — “不同代理的输出格式、交互模式和阻塞识别能力可能不同”
herdr
视情况
我需要在 Linux、macOS 和受端点保护的 Windows 环境部署同一个终端工具;herdr 的单二进制方式是否足够稳定?
适合读者: 在 Windows 端点保护环境中部署终端工具、同时需要 Linux 和 macOS 安装路径的开发者
视情况,herdr 的交付方式适合跨平台统一部署,但受端点保护的 Windows 场景仍需要单独验证。
- README 将其描述为“one rust binary, no electron”,并说明可运行在用户已有的终端中,减少 Electron 运行时依赖。
- 安装章节同时提供 Linux/macOS 的 Shell 安装、Homebrew、mise、Windows PowerShell 安装和 binaries 下载路径。
- README 还单独链接 “endpoint-protected Windows”,项目洞察则指出 Windows Beta 路径可能存在企业兼容性或部署限制。
- 项目数据表明主语言是 Rust,代码量绝大多数集中于 Rust,交付架构相对统一。
因此普通跨平台安装较匹配;若企业策略禁止远程脚本、限制执行策略或拦截未验证二进制,README 没有足够信息证明可直接部署。
- README:one rust binary, no electron — “runs in whatever terminal you already use”
- README:install — “brew install herdr · mise use -g herdr · windows: powershell ... · endpoint-protected Windows · binaries”
- 项目数据:main_language 为 Rust;language_distribution 中 Rust 为 11926094
- 项目洞察:usage limitations — “Windows Beta 路径”可能存在企业兼容性或部署限制
brew install herdr
✨ 核心亮点
-
Rust单二进制,无Electron,直接运行在现有终端
-
SSH断线后保留终端,重连可恢复保存的布局
-
统一管理本机与SSH机器上的Claude Code、Codex
-
CLI和Socket API支持代理创建窗格、互相提示
🔧 工程化
-
用Ctrl+B Q分离,重新运行herdr即可重新连接会话
-
每个窗格标记working、blocked或idle,显示代理是否等待回答
-
支持Claude Code、Codex、Cursor、OpenCode和Grok原终端
-
插件可扩展窗格与工作流,键盘和鼠标均可操作
⚠️ 风险
-
重启后只能恢复支持的代理会话,原进程不会存活
-
Windows端点保护场景仍单列为Windows Beta文档
-
README未列出Claude Code等代理的具体支持版本
👥 适合谁?
-
需要长期运行Claude Code或Codex的终端开发者
-
通过SSH管理多台机器并想统一查看代理状态的团队
-
正在构建代理并需要CLI或Socket API集成的开发者