How to Set Up Hermes Web UI for AI Agent Management in 2026
If you’re running OpenClaw or other AI agents on your own infrastructure, you’ve probably hit the same wall I did: the command-line is great for setup, but lousy for daily use. SSH-ing in just to ask “what’s the agent doing right now?” gets old fast.
Hermes Web UI solves this. It’s a lightweight browser-based control panel that sits on top of your agents, gives you a real dashboard, and works on desktop and mobile.
This guide walks through a full install — from a blank VPS to a working Hermes dashboard, accessible from any device on your network.
What You Get With Hermes
– Live status of running agents (CPU, memory, current task)
– Chat interface — talk to your agents from the browser instead of SSH
– Session history — every conversation stored, searchable
– Multi-agent support — manage several agents from one panel
– Mobile-friendly — works on phone, tablet, laptop
What You’ll Need
– A VPS or local machine with at least 1GB RAM free
– Node.js 18+ installed
– At least one AI agent already running (OpenClaw, Claude Code, or similar)
– 15-20 minutes
Step 1: Install Node.js
If Node.js isn’t already installed:
“`bash
On Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash –
sudo apt install -y nodejs
On macOS
brew install node@20
On Windows (PowerShell as admin)
winget install OpenJS.NodeJS.LTS
“`
Verify with `node –version` (should print v20.x or higher).
Step 2: Install Hermes
Hermes is published as a Node.js package:
“`bash
Global install (recommended)
npm install -g hermes-web-ui
Or for one user only
npm install hermes-web-ui
“`
This puts the `hermes-web-ui` binary in your PATH.
Step 3: First-Time Setup
Before starting the server, set up the data directory:
“`bash
Create config directory
mkdir -p ~/.hermes-web-ui
Initialize the database (happens automatically on first run)
hermes-web-ui init
“`
The first run creates a SQLite database for sessions and a config file. Both live in `~/.hermes-web-ui/`.
Step 4: Start the Server
“`bash
hermes-web-ui start –port 8648 –host 0.0.0.0
“`
The `–host 0.0.0.0` flag is what makes it accessible from other devices on your network. Without it, Hermes only binds to localhost.
You should see output like:
“`
[hermes-web-ui] Server running on http://0.0.0.0:8648
[hermes-web-ui] Database: /home/youruser/.hermes-web-ui/hermes-web-ui.db
[hermes-web-ui] Logs: /home/youruser/.hermes-web-ui/logs/server.log
“`
Step 5: Access the Dashboard
From any device on the same network, open:
“`
http://your-vps-ip:8648
“`
Or if you’re running locally:
“`
http://localhost:8648
“`
The first time you load the page, Hermes asks you to create an admin account. This is the only account with full access. Create it with a strong password.
Step 6: Connect Your First Agent
Hermes works with any agent that exposes a compatible API. For OpenClaw:
1. In the Hermes dashboard, go to Settings → Agents
2. Click Add Agent
3. Fill in:
– Name: Whatever you want (e.g., “OpenClaw Main”)
– Type: OpenClaw
– Endpoint: `http://127.0.0.1:18789` (default OpenClaw gateway)
– Auth token: Your OpenClaw token from its config
4. Click Test Connection
5. If the test passes, click Save
The agent now appears in your dashboard. You can chat with it, see its status, and review past sessions.
Step 7: Enable HTTPS (Production)
Running Hermes over plain HTTP is fine for a local network. For anything accessible from the internet, set up HTTPS.
Option A — Use a reverse proxy:
“`nginx
/etc/nginx/sites-available/hermes
server {
listen 443 ssl;
server_name hermes.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/hermes.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hermes.yourdomain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8648;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
“`
Then get a cert:
“`bash
sudo certbot –nginx -d hermes.yourdomain.com
“`
Option B — Tailscale Funnel:
If you’re already using Tailscale, Funnel gives you HTTPS for free:
“`bash
tailscale funnel 8648
“`
Hermes is now available at `https://hermes.yourmachine.ts.net`.
Step 8: Auto-Start with Systemd
To make sure Hermes restarts after a reboot:
“`bash
sudo nano /etc/systemd/system/hermes-web-ui.service
“`
Paste:
“`ini
[Unit]
Description=Hermes Web UI
After=network.target
[Service]
Type=simple
User=youruser
ExecStart=/usr/bin/node /usr/lib/node_modules/hermes-web-ui/dist/server/index.js start –port 8648
Restart=always
RestartSec=5
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
“`
Then:
“`bash
sudo systemctl daemon-reload
sudo systemctl enable hermes-web-ui
sudo systemctl start hermes-web-ui
“`
Hermes now starts automatically on boot and restarts if it crashes.
Optional: Hide the Open Port with a Firewall
If you’re on a public VPS, you probably don’t want Hermes exposed to the whole internet. Restrict access to your local network or Tailscale:
“`bash
UFW — only allow from local network
sudo ufw allow from 192.168.1.0/24 to any port 8648
Or only allow Tailscale IPs
sudo ufw allow from 100.64.0.0/10 to any port 8648
“`
Maintenance Commands
| Task | Command |
| :— | :— |
| View live logs | `tail -f ~/.hermes-web-ui/logs/server.log` |
| Check status | `systemctl status hermes-web-ui` |
| Restart | `sudo systemctl restart hermes-web-ui` |
| Update | `npm update -g hermes-web-ui && sudo systemctl restart hermes-web-ui` |
| Backup | `cp ~/.hermes-web-ui/hermes-web-ui.db ~/backup/` |
| Reset password | `hermes-web-ui reset-admin` |
Troubleshooting
“Connection refused” when accessing the dashboard:
– Check that Hermes is running: `systemctl status hermes-web-ui`
– Make sure port 8648 is open in your firewall
– If accessing from another device, use the VPS IP, not localhost
Agent shows offline in the dashboard:
– Check that the agent is running: `curl http://127.0.0.1:18789/health` (for OpenClaw)
– Verify the endpoint URL is correct in Hermes settings
– Check Hermes logs for connection errors
Can’t remember admin password:
– Run `hermes-web-ui reset-admin` and set a new password
Database locked errors:
– Only one Hermes instance should be running at a time
– Check for zombie processes: `ps aux | grep hermes`
What I Use It For
I run Hermes on my main VPS, connected to three agents (a main OpenClaw instance, a test agent, and a Claude Code instance). It’s how I talk to all of them without SSH-ing into different machines.
The session history alone is worth it. I can search past conversations, find what I asked two weeks ago, and resume from where I left off.
—
Total time to deploy: 15-20 minutes. Once it’s running, the daily workflow changes — you stop thinking about SSH and start thinking about conversations.
If you want help setting up the multi-agent configuration, drop me a line via the remote deployment service.
Related Articles
Get Notified About New Articles
One email per week when I publish a new article or update an existing one. New AI tool reviews, deployment updates, behind-the-scenes notes. No marketing, no spam, unsubscribe in one click.
Or learn more · RSS feed
- How to Set Up Claude Code with the MiniMax API in 2026
- How to Self-Host n8n for $5/Month
- OpenClaw vs ChatGPT: Why Self-Hosting Wins for Power Users in 2026
- OpenClaw Docker Setup: From Zero to Running AI Assistant in 30 Minutes
Get Notified About New Articles
One email per week when I publish a new article or update an existing one. No marketing, no spam.