hermes-desktop README

The project's README from github.com/fathah/hermes-desktop. As one markdown file: README.md.

HERMES DESKTOP

Twitter Discord License: MIT Releases Stars Downloads Downloads

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

Star History Rank

This project is in active development. Features may change, and some things might break. If you run into a problem or have an idea, open an issue. Contributions are welcome!

Hermes One is a community maintained native desktop app for installing, configuring, and chatting with Hermes Agent — a self-improving AI assistant with tool use, multi-platform messaging, and a closed learning loop.

Instead of managing the CLI by hand, the app walks through install, provider setup, and day-to-day usage in one place. It uses the official Hermes install script, stores Hermes in ~/.hermes, and gives you a GUI for chat, sessions, profiles, memory, skills, tools, scheduling, messaging gateways, and more.

ko-fi

Sponsors

Want to appear here?

Click to collapse
Atlas Cloud Atlas Cloud is a full-modal, OpenAI-compatible AI inference platform. Use it in Hermes One by selecting Atlas Cloud as your provider. The base URL is pre-configured automatically.
Greptile Greptile is an AI code reviewer. It reviews and tests pull requests with full context of the codebase. It catches bugs, flags regressions, and leaves inline review comments on every PR automatically.

Install

Download Now

Windows

Windows users: The installer is not code-signed. Windows SmartScreen will warn on first launch — click "More info" → "Run anyway".

WSL users: If the installer stalls at Switching to root user to install dependencies..., Playwright is waiting for a sudo password that has no TTY to read from. Grant passwordless sudo for the install, then revert when finished:

echo "$USER ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/hermes-install
# …re-run the installer; once it finishes:
sudo rm /etc/sudoers.d/hermes-install

Tracked in #109.

Fedora (RPM)
sudo dnf install ./hermes-desktop-<version>.rpm

Fedora users: The .rpm is not GPG-signed. If your system enforces signature checking, append --nogpgcheck to the install command. Auto-update is not supported for .rpm builds (limitation of electron-updater); reinstall the new .rpm to update.

Preview

Chat
Chat
Profiles
Profiles
Models
Models
Providers
Providers
Tools
Tools
Discover
Skills
Schedules
Schedules
Gateway
Gateway
Persona
Persona
Kanban
Kanban
Office
Office
Settings
Settings

Features

How It Works

On first launch, the app:

  1. Asks whether you want to run Hermes locally or connect to a remote Hermes API server.
  2. Local mode: checks whether Hermes is already installed in ~/.hermes; if not, runs the official Hermes installer with dependency resolution (Git, uv, Python 3.11+).
  3. Remote mode: prompts for the remote API URL and API key, validates the connection, and skips local install.
  4. Prompts for an API provider or local model endpoint.
  5. Saves provider config and API keys through Hermes config files.
  6. Launches the main workspace once setup is complete.

In local mode, chat requests go through http://127.0.0.1:8642 with SSE streaming. In remote mode, the app talks to your configured remote URL with the same streaming protocol. The desktop app parses the stream in real time, rendering tool progress, markdown content, and token usage as it arrives.

Screens

Screen Description
Chat Streaming conversation UI with slash commands, tool progress, and token tracking
Sessions Browse, search, and resume past conversations
Agents Create, delete, and switch between Hermes profiles
Skills Browse, install, and manage bundled and installed skills
Models Manage saved model configurations per provider
Memory View/edit memory entries, user profile, and configure memory providers
Soul Edit the active profile's persona (SOUL.md)
Tools Enable or disable individual toolsets
Schedules Create and manage cron jobs with delivery targets
Gateway Configure and control messaging platform integrations
Office Claw3d visual interface setup and management
Settings Provider config, credential pools, backup/import, log viewer, network settings, theme

Supported Providers

Sponsors

Provider Notes
Atlas Cloud OpenAI-compatible gateway — DeepSeek, Qwen, GLM, Kimi, MiniMax and more (atlascloud.ai)

LLM Providers

Provider Notes
OpenRouter 200+ models via single API (recommended)
Anthropic Direct Claude access
OpenAI Direct GPT access
Google (Gemini) Google AI Studio
xAI (Grok) Grok models
Nous Portal Free tier available
Qwen QwenAI models
MiniMax Global and China endpoints
Hugging Face 20+ open models via HF Inference
Groq Fast inference (voice/STT)
Local/Custom Any OpenAI-compatible endpoint

Local presets are included for LM Studio, Atomic Chat, Ollama, vLLM, and llama.cpp.

Messaging Platforms

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

Tool Integrations

Exa Search, Parallel API, Tavily, Firecrawl, FAL.ai (image generation), Honcho, Browserbase, Weights & Biases, and Tinker.

First-Time Setup

When the app opens for the first time, it will either detect an existing Hermes installation or offer to install it for you.

Supported setup paths in the UI:

Local presets are included for:

Hermes files are managed in:

Secrets provider

By default, API keys live in ~/.hermes/.env (the env provider). No configuration is needed — this is byte-for-byte the historical behavior, and nothing changes for you.

If you'd rather not keep keys in a plaintext .env, the opt-in command provider resolves them by running a helper command you configure. Resolution order everywhere is: process.env → .env → provider → unset.

Per-key helper (the requested key name arrives as $HERMES_SECRET_KEY):

# ~/.hermes/config.yaml
secrets:
  provider: command
  command: secret-tool lookup hermes "$HERMES_SECRET_KEY"

Or a helper that dumps a dotenv blob (e.g. a vault that unseals into tmpfs):

secrets:
  provider: command
  command: "cat /run/user/1000/hermes-secrets.env"

The helper's stdout may be either a single bare value (per-key helpers) or KEY=VALUE lines (dotenv dumps); both shapes are auto-detected.

Vault / secret manager integration (no TPM required)

The command provider is vault-agnostic — it runs whatever helper you configure and reads its stdout. The helper is the only thing that needs to talk to your secret store. If you don't have a TPM-sealed keyfile, any of these work without code changes to Hermes:

The point: any helper that prints a value (per-key) or a dotenv blob (list-mode) on stdout will work, and Hermes imposes a 3-second timeout and 1 MiB output cap on the helper so a misbehaving one can't wedge the app. The provider makes no assumptions about TPM, FIDO2, smart cards, or platform keychains.

Security model:

Source of truth: src/main/secrets/.

Notes

Contributing

Contributions are welcome! Check out the Contributing Guide to get started. If you're not sure where to begin, take a look at the open issues. Found a bug or have a feature request? File an issue.

This repo is not affiliated to Nous Research. This is a community maintained project.

For the core agent, docs, and CLI workflows, see the main Hermes Agent repository:

hermes-desktop (fathah/hermes-desktop)

Searching Database…

What is this?Hermes One is a community-maintained native desktop app for installing, configuring, and chatting with Hermes Agent — a self-improving AI assistant with tool use, multi-platform messaging, and a closed learning loop.
Is this a separate AI, or a desktop shell around the Hermes Agent CLI?It's a GUI companion, not its own AI: the upstream Hermes Agent project provides agent behavior and tool execution, while the app adds install, provider setup, chat, sessions, memory, skills, and scheduling screens.
How do I get it running?Install the desktop app and launch it: on first run it detects an existing Hermes install or runs the official Hermes installer (pulling in Git, uv, Python 3.11+), then walks you through provider setup in the GUI.
Do I need a paid API key, or can it run on local models?Either. It supports OpenRouter (200+ models, recommended), Anthropic, OpenAI, Gemini, Grok, Qwen, Groq and more — or any local OpenAI-compatible server like Ollama, LM Studio, vLLM or llama.cpp, which need no API key.
Any install gotchas I should know about?A few: the Windows installer is unsigned, so SmartScreen will warn (choose 'More info' → 'Run anyway'), and the Fedora .rpm is not GPG-signed — add --nogpgcheck. .rpm builds also can't auto-update, so you reinstall to upgrade.
Which operating systems does it support?Windows, macOS, and Linux — it's an Electron app. The README's install guides call out Windows and Fedora (RPM) specifics, and updates ship via electron-updater (except .rpm builds).
Does the agent have to run on my machine, or can I point the app at a remote server?Either. Local mode talks to Hermes on 127.0.0.1:8642; remote mode takes a URL + API key for a remote Hermes API server, validates the connection, and skips the local install entirely.
Where do my API keys and chat history end up?Keys default to plaintext ~/.hermes/.env; an opt-in command provider can fetch them from KeePassXC, GnuPG, pass or 1Password instead — POSIX-only, Windows stays on .env. Chat history lives in a local SQLite database (~/.hermes/state.db).
What can the agent actually do from the chat window?22 slash commands (/web, /image, /code, /shell, /usage, /model...) and 14 toolsets — browser, terminal, file operations, code execution, vision, image generation, TTS, task planning and more — with streaming replies, tool progress, and live token and cost tracking.
Can I message my agent from Telegram or Discord instead of the app?Yes — the Gateway screen configures any of 16 platforms: Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Email, SMS via Twilio or Vonage, iMessage, DingTalk, Feishu, WeCom, WeChat, Webhooks, and Home Assistant. Cron-style schedules can deliver results to 15 targets.
Is this the official Hermes app from Nous Research?No — the README states the repo is not affiliated with Nous Research; it's community-maintained. It does depend on the upstream Hermes Agent project, which it installs and drives under the hood.
Does the agent remember things between conversations?Yes — there's a dedicated Memory screen for viewing and editing memory entries and user-profile memory, with pluggable providers like Honcho, Mem0, RetainDB, Supermemory and ByteRover. Past sessions are searchable (SQLite FTS5) and resumable.
Creator
fathah
Size
35.6 MB
Stars
14.4K
Age
6mo
Commits · 90 Days