{"id":47819199,"url":"https://github.com/fathah/hermes-desktop","last_synced_at":"2026-05-30T09:01:14.879Z","repository":{"id":348740611,"uuid":"1199668171","full_name":"fathah/hermes-desktop","owner":"fathah","description":"Desktop Companion for Hermes Agent","archived":false,"fork":false,"pushed_at":"2026-05-23T07:51:31.000Z","size":9141,"stargazers_count":6480,"open_issues_count":162,"forks_count":785,"subscribers_count":37,"default_branch":"main","last_synced_at":"2026-05-23T08:25:48.807Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/fathah/hermes-desktop","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fathah.png","metadata":{"files":{"readme":"README.md","changelog":"changelogs/0.4.5.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-02T15:26:49.000Z","updated_at":"2026-05-23T08:19:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fathah/hermes-desktop","commit_stats":null,"previous_names":["fathah/hermes-desktop"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/fathah/hermes-desktop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathah%2Fhermes-desktop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathah%2Fhermes-desktop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathah%2Fhermes-desktop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathah%2Fhermes-desktop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fathah","download_url":"https://codeload.github.com/fathah/hermes-desktop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathah%2Fhermes-desktop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33686018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-03T19:02:00.123Z","updated_at":"2026-05-30T09:01:14.873Z","avatar_url":"https://github.com/fathah.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Workspaces and User Interfaces","🤖 AI \u0026 Machine Learning"],"sub_categories":[],"readme":"\u003cimg width=\"100%\" alt=\"HERMES DESKTOP\" src=\"previews/header.webp\" /\u003e\n\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://hermes-agent.nousresearch.com/docs/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Docs-hermes--agent.nousresearch.com-FFD700?style=for-the-badge\" alt=\"Documentation\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://t.me/hermes_agent_desktop\"\u003e\u003cimg src=\"https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge\u0026logo=telegram\u0026logoColor=white\" alt=\"Telegram\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/fathah/hermes-desktop/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-green?style=for-the-badge\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://hermesagents.cc/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Download-Releases-FF6600?style=for-the-badge\" alt=\"Releases\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/fathah/hermes-desktop/stargazers\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/stars/fathah/hermes-desktop?style=for-the-badge\u0026color=FFD700\u0026label=Stars\" alt=\"Stars\"\u003e\n\u003c/a\u003e\n  \u003ca href=\"https://github.com/fathah/hermes-desktop/releases/\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/downloads/fathah/hermes-desktop/total?style=for-the-badge\u0026color=00B496\u0026label=Total%20Downloads\" alt=\"Downloads\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e **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](https://github.com/fathah/hermes-desktop/issues). Contributions are welcome!\n\n## Languages\n\n- English: `README.md`\n- 简体中文: `README.zh-CN.md`\n- 日本語: `README.ja-JP.md`\n\nHermes Desktop is a native desktop app for installing, configuring, and chatting with [Hermes Agent](https://github.com/NousResearch/hermes-agent) — a self-improving AI assistant with tool use, multi-platform messaging, and a closed learning loop.\n\nInstead 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.\n\n## Install\n\n\u003ca href=\"https://hermesagents.cc/\"\u003e\u003cimg width=\"380\" alt=\"Download Now\" src=\"previews/download.webp\" /\u003e\u003c/a\u003e\n\n### Windows\n\n\u003e **Windows users:** The installer is not code-signed. Windows SmartScreen will warn on first launch — click \"More info\" → \"Run anyway\".\n\n\u003e **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:\n\u003e\n\u003e ```bash\n\u003e echo \"$USER ALL=(ALL) NOPASSWD: ALL\" | sudo tee /etc/sudoers.d/hermes-install\n\u003e # …re-run the installer; once it finishes:\n\u003e sudo rm /etc/sudoers.d/hermes-install\n\u003e ```\n\u003e\n\u003e Tracked in [#109](https://github.com/fathah/hermes-desktop/issues/109).\n\n### Fedora (RPM)\n\n```bash\nsudo dnf install ./hermes-desktop-\u003cversion\u003e.rpm\n```\n\n\u003e **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.\n\n## Preview\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003eChat\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Chat\" src=\"previews/chat.png\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003eProfiles\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Profiles\" src=\"previews/profiles.png\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003eModels\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Models\" src=\"previews/models.png\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003eProviders\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Providers\" src=\"previews/providers.png\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003eTools\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Tools\" src=\"previews/tools.png\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003eSkills\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Skills\" src=\"previews/skills.png\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003eSchedules\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Schedules\" src=\"previews/schedules.png\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003eGateway\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Gateway\" src=\"previews/gateway.png\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003ePersona\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Persona\" src=\"previews/persona.png\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003eKanban\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Kanban\" src=\"previews/kanban.png\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003eOffice\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Office\" src=\"previews/office.png\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\u003cb\u003eSettings\u003c/b\u003e\u003cbr/\u003e\u003cimg width=\"100%\" alt=\"Settings\" src=\"previews/settings.png\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Features\n\n- **Guided first-run install** for Hermes Agent with progress tracking and dependency resolution\n- **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\n- **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)\n- **Streaming chat UI** with SSE streaming, tool progress indicators, markdown rendering, and syntax highlighting\n- **Token usage tracking** — live prompt/completion token counts and cost display in the chat footer, plus a `/usage` slash command\n- **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\n- **Session management** — full-text search (SQLite FTS5), date-grouped history, resume and search across conversations\n- **Profile switching** — create, delete, and switch between separate Hermes environments with isolated config\n- **14 toolsets** — web, browser, terminal, file, code execution, vision, image gen, TTS, skills, memory, session search, clarify, delegation, MoA, and task planning\n- **Memory system** — view/edit memory entries, user profile memory, capacity tracking, and discoverable memory providers (Honcho, Hindsight, Mem0, RetainDB, Supermemory, ByteRover)\n- **Persona editor** — edit and reset your agent's SOUL.md personality\n- **Saved models** — CRUD management for model configurations across providers\n- **Scheduled tasks** — cron job builder (minutes, hourly, daily, weekly, custom cron) with 15 delivery targets\n- **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\n- **Hermes Office (Claw3d)** — visual 3D interface with dev server and adapter management\n- **Backup, import \u0026 debug dump** — full data backup/restore and system diagnostics from Settings\n- **Log viewer** — view gateway and agent logs directly from the Settings screen\n- **Auto-updater** — check for and install updates via electron-updater\n- **i18n ready** — internationalization framework with English locale covering all screens, ready for community translations\n- **Test suite** — SSE parser, IPC handlers, preload API surface, installer utilities, and constants validation with Vitest\n\n## How It Works\n\nOn first launch, the app:\n\n1. Asks whether you want to run Hermes **locally** or connect to a **remote** Hermes API server.\n2. **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+).\n3. **Remote mode:** prompts for the remote API URL and API key, validates the connection, and skips local install.\n4. Prompts for an API provider or local model endpoint.\n5. Saves provider config and API keys through Hermes config files.\n6. Launches the main workspace once setup is complete.\n\nIn 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.\n\n## Screens\n\n| Screen        | Description                                                                           |\n| ------------- | ------------------------------------------------------------------------------------- |\n| **Chat**      | Streaming conversation UI with slash commands, tool progress, and token tracking      |\n| **Sessions**  | Browse, search, and resume past conversations                                         |\n| **Agents**    | Create, delete, and switch between Hermes profiles                                    |\n| **Skills**    | Browse, install, and manage bundled and installed skills                              |\n| **Models**    | Manage saved model configurations per provider                                        |\n| **Memory**    | View/edit memory entries, user profile, and configure memory providers                |\n| **Soul**      | Edit the active profile's persona (SOUL.md)                                           |\n| **Tools**     | Enable or disable individual toolsets                                                 |\n| **Schedules** | Create and manage cron jobs with delivery targets                                     |\n| **Gateway**   | Configure and control messaging platform integrations                                 |\n| **Office**    | Claw3d visual interface setup and management                                          |\n| **Settings**  | Provider config, credential pools, backup/import, log viewer, network settings, theme |\n\n## Supported Providers\n\n### LLM Providers\n\n| Provider            | Notes                                    |\n| ------------------- | ---------------------------------------- |\n| **OpenRouter**      | 200+ models via single API (recommended) |\n| **Anthropic**       | Direct Claude access                     |\n| **OpenAI**          | Direct GPT access                        |\n| **Google (Gemini)** | Google AI Studio                         |\n| **xAI (Grok)**      | Grok models                              |\n| **Nous Portal**     | Free tier available                      |\n| **Qwen**            | QwenAI models                            |\n| **MiniMax**         | Global and China endpoints               |\n| **Hugging Face**    | 20+ open models via HF Inference         |\n| **Groq**            | Fast inference (voice/STT)               |\n| **Local/Custom**    | Any OpenAI-compatible endpoint           |\n\nLocal presets are included for LM Studio, Atomic Chat, Ollama, vLLM, and llama.cpp.\n\n### Messaging Platforms\n\nTelegram, Discord, Slack, WhatsApp, Signal, Matrix/Element, Mattermost, Email (IMAP/SMTP), SMS (Twilio \u0026 Vonage), iMessage (BlueBubbles), DingTalk, Feishu/Lark, WeCom, WeChat (iLink Bot), Webhooks, and Home Assistant.\n\n### Tool Integrations\n\nExa Search, Parallel API, Tavily, Firecrawl, FAL.ai (image generation), Honcho, Browserbase, Weights \u0026 Biases, and Tinker.\n\n## Development\n\n### Prerequisites\n\n- Node.js and npm\n- A Unix-like shell environment for the Hermes installer\n- Network access for downloading Hermes during first-run install\n\n### Install dependencies\n\n```bash\nnpm install\n```\n\n### Start the app in development\n\n```bash\nnpm run dev\n```\n\n### Run checks\n\n```bash\nnpm run lint\nnpm run typecheck\n```\n\n### Run tests\n\n```bash\nnpm run test\nnpm run test:watch\n```\n\n### Build the desktop app\n\n```bash\nnpm run build\n```\n\nPlatform packaging:\n\n```bash\nnpm run build:mac\nnpm run build:win\nnpm run build:linux\nnpm run build:rpm    # Fedora/RHEL .rpm only\n```\n\n## First-Time Setup\n\nWhen the app opens for the first time, it will either detect an existing Hermes installation or offer to install it for you.\n\nSupported setup paths in the UI:\n\n- `OpenRouter`\n- `Anthropic`\n- `OpenAI`\n- `Local LLM` via an OpenAI-compatible base URL\n\nLocal presets are included for:\n\n- LM Studio\n- Atomic Chat\n- Ollama\n- vLLM\n- llama.cpp\n\nHermes files are managed in:\n\n- `~/.hermes`\n- `~/.hermes/.env`\n- `~/.hermes/config.yaml`\n- `~/.hermes/hermes-agent`\n- `~/.hermes/profiles/` — named profile directories\n- `~/.hermes/state.db` — session history database\n- `~/.hermes/cron/jobs.json` — scheduled tasks\n\n## Tech Stack\n\n- **Electron** 39 — cross-platform desktop shell\n- **React** 19 — UI framework\n- **TypeScript** 5.9 — type safety across main and renderer processes\n- **Tailwind CSS** 4 — utility-first styling\n- **Vite** 7 + electron-vite — fast dev server and build tooling\n- **better-sqlite3** — local session storage with FTS5 full-text search\n- **i18next** — internationalization framework\n- **Vitest** — test runner\n\n## Notes\n\n- The desktop app depends on the upstream Hermes Agent project for agent behavior and tool execution.\n- The built-in installer runs the official Hermes install script with `--skip-setup`, then completes provider configuration in the GUI.\n- Local model providers do not require an API key, but the compatible server must already be running.\n- Alternative npm registry routes are supported for environments with restricted network access.\n\n## Contributing\n\nContributions are welcome! Check out the [Contributing Guide](CONTRIBUTING.md) to get started. If you're not sure where to begin, take a look at the [open issues](https://github.com/NousResearch/hermes-desktop/issues). Found a bug or have a feature request? [File an issue](https://github.com/NousResearch/hermes-desktop/issues/new).\n\n## Related Project\n\nFor the core agent, docs, and CLI workflows, see the main Hermes Agent repository:\n\n- https://github.com/NousResearch/hermes-agent\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffathah%2Fhermes-desktop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffathah%2Fhermes-desktop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffathah%2Fhermes-desktop/lists"}