Running both OpenClaw and Hermes on a single VPS is one of the most powerful setups for multi-agent workflows. OpenClaw excels at structured orchestration and long-running tasks, while Hermes brings fast reasoning, a beautiful web UI, and advanced tool use. When they share the same filesystem and workspace, they can truly collaborate — passing files, memories, and tasks back and forth without any extra permission headaches.
This guide walks you through a complete, production-ready setup based on real-world experience.
Why Run Both Together?
- Shared workspace and files — no copying or syncing needed
- One agent can delegate to the other — leverage each agent's strengths
- Best of both UIs — OpenClaw's dashboard + Hermes WebUI
- Telegram support for both bots — in the same group/chat
- Easy access to local models — via reverse tunneling (e.g., Ollama on your laptop)
Prerequisites
- A VPS with Ubuntu/Debian (or any Linux)
- A dedicated non-root user (we'll call it
userin examples) - SSH access from your local machine
- Git, curl, and basic build tools installed
Step 1: Create a Dedicated User and Log In
sudo adduser user
sudo usermod -aG sudo user
su - user
All future commands in this guide are run as the user user.
Step 2: Install OpenClaw
Follow the official OpenClaw installation:
curl -fsSL https://raw.githubusercontent.com/openclaw/openclaw/main/scripts/install.sh | bash
Set up your first Telegram bot for OpenClaw via @BotFather and run:
openclaw gateway setup
Step 3: Install Hermes in the Same User Account
Since both agents run as the same Linux user, they automatically share ~/ (including workspace, memories, skills, and tools).
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc
Step 4: Create a Separate Telegram Bot for Hermes
⚠️ Important
Never share the same bot token between OpenClaw and Hermes. They will conflict and cause errors.
- Open Telegram → @BotFather
- Send
/newbot→ create a new bot (e.g.,MyHermesBot) - Copy the new token
Then run:
hermes gateway setup
Select Telegram and paste the new token.
Step 5: Enable Open Access (for testing)
echo 'GATEWAY_ALLOW_ALL_USERS=true' >> ~/.hermes/.env
Step 6: Set Up SSH Tunneling
From your local machine, use this single SSH command to tunnel all the ports you need:
ssh -L 18789:localhost:18789 \\
-L 9119:localhost:9119 \\
-R 11434:localhost:11434 \\
account@your-vps-ip
| Port | Purpose |
|---|---|
-L 18789 | OpenClaw Web UI |
-L 9119 | Hermes Web Dashboard |
-R 11434 | Reverse tunnel so both agents can reach Ollama running on your local machine |
Step 7: Configure Models in Hermes
Run:
hermes model
Option A: Cloud Model (Venice.ai example)
- Provider →
Custom endpoint - Base URL →
https://api.venice.ai/api/v1 - API key → your Venice key
- Model →
llama-3.3-70b(orqwen2.5-72b)
Option B: Local Ollama via Reverse Tunnel
- Base URL →
http://localhost:11434/v1 - API key → leave blank
- Model → exact name of your pulled model (e.g.,
llama3.2:3b)
Step 8: Running Both Agents
Use tmux so both can run simultaneously:
tmux new -s agents
Inside tmux:
- Pane 1:
hermes dashboard - Pane 2:
hermes gateway - Pane 3 (optional): your OpenClaw process
Split panes with Ctrl+B % (vertical) or Ctrl+B " (horizontal).
Step 9: Terminal Readability Fix (Hermes CLI)
If text is invisible in the terminal, type:
/skin mono
Or make it permanent:
hermes config set display.skin mono
Step 10: Collaboration Tips
- Both agents now share the exact same
~/directory - Hermes can read/write files that OpenClaw creates (and vice versa)
- Put both bots in the same Telegram group so they can
@mentioneach other - Use Hermes as the fast "supervisor" and OpenClaw for heavy orchestration
- Shared memories and skills work out of the box
Bonus: Systemd Services (Auto-Start on Boot)
Create two service files so everything survives reboots.
/etc/systemd/system/hermes-dashboard.service
[Unit]
Description=Hermes Dashboard
After=network.target
[Service]
User=user
WorkingDirectory=/home/user
ExecStart=/home/user/.local/bin/hermes dashboard
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
/etc/systemd/system/hermes-gateway.service
[Unit]
Description=Hermes Gateway
After=network.target
[Service]
User=user
WorkingDirectory=/home/user
ExecStart=/home/user/.local/bin/hermes gateway
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Then enable them:
sudo systemctl daemon-reload
sudo systemctl enable --now hermes-dashboard hermes-gateway
Common Troubleshooting
| Issue | Fix |
|---|---|
| "terminated by other getUpdates" | You used the same Telegram token — create separate bots |
| HTTP 400 "tools is not supported" | Switch away from the 405B model on Venice |
| WebUI not loading | Make sure your SSH tunnel includes -L 9119:localhost:9119 |
| API key errors | Re-run hermes model and paste the key again, then restart |
Final Thoughts
Running OpenClaw and Hermes together on one VPS gives you an incredibly capable agent team with almost zero overhead. They share everything, talk to each other, and give you the best of both worlds — structured power from OpenClaw and fast, modern UX from Hermes.
Once set up, you'll wonder how you ever ran them separately.
💡 Pro Tip
Hermes has a built-in migration tool for OpenClaw users: hermes user migrate --dry-run to preview what would be imported, then hermes user migrate to import your SOUL.md, memories, skills, and API keys.
Happy building! Drop your questions in the comments below.
💬 Comments