小马的 AI 工具集 给 Agent 学习

智能体桌面端

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

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

文档 Discord 许可协议: MIT 下载 星标 总下载量 下载

English · 简体中文 · 日本語 · Español (LATAM)

本项目正在积极开发中。 功能可能会变化,某些内容可能出现问题。若你遇到问题或有想法,欢迎 提交 Issue。我们欢迎任何贡献!

Hermes Desktop 是一款原生桌面应用,用于安装、配置和与 Hermes Agent 进行交互——Hermes Agent 是一个具备工具使用、多平台消息发送和闭环学习能力的自我改进型 AI 助手。

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

赞助商

Atlas Cloud

Atlas Cloud 是全模态、兼容 OpenAI 的 AI 推理平台(支持 DeepSeek、Qwen、GLM、Kimi、MiniMax 等)。在 Hermes Desktop 中选择 Atlas Cloud 作为提供商即可使用——基础 URL 已自动预配置。

安装

立即下载

Windows

Windows 用户: 安装程序未进行代码签名。Windows SmartScreen 会在首次启动时发出警告——请点击“更多信息”→“仍然运行”。

WSL 用户: 如果安装程序卡在 正在切换到 root 用户以安装依赖项...,说明 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)
  • 流式聊天界面:支持 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 人格文件
  • 已保存模型:跨提供商的模型配置的增删查改管理
  • 定时任务: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 检查并安装更新
  • 国际化就绪:包含覆盖所有屏幕的英文语言包的国际化框架,可供社区翻译
  • 测试套件:对 SSE 解析器、IPC 处理器、Preload 接口、安装工具及常量验证的 Vitest 测试

工作原理

首次启动时,应用:

  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 使用情况。

屏幕

屏幕描述
Chat带斜杠命令、工具进度和 token 追踪的流式对话界面
Sessions浏览、搜索和恢复过往对话
Agents创建、删除和切换 Hermes 配置文件
Skills浏览、安装和管理已捆绑与已安装的技能
Models管理各提供商已保存的模型配置
Memory查看/编辑记忆条目、用户画像,并配置记忆提供商
Soul编辑当前配置文件的角色设定 (SOUL.md)
Tools启用或禁用单独的工具套件
Schedules创建并管理带投递目标的定时任务
Gateway配置和控制消息平台集成
OfficeClaw3d 可视化界面的设置与管理
Settings提供商配置、凭据池、备份/导入、日志查看器、网络设置、主题

支持的提供商

赞助商

提供商备注
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)
Local/Custom任何兼容 OpenAI 的端点

本地预设包含了 LM Studio、Atomic Chat、Ollama、vLLM 和 llama.cpp。

消息平台

Telegram、Discord、Slack、WhatsApp、Signal、Matrix/Element、Mattermost、Email (IMAP/SMTP)、SMS (Twilio & Vonage)、iMessage (BlueBubbles)、DingTalk、Feishu/Lark、WeCom、WeChat (iLink Bot)、Webhooks 和 Home Assistant。

工具集成

Exa Search、Parallel API、Tavily、Firecrawl、FAL.ai(图像生成)、Honcho、Browserbase、Weights & Biases 和 Tinker。

开发

前提条件

  • Node.js 和 npm
  • 用于 Hermes 安装程序的类 Unix shell 环境
  • 首次安装时下载 Hermes 所需的网络访问

安装依赖

npm install

在开发模式下启动应用

npm run dev

运行检查

npm run lint
npm run typecheck

运行测试

npm run test
npm run test:watch

构建桌面应用

npm run build

平台打包:

npm run build:mac
npm run build:win
npm run build:linux
npm run build:rpm    # Fedora/RHEL .rpm only

首次设置

当应用首次打开时,它会检测是否已有 Hermes 安装,或者为您提供安装选项。

界面中支持的设置路径:

  • 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 → 提供商 → 未设置。

每密钥辅助命令(请求的密钥名称会通过 $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"

辅助命令的标准输出可以是单个裸值(每密钥辅助命令),也可以是 KEY=VALUE 行(dotenv 数据块);两种格式均会被自动检测。

保险库 / 密钥管理器集成(无需 TPM)

command 提供商是 与保险库无关的 — 它运行您配置的任何辅助命令并读取其标准输出。辅助命令是唯一需要与您的密钥存储通信的组件。如果您没有 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 Keyring): 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

关键点:任何在标准输出上打印值(按密钥)或 dotenv 数据块(列表模式)的帮助程序都能正常工作,Hermes 对帮助程序设置了 3 秒超时和 1 MiB 输出上限,因此运行异常的帮助程序无法阻塞应用。该提供者不对 TPM、FIDO2、智能卡或平台密钥链做任何假设。

安全模型:

  • 命令字符串属于你自己的配置——信任级别与 .env 相同。它通过 /bin/sh -c 执行,因此命令提供者仅适用于 POSIX 系统(Linux/macOS);Windows 仍使用环境提供者。
  • 帮助程序继承进程环境以及 HERMES_SECRET_KEY;密钥名称作为数据传递,绝不会插入到 shell 字符串中。
  • 严格的 3 秒超时(解析在主进程上同步执行——请保持帮助程序快速且非交互),1 MiB 输出上限,且 stderr 被丢弃。
  • 解析后的值绝不会被记录或写入磁盘;失败时降级为“密钥未设置”,仅记录退出码/信号。
  • 通过 gateway-spawn 的广播使用单次 list() 调用,绝不会使用逐密钥的帮助程序循环。

权威来源:src/main/secrets/

技术栈

  • Electron 39 — 跨平台桌面 Shell
  • React 19 — UI 框架
  • TypeScript 5.9 — 主进程与渲染器进程的类型安全
  • Tailwind CSS 4 — 实用优先的样式
  • Vite 7 + electron-vite — 快速开发服务器与构建工具
  • better-sqlite3 — 支持 FTS5 全文搜索的本地会话存储
  • i18next — 国际化框架
  • Vitest — 测试运行器

注意

  • 桌面应用依赖上游 Hermes Agent 项目来实现 agent 行为与工具执行。
  • 内置安装程序会使用 --skip-setup 运行官方的 Hermes 安装脚本,然后在 GUI 中完成提供者配置。
  • 本地模型提供者不需要 API 密钥,但兼容的服务器必须已经在运行。
  • 对于网络访问受限的环境,支持替代的 npm 注册表路由。

贡献

欢迎贡献!请查看贡献指南开始。如果你不确定从何入手,可以查看开放的 issues。发现 bug 或有功能请求?提交 issue

相关项目

有关核心 agent、文档和 CLI 工作流,请参见主 Hermes Agent 仓库:

在 GitHub 查看完整项目