Herdr:一个终端,统御一切

Hacker News Top 工具

摘要

Herdr 是一个终端复用器,能让开发者在单独的终端中运行多个编程代理,无论是在任何机器上还是通过SSH,并且一目了然地查看持久会话。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/07 20:14

# Herdr:一个终端管理所有代理 来源:https://herdr.dev/ 代理多路复用器 · 一个二进制程序,而非一个应用 在任意设备上,甚至通过 SSH,从单个终端运行你所有的编码代理。每个代理都在自己真正的终端中运行,且运行在一个服务器上,当你合上笔记本时仍会保持存活。一目了然地查看**阻塞**、**工作中**和**已完成**的状态,并从你的手机重新连接。 稳定版安装 $`curl \-fsSL https://herdr\.dev/install\.sh \| sh` PowerShell\>`irm https://herdr\.dev/install\.ps1 \| iex` 稳定版 Linux/macOS · Windows 预览测试版 · 无需 Electron,无需账户,无遥测 opencodeherdr\+ ✻**Claude Code**v2\.1\.168 ~/Projects/herdr · master **❯**当代理快速切换状态时,侧边栏会闪烁 ● 找到原因了。rollup 在每个 PTY 数据块上都会重新计算,所以两次状态切换会在帧中间重绘圆点。 ● 计划: · src/app/state\.rs — 每个 tick 缓冲状态事件 · src/ui/sidebar\.rs — 每帧重新绘制 rollup **❯**继续,并添加一个回归测试 ⠋工作中...(13m 36s· 按 esc 中断) **❯** ~/Projects/herdr \> master \> ctx ─── 3% 34k/1M \>\> 绕过权限(按 Shift+Tab 切换) ~/Projects/herdr*master* **❯**bunrun dev $ node scripts/prepare\-docs\.mjs && astro dev 02:10:44\[types\]生成完成 0ms 02:10:44\[content\]内容已同步 astrov5\.18\.1在 668 ms 内准备就绪 ┃ Localhttp://localhost:4321/ Network 使用 --host 以暴露 02:10:44正在监听文件变更... \+ 思考:468ms → 读取 src/main\.rs \+ 思考:292ms 这是 src/main\.rs —— **herdr** 的入口点。它会执行以下操作: 1. 参数解析 —— session::configure\_from\_args,然后为 SSH 桥接解析远程参数。 2. 子命令分发 —— server、client、update —— 每个都会提前返回。 3. 会话模式 —— auto\_detect\_launch\(\) 连接到正在运行的服务器或启动一个新服务器。 构建 · MiMo V2\.5 Free · 16\.6s 构建· MiMo V2\.5 Free OpenCode Zen 25\.2K \(13%\) ctrl\+p 命令 迁移日志\+ ✻**Claude Code**v2\.1\.168 ~/Projects/llm\-proxy · master **❯**准备请求日志迁移并执行 ● 编写了 migrations/0007\_request\_log\.sql —— request\_log 表,基于 created\_at 的保留索引,每日 rollup 视图。 ● 本地检查通过:sqlx prepare 干净,回填试运行涉及 41,209 行。准备应用。 **Bash 命令** cargosqlx migrate run 应用待处理的数据库迁移 是否确认继续? ❯ 1\. 是 2\. 否,并告诉 Claude 需要调整的内容 (esc) ~/Projects/llm\-proxy*master* **❯**tail\-f logs/proxy\.log 02:30:58INFO请求 id=4818 路由=/v1/messages 200 312ms 02:31:04INFO请求 id=4819 路由=/v1/messages 200 287ms 02:31:09DEBUG缓存命中率 0\.93 02:31:12INFO请求 id=4820 路由=/v1/messages 200 301ms 02:31:15WARN上游延迟 p99 1\.8s 02:31:18INFO请求 id=4821 路由=/v1/messages 200 295ms 02:31:21WARN上游返回 429,将在 2 秒后重试 02:31:24INFO请求 id=4822 路由=/v1/messages 200 1102ms 02:31:30DEBUG缓存命中率 0\.94 02:31:33INFO请求 id=4823 路由=/v1/embeddings 200 88ms codexserver\+ •**已探索** └ 读取 live\_handoff\.rs •**已运行** └ cargo nextest run \-E 'test\(live\_handoff\)' └ 14 通过 · 0 失败 · 41\.3s • 切换套件通过。窗格 PTY 在服务器替换后依然存活,长时间运行的工作负载 —— 包括下一个标签页中的 http.server —— 在之后继续响应。 • 接下来我可以将浸泡测试接入 nightly CI,并在 p95 回归时标记失败。需要这个吗? **›** gpt\-5\.5 medium · ~/qmp · master · 上下文使用 6% ~/qmp*master* **❯**python3\-m http\.server 8080 在 0\.0\.0\.0:8080 上提供 HTTP 服务... 02:28:41"GET /runs/latest\.json"200 02:29:03"GET /runs/latest\.json"200 02:29:25"GET /qmp/report\.html"200 02:30:07"GET /runs/latest\.json"200 02:30:18"GET /favicon\.ico"404 02:30:42"GET /qmp/report\.html"200 02:31:09"GET /runs/latest\.json"200 所有代理集中在一个终端。点击侧边栏,它是一个真正的布局。 # 实际使用 ## 深受以下公司工程师的喜爱 仅代表个人工程师,非公司背书。 JetBrainsJetBrains DockerDocker VercelVercel KimiKimi SentrySentry GoogleGoogle NVIDIANVIDIA AWSAWS ByteDanceByteDance TencentTencent AlibabaAlibaba SalesforceSalesforce IBMIBM AtlassianAtlassian WhopWhop AutomatticAutomattic # 为什么选择 Herdr ## 在需要的地方运行代理。从任何地方连接。 代理在需要的地方运行:一台服务器、一台 Mac Mini、一台沙箱虚拟机,任何你可以 SSH 到的地方。你从任何终端连接,甚至是一部手机。桌面代理管理器无法离开有图形界面的机器。Herdr 可以。为什么要从应用切换 → (https://herdr.dev/compare/) 本地### 你的机器 拆分窗格、创建标签页,并在终端来去时保持代理运行。 `` $ herdr `` 通过SSH### 像 tmux 一样,但在服务器上 SSH 进入并在远程 shell 上运行 Herdr。在你断开连接后会话依然存在,非常适合从手机 SSH 客户端使用。 `` $ ssh you@server $ herdr `` 瘦客户端### 原生远程连接 一个连接到远程会话的本地客户端。为你安装 Herdr 到主机,桥接本地剪贴板(包括图片粘贴),并保留你的按键绑定。 `` $ herdr --remote workbox `` # 响应式 TUI ### 当终端变小时,优先移动端适配。 Herdr 在通过手机或平板的 SSH 连接中依然可用。终端视图保持真实,而窄屏会获得一个为触屏设计的选择器。 手机上通过 SSH 的 Herdr 代理会话通过 SSH 的代理会话Herdr 在手机上的响应式切换菜单响应式切换菜单截图使用 moshi (https://getmoshi.app/)❤️ 在 iPhone 上 # 为何与众不同 ## 大多数代理管理器是应用。Herdr 是一个多路复用器。 tmux 和 Zellij 擅长持久终端会话,但不理解代理。桌面代理应用理解代理,但它们只运行在一台机器上。Herdr 在你的终端中保留了多路复用器,并使其能够感知代理。查看完整对比 → (https://herdr.dev/compare/) 不是终端模拟器Ghostty、Kitty、iTerm、Alacritty:你的终端保持不变。 不是浏览器仪表板无 Web 视图,无账户,无托管控制平面。 不仅仅是面向代理的 tmux持久性加上可点击的窗格、代理状态、一个 API。 能力tmux / Zellij代理应用工作树编排工具Herdr在终端内运行✓——✓持久 PTY 会话✓有限内嵌✓远程 SSH 连接✓有限远程项目✓语义代理状态—部分工作区状态✓直接代理连接———✓代理可对其进行编排可脚本化部分工作流所有✓ ### 在终端内运行 tmux/Zellij**✓**代理应用**—**工作树应用**—**Herdr**✓** ### 持久 PTY 会话 tmux/Zellij**✓**代理应用**有限**工作树应用**内嵌**Herdr**✓** ### 远程 SSH 连接 tmux/Zellij**✓**代理应用**有限**工作树应用**远程项目**Herdr**✓** ### 语义代理状态 tmux/Zellij**—**代理应用**部分**工作树应用**工作区状态**Herdr**✓** ### 直接代理连接 tmux/Zellij**—**代理应用**—**工作树应用**—**Herdr**✓** ### 代理可对其进行编排 tmux/Zellij**可脚本化**代理应用**部分**工作树应用**工作流所有**Herdr**✓** # 你将获得什么 ## 真正的窗格、代理状态,以及一个驱动它们的 API。 没有重建的聊天视图。真正的进程在真正的 PTY 中运行,具有可点击的布局、持久的会话,以及一个代理自己也能使用的控制界面。 ### 真正的窗格 支持鼠标的窗格、标签页和工作区。保留你的 shell、字体和按键绑定。 ### 代理状态 一眼查看整个会话中的阻塞、工作中、已完成和空闲状态。 ### 持久性 断开并重新连接。会话和代理在终端关闭后依然存活。 ### 控制界面 命令行和 JSON socket API 暴露了工作区、窗格、输出和等待操作。 `` # 创建工作区结构 herdr workspace create --cwd ~/project --label api herdr tab create --label logs # 拆分窗格并运行任务 herdr pane split 1-1 --direction right herdr pane run 1-2 "just test" # 等待、检查并继续 herdr wait agent-status 1-1 --status done herdr pane read 1-2 --source recent-unwrapped `` # 集成 ## 将你现有的代理带入集群。 Pi Claude Code Codex Droid Amp OpenCode Grok CLI Hermes Cursor Antigravity Kimi Kiro Copilot Qoder CLI MastraCode \+ 你的 (https://herdr.dev/docs/integrations/) 任何终端代理开箱即用。[集成](https://herdr.dev/docs/integrations/) 提供更丰富的状态和会话恢复能力。 # 市场 ## 构建于其上,而不仅仅是与其一起工作。 Herdr 的 CLI 和 socket API 是插件接口,因此社区插件可以像代理那样驱动它:通知器、布局预设、链接处理器、发布检查。浏览人们已经构建的内容,或通过一个 GitHub 主题发布你自己的。 # 启动集群 ## 安装 Herdr,运行两个代理,断开一次。 当你的终端消失后集群仍在运行,那第一次体验就能体现其价值。

相似文章

Herdr:运行在终端中的AI代理复用器

Hacker News Top

Herdr是一个开源的终端型AI代理复用器,用于管理多个AI代理会话,支持工作区、标签页、窗格和鼠标操作。它作为后台服务器运行,允许用户分离和重新连接,而不会丢失代理进程。

Herdr Studio

Hacker News Top

Herdr Studio 是一个社区构建的浏览器客户端,提供可视化工作空间,用于管理终端、会话、文件、差异和 Git 工作树,使开发者能够从任何现代浏览器监控和控制代理会话。

连接机器

Hacker News Top

Herdr 0.9 版本引入了多机支持,允许用户通过 SSH 从单个 TUI 界面管理和控制多台远程机器上的代理,从而提升工作流程效率。

Herdr 发布原生应用

Hacker News Top

Herdr 推出了原生桌面应用,可在空间、标签页和远程机器之间管理终端与编码智能体,并提供 Linux、macOS 和 Windows 的安装程序。