penso/herdr-gpui
Native client for Herdr on macOS, Linux, and Windows, built with Rust and GPUI. View terminal sessions, workspaces, Git worktrees, and agent activity through your local Herdr daemon.
概述
Herdr UI 是一个用 Rust 和 GPUI 框架编写的原生桌面客户端,用于与 Herdr 守护进程(在后台运行基于终端的 AI 编码代理、工作区和分屏窗格的服务)进行交互。无需打开单独的终端模拟器,Herdr UI 直接在图形窗口中渲染守护进程的终端单元格,并添加了丰富的侧边栏、标签页、分屏布局以及鼠标/键盘交互。
适用人群
- 运行 AI 驱动的编码代理的开发者(例如,编写代码、运行测试或浏览网页的代理),希望有一个图形界面来监控和控制它们。
- 使用多个工作区或 Git worktree 的高级用户,希望查看每个主机的 CPU/内存,在本地和远程 SSH 机器之间切换,并从单个窗格管理代理。
- 偏好原生、跨平台 UI(macOS、Linux、Windows)而不是普通终端 UI 的用户。
核心功能(根据 README 描述)
| 功能 | 说明 |
|---|---|
| 终端渲染 | 直接在 UI 中渲染守护进程的终端单元格(包括分屏窗格),无需额外的终端模拟器。 |
| 侧边栏 | 显示主机、工作区、worktree 和 AI 代理,并带有状态点(空闲、工作中、等待中)。 |
| Worktree 管理 | 右键弹出菜单允许你创建、重命名、'传送'(移动)worktree 到其他主机、查看检查点或删除它们。 |
| 传送 | 将 worktree(包括未提交的更改、打开的标签页和正在运行的代理)移动到不同的 SSH 主机。 |
| 代理审查 | 打开代理更改的差异视图,允许你添加行级注释,并将反馈发送回代理(例如,Claude)。 |
| 浏览器集成 | 代理可以在仅限 GUI 的浏览器标签页中打开网页;你可以对元素进行注释、添加备注,并将其发送回代理。 |
| 多种布局和主题 | 从多种侧边栏密度和全套内置或 Ghostty 主题(浅色/深色、自定义)中选择。 |
| AI 使用量面板 | 显示连接的 AI 服务(例如,Claude)的使用限制,并允许你查看余额。 |
| 系统监控 | 每个主机的实时 CPU 和内存迷你图,远程机器通过 SSH 读取。 |
| 原生设置 | 主题实时预览、可搜索网格、字体/指示器/声音配置。 |
| 丰富的终端交互 | 内联图像、可点击链接、文件拖放、代码导航(跳转到符号或 path:line)、编辑器组和系统通知。 |
| Dock 徽章(macOS) | 当代理需要用户注意时显示徽章。 |
工作原理
- 你运行 Herdr 守护进程(单独安装)。守护进程拥有所有终端进程、工作区和 AI 代理。
- Herdr UI 连接 通过本地套接字(
herdr-client.sock)使用二进制协议(herdr-protocol)连接到守护进程。 - 守护进程将 表面补丁(终端单元格更新)流式传输到 UI,UI 使用 GPUI 渲染它们。
- 用户输入(键盘、鼠标、点击)被发送回守护进程,守护进程将其转发到适当的终端或代理。
- 浏览器标签页是仅限 UI 的功能;守护进程不管理它们。代理可以通过 CLI 命令打开 URL,该命令通过单独的本地套接字与 UI 通信。
安装选项
- macOS – Homebrew cask(
brew install penso/tap/herdr-gpui),以签名通用应用打开。 - Linux – 为你的发行版选择正确的
.deb、.rpm或 Arch 包的脚本;也可作为普通 tarball 使用。 - Windows – 实验性的 PowerShell 脚本,将 zip 压缩的
herdr-gpui.exe放入%LOCALAPPDATA%\Programs\Herdr UI。 - 从源代码 –
just run(带 QA 菜单的开发构建)或just install(将二进制文件安装到 Cargo 的 bin 目录)。仓库固定使用 Rust 1.96.1 和 GPUI 0.3.6。
性能与质量
- 专用的性能基准测试(
just test-perf)测量帧构建延迟。在 M4 Max Mac 上,缓存优化后悬停延迟从约 51 毫秒降至约 12 毫秒。 - CI 在 macOS、Ubuntu 24.04、Debian 13、Fedora 40 和 Arch 上运行,测试包安装、库链接和 UI 渲染。
许可证
Apache-2.0(包括对捆绑的 herdr-protocol 的额外声明)。
Herdr UI 是一个无关的第三方客户端;它本身不随附或管理 Herdr 守护进程。
相关
- 项目
- 项目
- Dispatch