智能体桌面端
Hermes Agent 的原生桌面客户端,集成多模型、记忆、技能、定时任务与多种消息网关
英文 · 简体中文 · 日文 · 西班牙语 (拉丁美洲)
本项目正在积极开发中。 功能可能会变化,部分内容可能不稳定。如果遇到问题或有想法,请提交 issue。欢迎贡献!
Hermes One 是一款由社区维护的原生桌面应用,用于安装、配置和对话 Hermes Agent——一个自我改进的 AI 助手,具备工具使用、多平台消息和闭环学习能力。
无需手动管理 CLI,该应用一站式完成安装、提供商设置和日常使用。它使用官方 Hermes 安装脚本,将 Hermes 存储在 ~/.hermes 目录下,并提供图形界面管理聊天、会话、配置文件、记忆、技能、工具、调度、消息网关等功能。
赞助商
点击折叠
![]() |
Atlas Cloud 是一个全模态、兼容 OpenAI 的 AI 推理平台。在 Hermes One 中选择 Atlas Cloud 作为提供商即可使用。基础 URL 会自动预配置。 |
![]() |
Greptile 是一款 AI 代码审查工具。它能基于代码库的完整上下文审查和测试拉取请求,自动发现错误、标记回归问题,并在每次 PR 中留下内联审查评论。 |
安装
Windows
Windows 用户: 安装程序未经代码签名。Windows SmartScreen 会在首次启动时发出警告——请点击“更多信息” → “仍要运行”。
WSL 用户: 如果安装程序在
Switching to root user to install dependencies...处卡住,说明 Playwright 正在等待 sudo 密码但缺少 TTY 输入。请暂时为安装过程授予无密码 sudo 权限,完成后恢复:echo "$USER ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/hermes-install # …重新运行安装程序;完成后: sudo rm /etc/sudoers.d/hermes-install相关跟踪: #109。
Fedora (RPM)
sudo dnf install ./hermes-desktop-<版本>.rpm
Fedora 用户:
.rpm包未经 GPG 签名。如果系统强制要求签名检查,请在安装命令后追加--nogpgcheck。.rpm构建版本不支持自动更新(受electron-updater限制);更新时请重新安装新的.rpm文件。
预览
聊天![]() |
配置文件![]() |
模型![]() |
提供商![]() |
工具![]() |
发现![]() |
计划![]() |
网关![]() |
角色![]() |
看板![]() |
办公![]() |
设置![]() |
功能特性
- 引导式首次运行安装,适用于 Hermes Agent,包含进度跟踪和依赖项解析
- 本地或远程后端 — 在
127.0.0.1:8642上本地运行 Hermes,或通过 URL + API 密钥将桌面应用连接到远程 Hermes API 服务器 - 多提供商支持 — OpenRouter、Anthropic、OpenAI、Google (Gemini)、xAI (Grok)、Nous Portal、Qwen、MiniMax、Hugging Face、Groq,以及本地兼容 OpenAI 的端点(LM Studio、Atomic Chat、Ollama、vLLM、llama.cpp)
- 流式聊天 UI,支持 SSE 流式传输、工具进度指示器、Markdown 渲染和语法高亮
- Token 用量跟踪 — 聊天页脚实时显示提示/补全 token 数量及费用,并支持
/usage斜杠命令 - 22 个斜杠命令 —
/new、/clear、/fast、/web、/image、/browse、/code、/shell、/usage、/help、/tools、/skills、/model、/memory、/persona、/version、/compact、/compress、/undo、/retry、/debug、/status等 - 会话管理 — 全文搜索(SQLite FTS5)、按日期分组的历史记录、对话恢复与搜索
- 配置文件切换 — 创建、删除和切换不同的 Hermes 环境,每个环境拥有独立的配置
- 14 个工具集 — 网络、浏览器、终端、文件、代码执行、视觉、图像生成、TTS、技能、记忆、会话搜索、澄清、委派、MoA 和任务规划
- 记忆系统 — 查看/编辑记忆条目、用户配置文件记忆、容量跟踪,以及可发现的记忆提供商(Honcho、Hindsight、Mem0、RetainDB、Supermemory、ByteRover)
- 角色编辑器 — 编辑和重置智能体的 SOUL.md 角色设定
- 已保存模型 — 跨提供商的模型配置 CRUD 管理
- 定时任务 — Cron 任务构建器(分钟、每小时、每天、每周、自定义 Cron),支持 15 个投递目标
- 16 个消息网关 — Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost、电子邮件(IMAP/SMTP)、短信(Twilio/Vonage)、iMessage(BlueBubbles)、钉钉、飞书/Lark、企业微信、微信(iLink Bot)、Webhooks、Home Assistant
- Hermes Office (Claw3d) — 可视化 3D 界面,包含开发服务器和适配器管理
- 备份、导入与调试导出 — 从设置中执行完整数据备份/恢复及系统诊断
- 日志查看器 — 直接从设置界面查看网关和智能体日志
- 自动更新 — 通过 electron-updater 检查并安装更新
- 国际化就绪 — 国际化框架,英文语言覆盖所有界面,支持社区翻译
- 测试套件 — 使用 Vitest 对 SSE 解析器、IPC 处理器、预加载 API 表面、安装程序工具及常量进行验证
工作原理
首次启动时,应用会:
- 询问您是想本地运行 Hermes,还是连接到远程 Hermes API 服务器。
- 本地模式: 检查 Hermes 是否已安装在
~/.hermes中;如果未安装,则运行官方 Hermes 安装程序,并解析依赖项(Git、uv、Python 3.11+)。 - 远程模式: 提示输入远程 API URL 和 API 密钥,验证连接,并跳过本地安装。
- 提示选择 API 提供商或本地模型端点。
- 通过 Hermes 配置文件保存提供商配置和 API 密钥。
- 设置完成后启动主工作区。
在本地模式下,聊天请求通过 http://127.0.0.1:8642 进行 SSE 流式传输。在远程模式下,应用使用相同的流式传输协议与您配置的远程 URL 通信。桌面应用实时解析流,在传输过程中渲染工具进度、Markdown 内容和 token 用量。
界面一览
| 界面 | 描述 |
|---|---|
| 聊天 | 流式对话界面,支持斜杠命令、工具进度和 token 跟踪 |
| 会话 | 浏览、搜索和恢复过去的对话 |
| 智能体 | 创建、删除和切换 Hermes 配置文件 |
| 技能 | 浏览、安装和管理捆绑及已安装的技能 |
| 模型 | 管理每个提供商的已保存模型配置 |
| 记忆 | 查看/编辑记忆条目、用户配置文件,并配置记忆提供商 |
| 灵魂 | 编辑当前配置文件的角色(SOUL.md) |
| 工具 | 启用或禁用单个工具集 |
| 计划 | 创建和管理包含投递目标的 Cron 任务 |
| 网关 | 配置和控制消息平台集成 |
| 办公室 | Claw3d 可视化界面设置与管理 |
| 设置 | 提供商配置、凭据池、备份/导入、日志查看器、网络设置、主题 |
支持的提供商
赞助商
| 提供商 | 说明 |
|---|---|
| Atlas Cloud | 兼容 OpenAI 的网关 — DeepSeek、Qwen、GLM、Kimi、MiniMax 等(atlascloud.ai) |
LLM 提供商
| 提供商 | 说明 |
|---|---|
| OpenRouter | 通过单一 API 访问 200+ 模型(推荐) |
| Anthropic | 直接访问 Claude |
| OpenAI | 直接访问 GPT |
| Google (Gemini) | Google AI Studio |
| xAI (Grok) | Grok 模型 |
| Nous Portal | 提供免费层级 |
| Qwen | QwenAI 模型 |
| MiniMax | 全球和中国端点 |
| Hugging Face | 通过 HF Inference 访问 20+ 开源模型 |
| Groq | 快速推理(语音/STT) |
| 本地/自定义 | 任何兼容 OpenAI 的端点 |
内置了 LM Studio、Atomic Chat、Ollama、vLLM 和 llama.cpp 的本地预设。
消息平台
Telegram、Discord、Slack、WhatsApp、Signal、Matrix/Element、Mattermost、电子邮件(IMAP/SMTP)、短信(Twilio & Vonage)、iMessage(BlueBubbles)、钉钉、飞书/Lark、企业微信、微信(iLink Bot)、Webhooks 和 Home Assistant。
工具集成
Exa Search、Parallel API、Tavily、Firecrawl、FAL.ai(图像生成)、Honcho、Browserbase、Weights & Biases 和 Tinker。
首次设置
当应用首次打开时,它会检测已有的 Hermes 安装,或者主动为你安装。
UI 中支持的设置路径:
OpenRouterAnthropicOpenAILocal LLM通过兼容 OpenAI 的基础 URL
已包含的本地预设方案:
- LM Studio
- Atomic Chat
- Ollama
- vLLM
- llama.cpp
Hermes 文件的管理位置:
~/.hermes~/.hermes/.env~/.hermes/config.yaml~/.hermes/hermes-agent~/.hermes/profiles/— 命名的配置文件目录~/.hermes/state.db— 会话历史数据库~/.hermes/cron/jobs.json— 计划任务
密钥提供器
默认情况下,API 密钥存储在 ~/.hermes/.env 中(env 提供器)。无需任何配置——这与历史行为逐字节一致,对你没有任何变化。
如果你不希望将密钥保存在明文 .env 中,可以选择 command 提供器,它通过运行你配置的辅助命令来解析密钥。所有地方的解析顺序为:process.env → .env → provider → unset。
每个密钥的辅助命令(请求的密钥名称作为 $HERMES_SECRET_KEY 传入):
# ~/.hermes/config.yaml
secrets:
provider: command
command: secret-tool lookup hermes "$HERMES_SECRET_KEY"
或者一个输出 dotenv 数据块的辅助命令(例如,解封到 tmpfs 的保险库):
secrets:
provider: command
command: "cat /run/user/1000/hermes-secrets.env"
辅助命令的 stdout 可以是单个裸值(每个密钥的辅助命令),也可以是 KEY=VALUE 行(dotenv 数据块);两种形式都会被自动检测。
保险库/密钥管理器集成(无需 TPM)
command 提供器是保险库无关的——它运行你配置的任何辅助命令并读取其 stdout。辅助命令是唯一需要与你的密钥存储交互的组件。如果你没有 TPM 密封的密钥文件,以下方法都无需修改 Hermes 代码即可使用:
- KeePassXC(仅密码数据库,无密钥文件): 将
secrets.command指向一个小的kpxc-export.sh脚本,该脚本执行keepassxc-cli ls ~/secrets/hermes.kdbx <<<"$KPXC_PASSWORD",并将相关组导出为 dotenv。每次会话提示用户输入一次主密码。 - GnuPG(仅使用口令密钥):
gpg --batch --passphrase-fd 0 --decrypt ~/.keys/api-keys.gpg可直接作为command的值。通过文件描述符或环境变量传递口令,切勿通过 argv。 pass(标准 Unix 密码管理器): 对于每个密钥的辅助命令,使用command: "pass show hermes/$HERMES_SECRET_KEY",或者使用一个小的封装脚本进行 dotenv 导出。secret-tool(libsecret/Gnome 密钥环):command: "secret-tool lookup hermes $HERMES_SECRET_KEY"(已经作为典型的每个密钥示例展示在上面)。- Bitwarden CLI:
bw get item "$HERMES_SECRET_KEY" | jq -r .notes(在会话中执行bw unlock之后)。 - 1Password CLI:
op read "op://vault/$HERMES_SECRET_KEY/credential"。 - 带有用户管理权限的纯环境文件:
command: "cat ~/.config/hermes/secrets.env",设置chmod 600并且文件归你的用户所有。不如保险库安全,但比全局可读的.env好。
要点:任何在 stdout 上打印值(每个密钥)或 dotenv 数据块(列表模式)的辅助命令都能工作,Hermes 对辅助命令施加了 3 秒超时和 1 MiB 输出上限,防止行为异常的辅助命令阻塞应用。该提供器不对 TPM、FIDO2、智能卡或平台密钥链做任何假设。
安全模型:
- 命令字符串是你自己的配置——与
.env具有相同的信任级别。它通过/bin/sh -c运行,因此 command 提供器仅适用于 POSIX 环境(Linux/macOS);Windows 仍使用 env 提供器。 - 辅助命令继承进程环境以及
HERMES_SECRET_KEY;密钥名称作为数据传递,绝不会被插值到 shell 字符串中。 - 强制 3 秒超时(解析在主进程中同步执行——请保持辅助命令快速且非交互),1 MiB 输出上限,stderr 被丢弃。
- 已解析的值永远不会被记录或写入磁盘;失败时退化为“密钥未设置”,仅记录退出代码/信号。
- 网关派生的广播使用单个
list()调用,绝不使用每个密钥的辅助命令循环。
Source of truth: src/main/secrets/.
说明
- 桌面应用依赖上游的 Hermes Agent 项目来实现代理行为和工具执行。
- 内置安装程序使用
--skip-setup参数运行官方 Hermes 安装脚本,然后在 GUI 中完成提供器配置。 - 本地模型提供器不需要 API 密钥,但兼容的服务器必须已在运行。
- 对于网络访问受限的环境,支持使用备用的 npm 仓库路径。
如何贡献
欢迎贡献!请查阅贡献指南开始。如果你不确定从何入手,可以查看公开的问题。发现 bug 或有功能请求?请提交 issue。
相关项目
此仓库与 Nous Research 无关。这是一个社区维护的项目。
关于核心代理、文档和 CLI 工作流,请参见主要的 Hermes Agent 仓库:















