Starting it
Run hermes dashboard. Hermes starts a local web server and opens http://127.0.0.1:9119 in your browser. By default it binds to 127.0.0.1 with no login, because it's only reachable from your own machine. Useful flags are --port to change the port, --no-open to skip opening the browser, and --host to change the bind address (see the security section below before you use that one).
The dashboard is machine-level: one server manages every profile. When more than one profile exists, a switcher in the sidebar decides which profile the Config, API Keys, Skills, MCP and Chat pages read from and write to, and an amber banner appears when you're managing a profile other than the dashboard's own. Running a profile alias such as worker dashboard opens the same server with that profile selected.
The pages worth learning first
- Status: version, gateway state and connected platforms, active and recent sessions. It refreshes every five seconds, and a banner warns when the host is low on memory or disk.
- Config: a form editor for
config.yaml. Dropdowns and toggles appear wherever values are constrained, for exampleapprovals.mode. Changes apply to the next session or after a gateway restart. - API Keys: set, update or delete values in
.env, with redacted previews. In a running CLI session,/reloadpicks up new keys without a restart. - Sessions: full-text search, expandable transcripts with tool calls, rename, export to JSON, prune and delete.
- Logs and Analytics: filtered and live-tailed agent, gateway and error logs, plus token and cost breakdowns over 7, 30 or 90 days.
- Cron, Skills, MCP, Webhooks, Pairing and Channels: browser versions of the matching CLI commands. Pairing, for example, lets you approve or revoke messaging users without a terminal.
- System: gateway start, stop and restart, memory provider choice, credential pool,
doctor, backup and restore, checkpoint pruning and shell hooks.
The Chat tab
Chat embeds the real Hermes TUI, the same interface as hermes --tui, in the browser. Slash commands, the model picker, approval prompts and tool cards all behave the same way. A right-hand rail lists recent sessions for the active profile so you can switch between them, and a workspace picker chooses the folder a new chat starts in. That's handy when you're driving Hermes from a phone and want it working in a specific repository.
The chat pane needs Node.js, like the TUI, and a working pseudo-terminal. On native Windows the official docs describe a ConPTY bridge through pywinpty, and note that a missing or broken native dependency can make the terminal unavailable. If you see a banner in place of the terminal, the rest of the dashboard still works, and WSL2 is the documented alternative.
Reaching it from another machine, safely
The dashboard reads and writes your .env, so treat it like the keys themselves. Binding to anything other than 127.0.0.1, ::1 or localhost, including --host 0.0.0.0, turns on an authentication gate. The server refuses to start until an auth provider is configured. Three ship with Hermes: username and password (for a trusted network or VPN only), Nous Portal OAuth (recommended for anything reachable from the internet), and self-hosted OIDC. The old --insecure flag no longer turns authentication off.
For a personal server, the simplest approach is the one the docs suggest: keep the dashboard on 127.0.0.1 and reach it over an SSH tunnel or Tailscale. You get no login screen and no public port.
When the dashboard won't start
FastAPI, Uvicorn and the PTY helper are core dependencies. If they're damaged, hermes pm repair followed by a restart is the documented fix. On first launch the frontend builds itself automatically if npm is available. If you just changed something in Config or Channels and nothing happened, remember that most changes take effect on the next session or gateway restart. Channels has a restart button on the page for exactly that reason.
Related guides
- Hermes Agent messaging gateway explained
- Hermes Agent sessions: search and resume past work
- How to keep Hermes Agent costs down
- Hermes Agent event hooks explained
- Hermes Agent profiles: separate agents for separate jobs
Primary sources
Spotted something wrong or out of date? Tell us on X at @HermesWatcher (opens in a new tab) and we will fix it.
New Hermes Agent updates every day on X. Follow @HermesWatcher