小马的 AI 工具集

智能体桌面端

Hermes Agent 的原生桌面客户端,集成多模型、记忆、技能、定时任务与多种消息网关

智能体桌面端
类型 桌面应用 12,820 星标 更新 2026-06-28 许可 MIT 原仓库 主页
HERMES DESKTOP

Twitter Discord License: MIT Releases Stars Downloads Downloads

英文 · 简体中文 · 日文 · 西班牙语 (拉丁美洲)

Star History Rank

本项目正在积极开发中。 功能可能会变化,部分内容可能不稳定。如果遇到问题或有想法,请提交 issue。欢迎贡献!

Hermes One 是一款由社区维护的原生桌面应用,用于安装、配置和对话 Hermes Agent——一个自我改进的 AI 助手,具备工具使用、多平台消息和闭环学习能力。

无需手动管理 CLI,该应用一站式完成安装、提供商设置和日常使用。它使用官方 Hermes 安装脚本,将 Hermes 存储在 ~/.hermes 目录下,并提供图形界面管理聊天、会话、配置文件、记忆、技能、工具、调度、消息网关等功能。

ko-fi

赞助商

想出现在这里?

点击折叠
Atlas Cloud Atlas Cloud 是一个全模态、兼容 OpenAI 的 AI 推理平台。在 Hermes One 中选择 Atlas Cloud 作为提供商即可使用。基础 URL 会自动预配置。
Greptile 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 表面、安装程序工具及常量进行验证

工作原理

首次启动时,应用会:

  1. 询问您是想本地运行 Hermes,还是连接到远程 Hermes API 服务器。
  2. 本地模式: 检查 Hermes 是否已安装在 ~/.hermes 中;如果未安装,则运行官方 Hermes 安装程序,并解析依赖项(Git、uv、Python 3.11+)。
  3. 远程模式: 提示输入远程 API URL 和 API 密钥,验证连接,并跳过本地安装。
  4. 提示选择 API 提供商或本地模型端点。
  5. 通过 Hermes 配置文件保存提供商配置和 API 密钥。
  6. 设置完成后启动主工作区。

在本地模式下,聊天请求通过 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提供免费层级
QwenQwenAI 模型
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 中支持的设置路径:

  • OpenRouter
  • Anthropic
  • OpenAI
  • Local 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 仓库:

在 GitHub 查看完整项目