Skip to content
Guides

Hermes Desktop

The native app for the Hermes agent, what is in it, and how it connects to more than one Hermes

6 min read

Hermes Desktop is the native app for the Hermes agent, on macOS, Windows and Linux, and the docs are careful to say what it is not: a separate product or a lightweight clone. It is built around the same agent core the CLI and the gateway use, with the same config, API keys, sessions, skills and memory, so anything set up in a terminal is already there and anything done in the app shows up in the terminal. Here is what the app holds, the controls in its status bar, the working surfaces beside the chat, and the registry that lets one app talk to several Hermes instances.

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.

The chat window

  • Streaming responses with live tool activity and structured tool-call summaries, the same conversation history as every other surface, drag-and-drop files, a right-hand preview rail for pages, files and tool output, and a comment mode in the in-app browser that pins notes to elements of a live page and hands the agent selectors and styles rather than a picture.
  • Composer history and queue editing, a task-progress header above the composer, a timeline rail of prompts for long chats, reading-position memory per session, and find in page.
  • A model picker in the composer that is sticky device state and never writes the profile default, with per-model effort and fast presets; the default lives in the model settings and is what new chats, crons and sub-agents start from.

The status bar

The bar along the bottom shows live session state without opening settings: a per-session YOLO toggle that bypasses the dangerous-command prompts, a context-usage meter that opens a token breakdown by category, and optional cache hit rate and tokens per second that update during a turn. Right-click it to choose what appears, workspace, model, approvals, timers, terminal, backend version, or hide it entirely.

Beside the chat

  • A file browser for the working directory, an artifacts gallery of images, files and links with a jump back to the session that produced each, and a real terminal in the right sidebar whose shells persist while hidden.
  • Tabs, multiple windows and popped-out sessions, a live sub-agents frame above the composer with steer and stop controls, and a memory graph of skills and memories with a shareable layout code.
  • Git review and worktrees: a review pane with diffs scoped to uncommitted, branch or last turn, staging, commit and push, a pull request through the GitHub CLI, and a worktree on a new branch so an agent works on a parallel copy of the repository.

The Hermes web dashboard is the browser admin panel that shares the same state, and Hermes agent setup is where the config the app inherits gets made.

One app, many instances

The gateways page registers every Hermes backend you own: the local runtime the app manages, remote gateways reachable over HTTP on a LAN, a tailnet or the internet with a session token or OAuth, SSH hosts where the app opens the tunnel and starts the dashboard for you, and hosted instances discovered through a cloud account. Each needs a unique device name, one is always primary, and background agents keep streaming while you look at another. What is the Hermes agent is the introduction to the agent all of them run.

On Diali

On Diali a Hermes assistant is one of those remote gateways: the instance is ours, the app is yours, and the registry is where the two meet. Hosted Hermes on Diali is the hosted Hermes page and Hermes versus OpenClaw sets Hermes beside OpenClaw.

  • Same agent, same state, native window on three platforms.
  • The composer picker is local; the default lives in settings.
  • One app can register local, remote, SSH and cloud Hermes instances.
Get started

Stop reading about it, build one

Set up an agent, pick a channel, and have it working inside the app you already keep open.