← 返回信息流
GitHub 热榜GitHub Trending · 周·4 天前

ogulcancelik发布herdr

原标题:ogulcancelik/herdr
Rust3,201 stars+923 本周

速览

herdr 是一个基于 Rust 构建的终端多路复用器,专为 AI 智能体设计。它允许用户在单个终端会话中并行运行、监控和控制多个智能体实例,实现高效的智能体协作与资源管理。

AI 深度解读

这是什么

Herdr 是一个基于 Rust 开发的终端多路复用器(Terminal Multiplexer),专为 AI 代理(AI Agents)的工作流设计。它由 ogulcancelik 维护,在 GitHub 上获得 3200+ Star。

与传统的多路复用器(如 tmuxscreen)不同,Herdr 不仅仅是一个会话管理工具,它深度集成了对 AI 代理状态的感知能力。它运行在纯终端环境中,无需 Electron 或 GUI 包装器,旨在让开发者在不离开终端的情况下,直观地监控、管理和交互多个 AI 代理进程。

解决的问题

  1. AI 代理状态黑盒化:在使用 tmux 等工具时,虽然能保持会话持久化,但无法直观看到代理是处于“思考中”、“阻塞”还是“已完成”状态。开发者往往需要反复进入窗口查看输出,效率低下。
  2. GUI 工具的上下文切换成本:许多 AI 代理管理工具提供图形界面(GUI)或 Web Dashboard,迫使开发者离开高效的命令行环境,破坏了心流状态。
  3. 会话管理的复杂性:在远程服务器或本地开发中,管理多个并行运行的代理会话、保持后台进程存活以及断线重连(Detach/Reattach)通常配置繁琐。
  4. 缺乏原生终端体验:现有方案往往是对终端输出的“重新解释”或封装,而非直接展示代理自身的终端行为,导致交互体验割裂。

核心功能

  • 代理状态感知(Agent Awareness)

    • 侧边栏实时显示代理状态:🔴 Blocked(需要输入或审批)、🟡 Working(正在运行)、🔵 Done(完成但未查看)、🟢 Idle(已完成且已查看)。
    • 默认通过进程名匹配和终端输出启发式检测状态,无需额外配置。
    • 支持 Socket API 集成,提供更可靠的状态报告。
  • 工作区与布局管理

    • Workspaces(工作区):项目级容器,通常对应 Git 仓库或文件夹。
    • Tabs(标签页):在工作区内分组管理面板。
    • Panes(面板):真实的终端进程窗口,支持鼠标拖拽分割、调整大小。
    • 支持 ctrl+b 前缀键操作,类似 tmux 的快捷键逻辑(如 n 新建工作区,v/- 垂直分割,c 新建标签页)。
  • 会话持久化与远程支持

    • Detach/Reattach:断开客户端连接后,后台服务器和面板进程继续运行。重新连接后可恢复现场。
    • 远程操作:支持通过 SSH 在远程主机运行,或从本地终端直接附加到远程服务器上的会话(herdr --remote ssh://user@host:port)。
    • 命名会话(Named Sessions):支持完全隔离的运行时状态,便于管理不同项目的环境。
  • 复制与交互优化

    • 支持拖拽选择面板文本、双击复制 Token。
    • 提供键盘复制模式(Prefix + [),支持 h/j/k/l 导航和 v/Space 开始选择。
    • 兼容 PuTTY 和 SSH 终端的 Shift+拖拽选择及 Shift+右键粘贴。
  • 更新与恢复机制

    • 支持 herdr update 升级二进制文件。
    • 实验性的 --handoff 功能尝试在更新时将前台进程(如开发服务器)从旧服务器迁移到新服务器。
    • 配置 resume_agents_on_restore = true 后,代理可在服务器重启后从原生会话中恢复。

亮点 / 与同类相比

| 特性 | Herdr | tmux / screen | GUI 代理管理器 (如 Cursor, Windsurf 等) | | :--- | :--- | :--- | :--- | | 状态感知 | 原生支持,侧边栏直观显示 Blocked/Working/Done | 无,需手动检查输出 | 有,但通常嵌入在 IDE 或 Web 界面中 | | 运行环境 | 纯终端,单二进制文件,无依赖 | 纯终端 | GUI 应用,通常基于 Electron 或 Native Wrapper | | 上下文保持 | 留在终端内,不中断 CLI 工作流 | 留在终端内 | 需切换窗口或应用 | | 代理集成 | 内置对 Pi, OMP, Claude Code, Codex, OpenCode, Hermes, Qodercli 等支持 | 无 | 通常绑定特定 IDE 或平台 | | 资源占用 | 极低(Rust 编写,单二进制) | 低 | 较高(GUI 框架开销) | | 远程体验 | 优秀,支持 SSH 直连和远程附加 | 优秀 | 通常较差或需额外配置 |

核心差异化:Herdr 填补了“纯终端多路复用器”与“AI 代理状态管理”之间的空白。它既保留了 tmux 的持久化和轻量级优势,又提供了类似 GUI 的状态可视化,且完全运行在终端内部。

适合谁用 / 上手

适合人群

  • 重度 CLI 用户:习惯在终端中工作,不愿切换至图形界面的开发者。
  • AI 辅助编程实践者:同时运行多个 AI 代理(如代码生成、调试、文档编写),需要并行监控其状态。
  • 远程服务器开发者:需要在 SSH 会话中长时间运行 AI 任务,并随时断线重连。
  • Rust/Go 开发者:对底层工具链和性能敏感的技术人员。

上手指南

  1. 安装

    # 使用官方安装脚本
    curl -fsSL https://herdr.dev/install.sh | sh
    
    # 或使用 Homebrew (macOS/Linux)
    brew install herdr
    
  2. 快速启动: 进入工作目录,直接运行:

    herdr
    

    Herdr 会自动启动后台服务器并附加到当前会话。

  3. 基本操作

    • ctrl+b 进入前缀模式。
    • shift+n:创建新工作区。
    • v-:垂直分割面板。
    • c:新建标签页。
    • q:断开客户端连接(后台进程继续运行)。
    • 再次运行 herdr 即可重新附加。
  4. 集成代理: 安装特定代理的集成以增强状态报告:

    herdr integration install claude
    herdr integration install codex
    
  5. 配置: 配置文件位于 ~/.config/herdr/config.toml,可自定义主题(支持 Catppuccin, Tokyo Night 等 18 种主题)、快捷键和通知行为。

查看原文 →github.com