mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-12 08:51:53 +00:00
162 lines
7.9 KiB
Markdown
162 lines
7.9 KiB
Markdown
---
|
|
sidebar_position: 3
|
|
title: "Desktop App"
|
|
description: "The native Hermes desktop app — a polished experience for chatting with Hermes, with streaming tool output, side-by-side previews, a file browser, voice, cron, profiles, skills, and settings. macOS, Windows, and Linux."
|
|
---
|
|
|
|
# Desktop App
|
|
|
|
The Hermes desktop app is a native app built around the **same** agent you get from the CLI and the gateway — same config, same API keys, same sessions, same skills, same memory. It is not a separate product or a lightweight clone; it uses the same Hermes Agent core and settings, and drives it through a modern & thoughtfully designed UI. If you have used `hermes` in a terminal, everything you set up there is already here, and anything you do here shows up there.
|
|
|
|
It runs on **macOS, Windows, and Linux**.
|
|
|
|
:::tip Which interface is which?
|
|
Hermes has several front ends that all talk to the same agent:
|
|
|
|
- **Desktop App** (this page) — a native application with a purpose-built UI for chat, configuration, and management.
|
|
- **CLI** (`hermes`) and **[TUI](./tui.md)** (`hermes --tui`) — terminal interfaces.
|
|
- **[Web Dashboard](./features/web-dashboard.md)** (`hermes dashboard`) — a browser admin panel; its optional **Chat** tab embeds the TUI through a pseudo-terminal.
|
|
|
|
Pick whichever fits the moment. They share state, so you can start a session in one and resume it in another.
|
|
:::
|
|
|
|
## Install
|
|
|
|
### With the Hermes Desktop installer on MacOS or Windows (recommended)
|
|
|
|
[Download the Hermes Desktop installer](https://hermes-agent.nousresearch.com/desktop) from our website and run it.
|
|
|
|
### With the CLI installer on Linux, MacOS, or Windows
|
|
|
|
Add `--include-desktop` to the regular install script.
|
|
|
|
```bash
|
|
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash -s -- --include-desktop
|
|
```
|
|
|
|
### With an existing Hermes installation
|
|
|
|
If you already have Hermes installed, simply run
|
|
|
|
```bash
|
|
hermes desktop
|
|
```
|
|
|
|
That uses your current config, keys, sessions, and skills.
|
|
|
|
## What's in the app
|
|
|
|
The desktop app is organized as a chat-first window with a left sidebar for navigation. It's built to allow managing multiple simultaneous agent conversations, configuring messaging providers, creating artifacts, browsing projects' folder structures, and working on multiple projects at once.
|
|
|
|
### Chat
|
|
|
|
The center of the app. You get:
|
|
|
|
- **Streaming responses** with live tool activity and structured tool-call summaries as the agent works.
|
|
- **The same conversation history** as every other Hermes surface — sessions started here resume in the CLI/TUI and vice versa.
|
|
- **Drag-and-drop files** anywhere in the chat area to attach them to your next message.
|
|
- **A right-hand preview rail** — render web pages, files, and tool outputs side by side while you keep chatting.
|
|
|
|
### File browser
|
|
|
|
Explore and preview the working directory without leaving the app — useful for following along as the agent reads, writes, and edits files. Set the initial project directory with `hermes desktop --cwd <path>` (or the `HERMES_DESKTOP_CWD` environment variable).
|
|
|
|
### Voice
|
|
|
|
Talk to Hermes and hear it back, the same [voice mode](./features/voice-mode.md) available elsewhere. On macOS the OS will prompt once for microphone access.
|
|
|
|
### Settings & onboarding
|
|
|
|
Manage providers, models, tools, and credentials from a real UI instead of editing YAML. First-run onboarding gets you to your first message in seconds. The settings panes cover providers/keys, model selection, toolset configuration, MCP servers, the gateway, and session management.
|
|
|
|
### Management panes
|
|
|
|
The app also surfaces the broader Hermes management surface so you don't have to drop to a terminal:
|
|
|
|
- **Skills** — browse, install, and manage [skills](./features/skills.md).
|
|
- **Cron** — view and manage [scheduled jobs](../reference/cli-commands.md#hermes-cron).
|
|
- **Profiles** — switch between [Hermes profiles](./profiles.md) (isolated config/skills/sessions).
|
|
- **Messaging** — set up gateway channels.
|
|
- **Agents** and **Command Center** — orchestration surfaces for multi-agent work.
|
|
|
|
## Updating
|
|
|
|
The app checks for updates in the background and offers a one-click update when one is ready.
|
|
|
|
The [manual update process](https://hermes-agent.nousresearch.com/docs/getting-started/updating) also works with the GUI.
|
|
|
|
## CLI reference: `hermes desktop`
|
|
|
|
To launch via the CLI, simply run `hermes desktop`. By default it installs workspace Node dependencies, builds the current OS's unpacked Electron app, then launches that packaged artifact.
|
|
|
|
| Flag | Description |
|
|
| -------------------- | ----------------------------------------------------------------------------------------- |
|
|
| `--skip-build` | Skip npm install/package and launch the existing unpacked app from `apps/desktop/release` |
|
|
| `--source` | Launch via `electron .` against `apps/desktop/dist` instead of the packaged app |
|
|
| `--build-only` | Build the desktop app but do not launch it (used by the installer's `--update` flow) |
|
|
| `--cwd PATH` | Initial project directory for desktop chat sessions (sets `HERMES_DESKTOP_CWD`) |
|
|
| `--hermes-root PATH` | Override the Hermes source root the app uses (sets `HERMES_DESKTOP_HERMES_ROOT`) |
|
|
| `--ignore-existing` | Force the app to ignore any `hermes` CLI already on `PATH` during backend resolution |
|
|
| `--fake-boot` | Enable deterministic boot delays for validating the startup UI |
|
|
|
|
## How it works
|
|
|
|
The packaged app ships only the Electron shell. On first launch it installs the Hermes Agent runtime into `HERMES_HOME` (`~/.hermes`, or `%LOCALAPPDATA%\hermes` on Windows) — **the same layout a CLI install uses**, which is why the two are interchangeable. The React renderer talks to a `hermes dashboard --tui` backend over the standard gateway APIs and reuses the agent rather than reimplementing it. Install, backend-resolution, and self-update logic live in the Electron main process.
|
|
|
|
## Troubleshooting
|
|
|
|
Boot logs land in `HERMES_HOME/logs/desktop.log` (it includes backend output and recent Python tracebacks) — check it first if the app reports a boot failure. You can also tail it from the CLI:
|
|
|
|
```bash
|
|
hermes logs gui -f
|
|
```
|
|
|
|
Common resets:
|
|
|
|
```bash
|
|
# Force a clean first-launch setup (macOS/Linux)
|
|
rm "$HOME/.hermes/hermes-agent/.hermes-bootstrap-complete"
|
|
|
|
# Rebuild a broken Python venv (macOS/Linux)
|
|
rm -rf "$HOME/.hermes/hermes-agent/venv"
|
|
|
|
# Reset a stuck macOS microphone prompt
|
|
tccutil reset Microphone com.nousresearch.hermes
|
|
```
|
|
|
|
## Building from source
|
|
|
|
If you want to hack on the app itself, install workspace deps from the repo root once, then run the dev server from `apps/desktop`:
|
|
|
|
```bash
|
|
npm install # from repo root — links apps/desktop, web, apps/shared
|
|
cd apps/desktop
|
|
npm run dev # Vite renderer + Electron, which boots the Python backend
|
|
```
|
|
|
|
Point the app at a specific checkout, or sandbox it from your real config:
|
|
|
|
```bash
|
|
HERMES_DESKTOP_HERMES_ROOT=/path/to/clone npm run dev
|
|
HERMES_HOME=/tmp/throwaway npm run dev
|
|
npm run dev:fake-boot # exercise the startup overlay with deterministic delays
|
|
```
|
|
|
|
Build installers:
|
|
|
|
```bash
|
|
npm run dist:mac # DMG + zip
|
|
npm run dist:win # NSIS + MSI
|
|
npm run dist:linux # AppImage + deb + rpm
|
|
npm run pack # unpacked app under release/ (no installer)
|
|
```
|
|
|
|
macOS/Windows signing and notarization run automatically when the relevant credentials are present in the environment (`CSC_LINK` / `CSC_KEY_PASSWORD` / `APPLE_*` for macOS, `WIN_CSC_*` for Windows).
|
|
|
|
## See also
|
|
|
|
- [CLI Guide](./cli.md) — the terminal interface
|
|
- [TUI](./tui.md) — the modern terminal UI the desktop backend reuses
|
|
- [Web Dashboard](./features/web-dashboard.md) — browser admin panel with an embedded chat tab
|
|
- [Configuration](./configuration.md) — config that the desktop app reads and writes
|
|
- [Windows (Native)](./windows-native.md) — native Windows install path
|