Hermes 生态三个 UI 客户端深度对比分析报告¶
研究日期:2026-05-02 上游项目:NousResearch/hermes-agent
一、项目概览¶
| 维度 | hermes-workspace | hermes-desktop | hermes-hudui |
|---|---|---|---|
| 仓库 | outsourc-e/hermes-workspace | fathah/hermes-desktop | joeynyc/hermes-hudui |
| 定位 | Web 工作区(浏览器/PWA) | 原生桌面应用 | 监控仪表盘 |
| 版本 | v2.1.3 | v0.2.2 | v0.1.0 |
| 许可证 | MIT | MIT | MIT |
| 核心形态 | 浏览器 Web App | Electron 桌面端 | Web Dashboard |
| 与 Agent 关系 | 对接 Hermes Agent 网关 | 自动安装并管理 Hermes Agent | 被动读取 ~/.hermes 目录 |
三者共享同一个上游项目 Hermes Agent,但与 Agent 的交互模式完全不同: - Workspace 和 Desktop 是主动型客户端 —— 发送消息、执行命令 - HUDUI 是被动型监控 —— 只读取数据、展示仪表盘
二、技术栈对比¶
| 技术层面 | hermes-workspace | hermes-desktop | hermes-hudui |
|---|---|---|---|
| 运行环境 | 浏览器 + Node.js 服务端 | Electron 应用 | Python FastAPI + 浏览器 |
| 前端框架 | React 19 | React 19 | React 19 |
| 路由 | TanStack Router | 状态机路由 | react-router-dom |
| 状态管理 | Zustand | Electron IPC | SWR(服务端状态) |
| 样式 | Tailwind CSS 4 | Tailwind CSS 4 | Tailwind CSS 4 |
| 构建工具 | Vite 7 + TanStack Start | electron-vite 5 | Vite 8 |
| 后端 | Node.js (SSR) | Electron 主进程 (Node.js) | Python FastAPI + WebSocket |
| 数据存储 | Agent 网关 API | better-sqlite3 (FTS5) | 直接读取文件系统 |
| 实时通信 | SSE | SSE | WebSocket |
| 安装复杂度 | pnpm install | 下载安装包 | install.sh (Python venv + npm) |
架构差异的深层含义: - Workspace 是 SSR 应用(TanStack Start),服务端渲染 + API 路由都在 Node.js 层 - Desktop 是 Electron 三层架构(Main → Preload → Renderer),有本地 SQLite 数据库 - HUDUI 是 Python+React 分离架构,后端直接读
~/.hermes文件系统,前端通过 SWR 轮询
三、功能对比¶
3.1 核心功能矩阵¶
| 功能 | workspace | desktop | hudui |
|---|---|---|---|
| 聊天 | ✅ SSE 流式 | ✅ SSE 流式 | ❌ |
| 多会话管理 | ✅ | ✅ | ✅ 只读浏览 |
| 文件浏览/编辑 | ✅ Monaco Editor | ❌ | ❌ |
| 终端 | ✅ xterm.js + PTY | ❌ | ❌ |
| Memory 浏览/编辑 | ✅ | ✅ | ✅ 只读 + 统计 |
| Skills 浏览/管理 | ✅ 2000+ 注册表 | ✅ 安装/卸载 | ✅ 只读 + 统计 |
| Cron 定时任务 | ✅ | ✅ 可视化构建器 | ✅ 只读 |
| 模型切换 | ✅ | ✅ 11 个提供商 | ❌ 只读配置 |
| 消息网关 | ❌ | ✅ 16 个平台 | ❌ |
| 多 Profile | ✅ | ✅ | ✅ 对比视图 |
| SOUL.md 编辑 | ❌ | ✅ | ❌ |
| 14 个工具集管理 | ❌ | ✅ 开关控制 | ❌ |
| Dashboard | ✅ 基础 | ❌ | ✅ 核心功能 |
| Token 成本追踪 | ❌ 基础 | ✅ 实时 | ✅ 按模型细分 |
| 使用模式分析 | ❌ | ❌ | ✅ Pattern 分析 |
| Timeline 时间线 | ❌ | ❌ | ✅ 事件时间线 |
| 项目监控 | ❌ | ❌ | ✅ Git 项目追踪 |
| Snapshot 快照 | ❌ | ❌ | ✅ 变化追踪 |
| Command Palette | ✅ | ❌ | ✅ |
| PWA 安装 | ✅ | ❌ (原生桌面) | ❌ |
| Mobile 支持 | ✅ Tailscale | ❌ | ❌ |
| 多 Agent 编排 | ✅ Swarm 模式 | ❌ | ❌ |
| 国际化 | ❌ | ✅ i18next | ❌ |
| 自动更新 | ❌ | ✅ electron-updater | ❌ |
| Claw3d 3D 界面 | ❌ | ✅ | ❌ |
| 自动安装 Agent | ❌ | ✅ | ❌ |
3.2 各自独有优势¶
hermes-workspace 独有: - 文件浏览器 + Monaco 代码编辑器 - PTY 终端 - Swarm 多 Agent 编排 - PWA 移动端支持 - 8 主题系统
hermes-desktop 独有: - 16 个消息网关(Telegram/Discord/微信等) - 14 个工具集开关管理 - SOUL.md 人格编辑器 - 自动安装/管理 Hermes Agent - Claw3d 3D 可视化 - 桌面通知 + 系统托盘 - 11 个 LLM 提供商配置 - SQLite FTS5 全文搜索
hermes-hudui 独有: - 使用模式分析(Prompt Patterns / Repeated Prompts / Task Clusters) - Token 成本按模型细分(含 cache/reasoning 定价) - 事件时间线 - Git 项目活跃度追踪 - Snapshot 快照 + 变化追踪 - 实时文件监控(watchfiles) + WebSocket 推送 - 健康状态面板
四、优缺点详细分析¶
4.1 hermes-workspace¶
优点: - 功能最全面的工作区,聊天+文件+终端一站式 - 支持任何 OpenAI 兼容后端(不绑定 Hermes Agent) - PWA 可安装在手机上,通过 Tailscale 远程访问 - Swarm 多 Agent 编排(开发团队场景) - Docker 一键部署 - 活跃维护,组件丰富(100+ React 组件)
缺点: - 需要 Node.js 22+,运行环境要求高 - 没有 Token 成本详细分析 - 没有桌面原生体验(通知、托盘等) - 消息网关支持缺失(不能接 Telegram/Discord) - 没有 SOUL.md 编辑器 - 不自动安装/管理 Agent
4.2 hermes-desktop¶
优点: - 真正的原生桌面体验(通知、托盘、自动启动) - 自动安装 Hermes Agent,零配置上手 - 16 个消息网关 = 把 AI 助手接入所有聊天平台 - 11 个 LLM 提供商 + 4 个本地模型预设 - SQLite 本地数据库,会话搜索速度快 - 工具集管理、人格编辑、定时任务可视化构建器 - 支持 macOS/Linux/Windows 三平台
缺点: - Electron 包体积大(通常 100MB+) - 没有文件浏览器和终端 - 没有 Dashboard/成本分析/使用模式分析 - 没有多 Agent 编排能力 - 不支持 Mobile - 版本还较早(v0.2.2),可能不够稳定 - 内存占用较高(Electron 通病)
4.3 hermes-hudui¶
优点:
- 独特的监控/分析视角——其他两个完全没有的能力
- Token 成本分析极其精细(按模型、按天、含 cache/reasoning)
- 使用模式洞察(发现重复 Prompt → 可提取为 Skill)
- 实时文件监控 + WebSocket 推送,数据总是最新
- 零侵入:只读取 ~/.hermes 目录,不修改任何数据
- 轻量级:Python FastAPI + React,资源消耗低
- 代码简洁,容易理解和扩展
缺点: - 只读——不能聊天、不能编辑 Memory、不能管理 Skill - 没有 Agent 交互能力 - 版本极早期(v0.1.0) - 没有终端、文件编辑器 - 没有 Mobile 支持 - 前端组件较少,UI 较为朴素 - 不支持 PWA
五、能否同时使用?¶
结论:完全可以且互补
三个客户端不冲突,它们读取/写入 Hermes Agent 的不同接口和路径:
- Workspace 通过 HTTP API 与 Agent 网关通信(端口 8642)
- Desktop 也通过 HTTP API 通信(同端口 8642),但可降级到 CLI 模式
- HUDUI 只读取 ~/.hermes 文件系统,不与 Agent 直接通信
┌─────────────────┐
│ Hermes Agent │
│ (~/.hermes) │
│ 端口 8642 │
└───────┬─────────┘
│
┌─────────────────┼─────────────────┐
│ HTTP/SSE │ HTTP/SSE │ 文件系统读取
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Workspace │ │ Desktop │ │ HUDUI │
│ 端口 3000 │ │ Electron App │ │ 端口 3001 │
│ │ │ │ │ │
│ - 聊天 │ │ - 聊天 │ │ - Dashboard │
│ - 文件编辑 │ │ - 消息网关 │ │ - 成本分析 │
│ - 终端 │ │ - 工具管理 │ │ - 模式洞察 │
│ - Agent 编排 │ │ - SOUL 编辑 │ │ - 项目监控 │
└───────────────┘ └───────────────┘ └───────────────┘
三者端口不同、协议不同、读写模式不同,完全可以同时运行,互不干扰。
推荐组合方案¶
| 场景 | 推荐组合 | 理由 |
|---|---|---|
| 日常主力 | Desktop 单独使用 | 最完整的一站式体验:聊天+网关+工具+定时任务 |
| 开发者 | Workspace + HUDUI | 代码编辑+终端+文件管理,配合成本分析和使用模式洞察 |
| 重度用户 | Desktop + HUDUI | Desktop 做日常交互,HUDUI 做后台监控和成本分析 |
| 全栈方案 | 三者同时使用 | Desktop 接消息网关、Workspace 做开发、HUDUI 做监控 |
六、总结建议¶
| 如果你最看重... | 选择 |
|---|---|
| 一站式完整功能 | hermes-desktop |
| Web 开发工作区 + 代码编辑 | hermes-workspace |
| 成本分析 + 使用洞察 | hermes-hudui |
| 消息平台集成(微信/TG) | hermes-desktop |
| 移动端访问 | hermes-workspace(PWA + Tailscale) |
| 多 Agent 团队协作 | hermes-workspace(Swarm 模式) |
| 监控 Agent 运行状态 | hermes-hudui |
七、基于当前环境的 3 种安装方案¶
环境信息:macOS / Hermes Agent 已安装 (
~/.hermes) / Docker 29.4 / Python 3.14 / Node.js 25 / pnpm 10
方案 A:Docker Compose 一体化(推荐)¶
适合:想最省事、一键管理所有服务
# 1. Workspace(自带 docker-compose.yml)
git clone https://github.com/outsourc-e/hermes-workspace.git
cd hermes-workspace
cp .env.example .env
# 编辑 .env,设置 HERMES_API_URL 和 API Key
docker compose up -d
# → Agent 端口 8642 + Workspace 端口 3000
# 2. HUDUI(本地安装,需要挂载 ~/.hermes)
cd ..
git clone https://github.com/joeynyc/hermes-hudui.git
cd hermes-hudui
./install.sh
source venv/bin/activate
hermes-hudui
# → HUDUI 端口 3001
优点:Workspace + Agent 容器化管理,重启不丢状态
注意:HUDUI 需要读 ~/.hermes,所以必须本地跑,不能放进容器
方案 B:全部本地安装¶
适合:不想用 Docker、想完全掌控每个组件
# 1. 确保 Hermes Agent 网关运行
hermes --gateway
# → 端口 8642
# 2. Workspace
git clone https://github.com/outsourc-e/hermes-workspace.git
cd hermes-workspace
pnpm install
echo 'HERMES_API_URL=http://127.0.0.1:8642' > .env
pnpm dev
# → 端口 3000
# 3. HUDUI(另一个终端)
git clone https://github.com/joeynyc/hermes-hudui.git
cd hermes-hudui
./install.sh
source venv/bin/activate
hermes-hudui
# → 端口 3001
优点:调试方便,资源占用最少,三个服务完全透明 注意:需要开 3 个终端窗口(或用 tmux)
方案 C:Desktop 安装包 + HUDUI 本地¶
适合:想要原生桌面体验 + 监控仪表盘
# 1. Desktop(下载安装包)
# macOS: 去 GitHub Releases 下载 .dmg
# https://github.com/fathah/hermes-desktop/releases
# 安装后打开,它会自动检测已有的 ~/.hermes
# → 不占用端口,通过 Agent 8642 通信
# 2. HUDUI(本地安装)
git clone https://github.com/joeynyc/hermes-hudui.git
cd hermes-hudui
./install.sh
source venv/bin/activate
hermes-hudui
# → 端口 3001,监控 Desktop 的使用数据
优点:Desktop 自动管理 Agent 生命周期,HUDUI 在后台监控 注意:Desktop 是 Electron 应用,内存占用较大
方案快速对比¶
| 方案 A (Docker) | 方案 B (全本地) | 方案 C (Desktop) | |
|---|---|---|---|
| Workspace | ✅ Docker | ✅ pnpm dev | ❌ |
| Desktop | ❌ | ❌ | ✅ .dmg |
| HUDUI | ✅ 本地 | ✅ 本地 | ✅ 本地 |
| 终端窗口数 | 2 | 3 | 1 |
| 资源占用 | 中 | 低 | 高 |
| 上手难度 | 低 | 中 | 低 |
已有
~/.hermes且 Agent 在运行,所以: - 不需要重新安装 Agent(方案 A 的 Docker Agent 容器和本地 Agent 二选一即可) - HUDUI 直接就能读state.db和memories/目录,零配置 - 三个方案都可以随时切换,互不冲突