Skip to content
Guides

The Hermes web dashboard and desktop app

What each surface is, and when the auth gate turns on

6 min read

Hermes has four front ends to one agent: the command line, a terminal UI, a browser dashboard and a native desktop app. They share config, keys, sessions, skills and memory, so a session started in one resumes in another. The dashboard is the one people search for, and the one with a security rule worth knowing: bind it to anything but localhost and an authentication gate turns on, with no flag to turn it off.

The dashboard

  • One command starts a local server on port 9119 and opens it in the browser; nothing leaves the machine.
  • It is machine-level: one server manages every profile, with a switcher in the sidebar and the selection carried in the URL.
  • The status page shows the version, the gateway state and connected platforms, active and recent sessions, and a resource banner when memory or disk runs low, including a suspected out-of-memory restart on the previous boot.
  • The chat tab embeds the full terminal UI over a pseudo-terminal, with a session switcher; it needs a POSIX system, so native Windows gets the rest of the dashboard without it.

The dashboard is an optional extra: the default install ships without the HTTP stack, and the command tells you what to install; the frontend builds itself on first launch when Node is present. Configuration, API keys, skills, MCP servers, models, cron and sessions are the pages, and a REST API sits underneath for scripts.

The auth gate

Bound to localhost, no login. Bound to any other address, the gate is on and every request needs a verified session: a username and password provider for trusted networks, Nous Portal sign-in for anything on the public internet, or your own OpenID Connect provider. If the gate would engage and no provider is configured, the dashboard refuses to bind; run interactively, it offers to set one up on the spot. The old insecure flag no longer disables authentication.

The gate is on if and only if the bind host is not 127.0.0.1, ::1, or localhost.

The desktop app

The native app runs on macOS, Windows and Linux around the same agent: chat-first with streaming tool output, a preview rail for pages and files, drag-and-drop attachments, a context-usage meter, a per-session toggle that bypasses the dangerous-command prompts, and a projects sidebar that scans your home directory for repositories, which you can narrow or switch off. It can also attach to a dashboard running on a remote machine, which then has to be bound to a reachable address and gated. Installing the Hermes agent covers getting either onto a machine.

Which surface

  • The command line and the terminal UI when you live in a terminal.
  • The dashboard to manage a machine, its profiles and its keys, and to chat from a browser.
  • The desktop app for the day-to-day, with previews and files beside the chat.

On Diali

Diali offers two browser dashboards for a Hermes assistant as add-ons: the native Hermes web console, with chat, sessions, a workspace file browser and the control centre, and Open WebUI, a chat dashboard with history and prompt presets. Both sit behind your Diali account rather than a bind address, and the gateway they talk to is the platform’s. Hosted Hermes on Diali is the hosted version; Hermes vs OpenClaw compares the two engines’ surfaces alongside the rest.

  • Four surfaces, one agent, shared state.
  • Localhost means no login; anything else means a gate you cannot switch off.
  • The desktop app is the day-to-day surface; the dashboard is the management one.
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.