fathah/hermes-desktopPublic

Desktop Companion for Hermes Agent

AI summary: A community-maintained native desktop companion app for managing the Hermes AI Agent.

Stars
14.4K
+26 today
Forks
1.6K
Watchers
80
Open issues
343
Open PRs
72
Contributors
~84
Commits
1.4K
Branches
96

TypeScriptMITCreated Apr 2, 2026Last push 10d agoLatest release v0.7.7+65 stars this week+252 this month

Quick answers

What is hermes-desktop?
A community-maintained native desktop companion app for managing the Hermes AI Agent.
What does hermes-desktop do?
Hermes Desktop is a streamlined graphical user interface that simplifies the entire lifecycle management of the Hermes Agent, a self-improving autonomous AI assistant. Instead of forcing users to rely on complex command-line scripts, it provides a unified, visual dashboard for installation, environment configuration, and daily interaction. The application securely stores the agent's core files in the user's home directory while exposing rich interfaces for managing chat sessions, persistent memory, and modular skills. Furthermore, it significantly lowers the barrier to entry by abstracting away the intricacies of LLM provider setup and tool routing.
Who is hermes-desktop for?
Hermes Desktop is designed for AI enthusiasts, researchers, and general users who want to leverage the powerful Hermes Agent without dealing with CLI complexities. It requires basic familiarity with AI concepts and access to compatible LLM API keys.
How do I get started with hermes-desktop?
Please check the releases page at https://github.com/fathah/hermes-desktop/releases/ for pre-compiled binaries.
How popular is hermes-desktop on GitHub?
fathah/hermes-desktop has 14,353 stars and 1,622 forks on GitHub, and gained 65 stars in the last 7 days.
What license does hermes-desktop use?
fathah/hermes-desktop is released under the MIT license.

Star history

since Jul 29, 2026
05K10KJul 2026Aug 2026Sep 2026Oct 2026
14.4K stars as of Oct 2, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 9 commits2026-04-03: 16 commits2026-04-04: 11 commits2026-04-05: 1 commit2026-04-06: 8 commits2026-04-07: 3 commits2026-04-08: 4 commits2026-04-09: 4 commits2026-04-10: 5 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 2 commits2026-04-14: 7 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 4 commits2026-04-21: 0 commits2026-04-22: 2 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 1 commit2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 13 commits2026-05-01: 5 commits2026-05-02: 4 commits2026-05-03: 3 commits2026-05-04: 6 commits2026-05-05: 10 commits2026-05-06: 3 commits2026-05-07: 2 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 9 commits2026-05-11: 2 commits2026-05-12: 6 commits2026-05-13: 17 commits2026-05-14: 10 commits2026-05-15: 8 commits2026-05-16: 15 commits2026-05-17: 3 commits2026-05-18: 16 commits2026-05-19: 18 commits2026-05-20: 19 commits2026-05-21: 17 commits2026-05-22: 8 commits2026-05-23: 8 commits2026-05-24: 14 commits2026-05-25: 6 commits2026-05-26: 35 commits2026-05-27: 13 commits2026-05-28: 13 commits2026-05-29: 7 commits2026-05-30: 25 commits2026-05-31: 11 commits2026-06-01: 9 commits2026-06-02: 29 commits2026-06-03: 11 commits2026-06-04: 30 commits2026-06-05: 19 commits2026-06-06: 24 commits2026-06-07: 5 commits2026-06-08: 16 commits2026-06-09: 18 commits2026-06-10: 37 commits2026-06-11: 4 commits2026-06-12: 10 commits2026-06-13: 21 commits2026-06-14: 3 commits2026-06-15: 1 commit2026-06-16: 3 commits2026-06-17: 16 commits2026-06-18: 10 commits2026-06-19: 10 commits2026-06-20: 26 commits2026-06-21: 18 commits2026-06-22: 12 commits2026-06-23: 6 commits2026-06-24: 2 commits2026-06-25: 15 commits2026-06-26: 11 commits2026-06-27: 8 commits2026-06-28: 7 commits2026-06-29: 1 commit2026-06-30: 2 commits2026-07-01: 3 commits2026-07-02: 5 commits2026-07-03: 8 commits2026-07-04: 8 commits2026-07-05: 2 commits2026-07-06: 6 commits2026-07-07: 6 commits2026-07-08: 6 commits2026-07-09: 2 commits2026-07-10: 0 commits2026-07-11: 1 commit2026-07-12: 3 commits2026-07-13: 1 commit2026-07-14: 18 commits2026-07-15: 3 commits2026-07-16: 4 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 14 commits2026-07-21: 3 commits2026-07-22: 8 commits2026-07-23: 0 commits2026-07-24: 2 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 3 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 3 commits2026-08-06: 6 commits2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 1 commit2026-08-21: 1 commit2026-08-22: 0 commits2026-08-23: 3 commits2026-08-24: 3 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 1 commit2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 1 commit2026-09-03: 7 commits2026-09-04: 5 commits2026-09-05: 0 commits2026-09-06: 0 commits2026-09-07: 11 commits2026-09-08: 2 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 22 commits2026-09-14: 10 commits2026-09-15: 0 commits2026-09-16: 2 commits2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 1 commit2026-09-25: 0 commits2026-09-26: 0 commits2026-09-27: 0 commits2026-09-28: 0 commits2026-09-29: 0 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
972 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    14,353 stars

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    3 trending appearances

What hermes-desktop does

Hermes Desktop is a streamlined graphical user interface that simplifies the entire lifecycle management of the Hermes Agent, a self-improving autonomous AI assistant. Instead of forcing users to rely on complex command-line scripts, it provides a unified, visual dashboard for installation, environment configuration, and daily interaction. The application securely stores the agent's core files in the user's home directory while exposing rich interfaces for managing chat sessions, persistent memory, and modular skills. Furthermore, it significantly lowers the barrier to entry by abstracting away the intricacies of LLM provider setup and tool routing.

Hermes Desktop is designed for AI enthusiasts, researchers, and general users who want to leverage the powerful Hermes Agent without dealing with CLI complexities. It requires basic familiarity with AI concepts and access to compatible LLM API keys.

  • Visual installation process: Replaces manual terminal commands with a guided, graphical walkthrough for downloading and setting up the official Hermes core.
  • Centralized dashboard interface: Provides a single, comprehensive view for managing active chats, historical sessions, and user profiles.
  • Modular skill management: Offers a dedicated UI for discovering, configuring, and enabling new tools and capabilities for the underlying agent.
  • Provider configuration setup: Simplifies the process of connecting the agent to various LLM APIs without requiring manual editing of configuration files.
  • Automated task scheduling: Includes built-in interfaces for setting up and managing recurring tasks and automated messaging gateways.

Where teams use it

Accessible Agent Deployment

Non-technical users utilize the desktop app to easily install and interact with the complex Hermes Agent without needing to learn bash scripting or terminal commands.

Visual Context Management

Power users leverage the dashboard to rapidly switch between different agent profiles, reviewing distinct chat histories and isolated memory banks.

Simplified Skill Expansion

Developers use the graphical interface to rapidly toggle and test new tools and plugins they are building for the Hermes ecosystem.

Automated Assistant Setup

Professionals configure the built-in scheduling and messaging gateways to turn Hermes into an autonomous background assistant for routine tasks.

Getting started: Please check the releases page at https://github.com/fathah/hermes-desktop/releases/ for pre-compiled binaries.

README

main branch

HERMES DESKTOP


Discord License: MIT Releases Stars 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

  • Guided first-run install for Hermes Agent with progress tracking and dependency resolution
  • Local or remote backend — run Hermes locally on 127.0.0.1:8642, or connect the desktop app to a remote Hermes API server with URL + API key
  • Multi-provider support — OpenRouter, Anthropic, OpenAI, Google (Gemini), xAI (Grok), Nous Portal, Qwen, MiniMax, Hugging Face, Groq, and local OpenAI-compatible endpoints (LM Studio, Atomic Chat, Ollama, vLLM, llama.cpp)
  • Streaming chat UI with SSE streaming, tool progress indicators, markdown rendering, and syntax highlighting
  • Token usage tracking — live prompt/completion token counts and cost display in the chat footer, plus a /usage slash command
  • 22 slash commands — /new, /clear, /fast, /web, /image, /browse, /code, /shell, /usage, /help, /tools, /skills, /model, /memory, /persona, /version, /compact, /compress, /undo, /retry, /debug, /status, and more
  • Session management — full-text search (SQLite FTS5), date-grouped history, resume and search across conversations
  • Profile switching — create, delete, and switch between separate Hermes environments with isolated config
  • 14 toolsets — web, browser, terminal, file, code execution, vision, image gen, TTS, skills, memory, session search, clarify, delegation, MoA, and task planning
  • Memory system — view/edit memory entries, user profile memory, capacity tracking, and discoverable memory providers (Honcho, Hindsight, Mem0, RetainDB, Supermemory, ByteRover)
  • Persona editor — edit and reset your agent's SOUL.md personality
  • Saved models — CRUD management for model configurations across providers
  • Scheduled tasks — cron job builder (minutes, hourly, daily, weekly, custom cron) with 15 delivery targets
  • 16 messaging gateways — Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost, Email (IMAP/SMTP), SMS (Twilio/Vonage), iMessage (BlueBubbles), DingTalk, Feishu/Lark, WeCom, WeChat (iLink Bot), Webhooks, Home Assistant
  • Hermes Office (Claw3d) — visual 3D interface with dev server and adapter management
  • Backup, import & debug dump — full data backup/restore and system diagnostics from Settings
  • Log viewer — view gateway and agent logs directly from the Settings screen
  • Auto-updater — check for and install updates via electron-updater
  • i18n ready — internationalization framework with English locale covering all screens, ready for community translations
  • Test suite — SSE parser, IPC handlers, preload API surface, installer utilities, and constants validation with Vitest

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:

  • OpenRouter
  • Anthropic
  • OpenAI
  • Local LLM via an OpenAI-compatible base URL

Local presets are included for:

  • LM Studio
  • Atomic Chat
  • Ollama
  • vLLM
  • llama.cpp

Hermes files are managed in:

  • ~/.hermes
  • ~/.hermes/.env
  • ~/.hermes/config.yaml
  • ~/.hermes/hermes-agent
  • ~/.hermes/profiles/ — named profile directories
  • ~/.hermes/state.db — session history database
  • ~/.hermes/cron/jobs.json — scheduled tasks

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:

  • KeePassXC (password-only DB, no keyfile): point secrets.command at a small kpxc-export.sh script that does keepassxc-cli ls ~/secrets/hermes.kdbx <<<"$KPXC_PASSWORD" and dumps the relevant group as dotenv. Prompt the user for the master password once per session.
  • GnuPG with a passphrase-only key: gpg --batch --passphrase-fd 0 --decrypt ~/.keys/api-keys.gpg works directly as the command value. Pass the passphrase via a file descriptor or env var, never argv.
  • pass (the standard unix password manager): command: "pass show hermes/$HERMES_SECRET_KEY" for a per-key helper, or a small wrapper script for a dotenv dump.
  • secret-tool (libsecret/Gnome Keyring): command: "secret-tool lookup hermes $HERMES_SECRET_KEY" (already shown above as the canonical per-key example).
  • Bitwarden CLI: bw get item "$HERMES_SECRET_KEY" | jq -r .notes (after bw unlock in the session).
  • 1Password CLI: op read "op://vault/$HERMES_SECRET_KEY/credential".
  • Plain env file with user-managed permissions: command: "cat ~/.config/hermes/secrets.env" with chmod 600 and the file owned by your user. Not as secure as a vault, but better than a world-readable .env.

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:

  • The command string is your own configuration — same trust level as .env. It runs via /bin/sh -c, so the command provider is POSIX-only (Linux/macOS); Windows stays on the env provider.
  • The helper inherits the process environment plus HERMES_SECRET_KEY; the key name is passed as data, never interpolated into the shell string.
  • Hard 3-second timeout (resolution is synchronous on the main process — keep helpers fast and non-interactive), 1 MiB output cap, and stderr is discarded.
  • Resolved values are never logged or written to disk; failures degrade to "key unset", logging only exit code/signal.
  • The gateway-spawn broadcast uses a single list() call, never a per-key helper loop.

Source of truth: src/main/secrets/.

Notes

  • The desktop app depends on the upstream Hermes Agent project for agent behavior and tool execution.
  • The built-in installer runs the official Hermes install script with --skip-setup, then completes provider configuration in the GUI.
  • Local model providers do not require an API key, but the compatible server must already be running.
  • Alternative npm registry routes are supported for environments with restricted network access.

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.

Related Project

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:

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

48 total
  1. Hermes Desktop v0.7.7v0.7.7Sep 4, 2026111.9K downloads

    ## What's Changed * fix: support Docker-backed Hermes installs in SSH mode by @dergachoff in https://github.com/fathah/hermes-desktop/pull/435 * feat(office): derive activity from running Kanban cards by @ohjy1006kenneth in https://github.com/fathah/hermes-desktop/pull/869 * fix: resolve desktop connection, session, and release issues by @fathah in https://github.com/fathah/hermes-desktop/pull/893 * Fix SPA web selector and add secure page annotations by @Nameless-Monster-Nerd in https://github.com/fathah/hermes-desktop/pull/892 * OAuth Providers not selectable by @fathah in https://github.com/fathah/hermes-desktop/pull/881 * fix(ui): align appearance settings across locales by @eachann1024 in https://github.com/fathah/hermes-desktop/pull/880 * feat: add agent compatibility and connection foundations by @fathah in https://github.com/fathah/hermes-desktop/pull/917 * fix: scope session browsing and polish chat settings UI by @fathah in https://github.com/fathah/hermes-desktop/pull/934 * fix: keep chat popovers outside beam clipping by @fathah in https://github.com/fathah/hermes-desktop/pull/935 * Harden desktop release pipeline by @fathah in https://github.com/fathah/hermes-desktop/p

  2. Hermes Desktop v0.7.7-beta.5 (beta)v0.7.7-beta.5Sep 4, 2026pre-release142 downloads

    ## What's Changed * fix: support Docker-backed Hermes installs in SSH mode by @dergachoff in https://github.com/fathah/hermes-desktop/pull/435 * feat(office): derive activity from running Kanban cards by @ohjy1006kenneth in https://github.com/fathah/hermes-desktop/pull/869 * fix: resolve desktop connection, session, and release issues by @fathah in https://github.com/fathah/hermes-desktop/pull/893 * Fix SPA web selector and add secure page annotations by @Nameless-Monster-Nerd in https://github.com/fathah/hermes-desktop/pull/892 * OAuth Providers not selectable by @fathah in https://github.com/fathah/hermes-desktop/pull/881 * fix(ui): align appearance settings across locales by @eachann1024 in https://github.com/fathah/hermes-desktop/pull/880 * feat: add agent compatibility and connection foundations by @fathah in https://github.com/fathah/hermes-desktop/pull/917 * fix: scope session browsing and polish chat settings UI by @fathah in https://github.com/fathah/hermes-desktop/pull/934 * fix: keep chat popovers outside beam clipping by @fathah in https://github.com/fathah/hermes-desktop/pull/935 * Harden desktop release pipeline by @fathah in https://github.com/fathah/hermes-desktop/p

  3. Hermes Desktop v0.7.6v0.7.6Jul 22, 2026266.1K downloads

    ## What's Changed * fix(stream): resolve message text truncation in streaming responses by @SpiritLiberation in https://github.com/fathah/hermes-desktop/pull/780 * fix(config-health): audit API_SERVER_KEY for non-ASCII characters by @AmirF194 in https://github.com/fathah/hermes-desktop/pull/812 * fix(chat): drop backend commands that collide with a desktop alias by @AmirF194 in https://github.com/fathah/hermes-desktop/pull/818 * fix:stabilize box-drawing code block rendering by @LacBang in https://github.com/fathah/hermes-desktop/pull/739 * fix(chat): render image lightbox via portal so paint containment can't clip it by @laofoot in https://github.com/fathah/hermes-desktop/pull/807 * fix(chat): ensure context gauge shows estimate when provider omits usage by @Ulaganathan-K-B in https://github.com/fathah/hermes-desktop/pull/789 * SSH mode: reliable connection, unified dashboard, and profile-aware chat by @fathah in https://github.com/fathah/hermes-desktop/pull/786 * fix(profiles): persist active_profile directly when the local CLI can't by @fathah in https://github.com/fathah/hermes-desktop/pull/823 * Fix DashScope provider mapping by @lucyonegit in https://github.com/fathah/hermes-

  4. Hermes Desktop v0.7.4-beta.4 (beta)v0.7.4-beta.4Jul 22, 2026pre-release190 downloads

    ## What's Changed * Office World Actions: chat-commanded errands in the 3D world by @fathah in https://github.com/fathah/hermes-desktop/pull/864 * Provider reconfig: agent-config sync, Hermes One auto-provisioning, provider UI redesign & chat stream fixes by @fathah in https://github.com/fathah/hermes-desktop/pull/862 * Modern loaders: replace spinners with thinking-orbs by @fathah in https://github.com/fathah/hermes-desktop/pull/868 **Full Changelog**: https://github.com/fathah/hermes-desktop/compare/v0.7.4-beta.3...v0.7.4-beta.4

  5. Hermes Desktop v0.7.4-beta.3 (beta)v0.7.4-beta.3Jul 20, 2026pre-release562 downloads

    **Full Changelog**: https://github.com/fathah/hermes-desktop/compare/v0.7.4-beta.2...v0.7.4-beta.3

Code frequency

additions and deletions
+35.7K-35.7KWeek of 2026-03-29: +33,134 linesWeek of 2026-03-29: -6,600 linesWeek of 2026-04-05: +16,486 linesWeek of 2026-04-05: -7,200 linesWeek of 2026-04-12: +6,110 linesWeek of 2026-04-12: -215 linesWeek of 2026-04-19: +2,562 linesWeek of 2026-04-19: -894 linesWeek of 2026-04-26: +3,412 linesWeek of 2026-04-26: -670 linesWeek of 2026-05-03: +4,835 linesWeek of 2026-05-03: -555 linesWeek of 2026-05-10: +11,912 linesWeek of 2026-05-10: -2,437 linesWeek of 2026-05-17: +18,058 linesWeek of 2026-05-17: -2,522 linesWeek of 2026-05-24: +19,079 linesWeek of 2026-05-24: -2,264 linesWeek of 2026-05-31: +33,608 linesWeek of 2026-05-31: -5,133 linesWeek of 2026-06-07: +35,706 linesWeek of 2026-06-07: -5,535 linesWeek of 2026-06-14: +11,171 linesWeek of 2026-06-14: -4,928 linesWeek of 2026-06-21: +19,989 linesWeek of 2026-06-21: -5,455 linesWeek of 2026-06-28: +6,252 linesWeek of 2026-06-28: -952 linesWeek of 2026-07-05: +10,273 linesWeek of 2026-07-05: -987 linesWeek of 2026-07-12: +7,102 linesWeek of 2026-07-12: -2,548 linesWeek of 2026-07-19: +12,036 linesWeek of 2026-07-19: -2,757 linesWeek of 2026-07-26: +435 linesWeek of 2026-07-26: -72 linesWeek of 2026-08-02: +3,203 linesWeek of 2026-08-02: -523 linesWeek of 2026-08-09: +0 linesWeek of 2026-08-09: -0 linesWeek of 2026-08-16: +37 linesWeek of 2026-08-16: -6 linesWeek of 2026-08-23: +4,339 linesWeek of 2026-08-23: -488 linesWeek of 2026-08-30: +3,488 linesWeek of 2026-08-30: -4,561 linesWeek of 2026-09-06: +2,011 linesWeek of 2026-09-06: -336 linesWeek of 2026-09-13: +9,197 linesWeek of 2026-09-13: -1,492 linesWeek of 2026-09-20: +1 linesWeek of 2026-09-20: -4 linesWeek of 2026-09-27: +0 linesWeek of 2026-09-27: -0 linesMar 29, 2026Sep 27, 2026
+274.4K lines added, -59.1K removed over the last year.

Commits per week

last 52 weeks
1330Week of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 36 commitsWeek of 2026-04-05: 25 commitsWeek of 2026-04-12: 9 commitsWeek of 2026-04-19: 7 commitsWeek of 2026-04-26: 22 commitsWeek of 2026-05-03: 24 commitsWeek of 2026-05-10: 67 commitsWeek of 2026-05-17: 89 commitsWeek of 2026-05-24: 113 commitsWeek of 2026-05-31: 133 commitsWeek of 2026-06-07: 111 commitsWeek of 2026-06-14: 69 commitsWeek of 2026-06-21: 72 commitsWeek of 2026-06-28: 34 commitsWeek of 2026-07-05: 23 commitsWeek of 2026-07-12: 29 commitsWeek of 2026-07-19: 27 commitsWeek of 2026-07-26: 3 commitsWeek of 2026-08-02: 9 commitsWeek of 2026-08-09: 0 commitsWeek of 2026-08-16: 2 commitsWeek of 2026-08-23: 7 commitsWeek of 2026-08-30: 13 commitsWeek of 2026-09-06: 13 commitsWeek of 2026-09-13: 34 commitsWeek of 2026-09-20: 1 commitsWeek of 2026-09-27: 0 commitsOct 5, 2025Sep 27, 2026
972 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 2 commitsSun 1:00 — 2 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 1 commitsSun 7:00 — 2 commitsSun 8:00 — 7 commitsSun 9:00 — 4 commitsSun 10:00 — 11 commitsSun 11:00 — 4 commitsSun 12:00 — 4 commitsSun 13:00 — 2 commitsSun 14:00 — 4 commitsSun 15:00 — 8 commitsSun 16:00 — 3 commitsSun 17:00 — 5 commitsSun 18:00 — 2 commitsSun 19:00 — 7 commitsSun 20:00 — 8 commitsSun 21:00 — 18 commitsSun 22:00 — 8 commitsSun 23:00 — 2 commitsMon 0:00 — 4 commitsMon 1:00 — 5 commitsMon 2:00 — 3 commitsMon 3:00 — 4 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 6 commitsMon 8:00 — 1 commitsMon 9:00 — 6 commitsMon 10:00 — 10 commitsMon 11:00 — 11 commitsMon 12:00 — 6 commitsMon 13:00 — 8 commitsMon 14:00 — 14 commitsMon 15:00 — 8 commitsMon 16:00 — 4 commitsMon 17:00 — 5 commitsMon 18:00 — 6 commitsMon 19:00 — 6 commitsMon 20:00 — 4 commitsMon 21:00 — 8 commitsMon 22:00 — 8 commitsMon 23:00 — 1 commitsTue 0:00 — 0 commitsTue 1:00 — 0 commitsTue 2:00 — 9 commitsTue 3:00 — 0 commitsTue 4:00 — 1 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 7 commitsTue 8:00 — 5 commitsTue 9:00 — 12 commitsTue 10:00 — 7 commitsTue 11:00 — 3 commitsTue 12:00 — 20 commitsTue 13:00 — 19 commitsTue 14:00 — 9 commitsTue 15:00 — 14 commitsTue 16:00 — 16 commitsTue 17:00 — 6 commitsTue 18:00 — 11 commitsTue 19:00 — 9 commitsTue 20:00 — 3 commitsTue 21:00 — 6 commitsTue 22:00 — 5 commitsTue 23:00 — 5 commitsWed 0:00 — 1 commitsWed 1:00 — 3 commitsWed 2:00 — 1 commitsWed 3:00 — 4 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 2 commitsWed 7:00 — 12 commitsWed 8:00 — 14 commitsWed 9:00 — 14 commitsWed 10:00 — 17 commitsWed 11:00 — 14 commitsWed 12:00 — 9 commitsWed 13:00 — 5 commitsWed 14:00 — 6 commitsWed 15:00 — 4 commitsWed 16:00 — 10 commitsWed 17:00 — 16 commitsWed 18:00 — 4 commitsWed 19:00 — 3 commitsWed 20:00 — 3 commitsWed 21:00 — 5 commitsWed 22:00 — 3 commitsWed 23:00 — 3 commitsThu 0:00 — 0 commitsThu 1:00 — 8 commitsThu 2:00 — 4 commitsThu 3:00 — 1 commitsThu 4:00 — 1 commitsThu 5:00 — 1 commitsThu 6:00 — 5 commitsThu 7:00 — 6 commitsThu 8:00 — 6 commitsThu 9:00 — 4 commitsThu 10:00 — 7 commitsThu 11:00 — 16 commitsThu 12:00 — 6 commitsThu 13:00 — 8 commitsThu 14:00 — 7 commitsThu 15:00 — 12 commitsThu 16:00 — 7 commitsThu 17:00 — 7 commitsThu 18:00 — 14 commitsThu 19:00 — 12 commitsThu 20:00 — 14 commitsThu 21:00 — 1 commitsThu 22:00 — 3 commitsThu 23:00 — 3 commitsFri 0:00 — 2 commitsFri 1:00 — 5 commitsFri 2:00 — 2 commitsFri 3:00 — 1 commitsFri 4:00 — 0 commitsFri 5:00 — 1 commitsFri 6:00 — 3 commitsFri 7:00 — 7 commitsFri 8:00 — 7 commitsFri 9:00 — 6 commitsFri 10:00 — 1 commitsFri 11:00 — 10 commitsFri 12:00 — 1 commitsFri 13:00 — 6 commitsFri 14:00 — 4 commitsFri 15:00 — 7 commitsFri 16:00 — 3 commitsFri 17:00 — 8 commitsFri 18:00 — 9 commitsFri 19:00 — 3 commitsFri 20:00 — 2 commitsFri 21:00 — 12 commitsFri 22:00 — 9 commitsFri 23:00 — 7 commitsSat 0:00 — 2 commitsSat 1:00 — 1 commitsSat 2:00 — 0 commitsSat 3:00 — 1 commitsSat 4:00 — 2 commitsSat 5:00 — 0 commitsSat 6:00 — 10 commitsSat 7:00 — 2 commitsSat 8:00 — 11 commitsSat 9:00 — 9 commitsSat 10:00 — 10 commitsSat 11:00 — 5 commitsSat 12:00 — 24 commitsSat 13:00 — 0 commitsSat 14:00 — 8 commitsSat 15:00 — 27 commitsSat 16:00 — 11 commitsSat 17:00 — 5 commitsSat 18:00 — 2 commitsSat 19:00 — 10 commitsSat 20:00 — 2 commitsSat 21:00 — 2 commitsSat 22:00 — 4 commitsSat 23:00 — 4 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits917 (66%)
Community commits481 (34%)

1,398 commits in total over the last year.

DateListRankStars gained
May 13, 2026daily#18+59
May 12, 2026daily#14+57
May 11, 2026daily#23+95
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    456.7K stars · TypeScript

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    391.3K stars · TypeScript

  • obra/superpowers

    An agentic skills framework & software development methodology that works.

    295.2K stars · Shell

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    272.8K stars · JavaScript

  • NousResearch/hermes-agent

    The agent that grows with you

    251.2K stars · Python

  • anomalyco/opencode

    The open source coding agent.

    211.7K stars · TypeScript