How to Self-Host Hermes Agent on a VPS (2026 Setup)
Hermes Agent makes a lot of unusual claims for an open-source project: it remembers everything, it writes its own skills, it actually self-improves. After three weeks of running it on a Hetzner CCX13, the claims hold up. Here is the install path that actually works in 2026, with the gotchas the official docs glide over.
What You Need Before Starting
- A VPS with Ubuntu 24.04 or Debian 12 (Hermes also supports macOS and WSL2, this guide is Linux-only)
- SSH access with sudo or root
- 4 GB RAM minimum if you bring your own model, 16 GB if you self-host the LLM
- 80 GB disk, NVMe preferred
- A model endpoint (OpenAI API key, Anthropic API key, or a local Ollama install)
The VPS sizing depends on whether you self-host the model. See the best VPS for Hermes Agent guide for the realistic shortlist. For this tutorial I assume the bring-your-own-model setup, which is what 80% of users actually do.
Step 1: Provision the VPS
SSH into a fresh Hetzner CCX13 or equivalent and update the package index:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git ufw
Set up a basic firewall before exposing anything to the internet:
sudo ufw allow ssh
sudo ufw allow 443/tcp
sudo ufw enable
Skip port 80 unless you plan to run a public web UI. The messaging gateways (Telegram, Slack, Discord) all use outbound connections and do not need inbound ports open.
Step 2: Run the Hermes Install Script
The official one-liner from the Nous Research repo:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
This script does several things behind the scenes:
- Creates a
hermessystem user - Clones the Hermes repo to
/opt/hermes - Installs Python 3.11 and dependencies via a managed virtual environment
- Sets up SQLite for the skill store
- Registers
hermes.serviceas a systemd unit - Prompts for your model endpoint configuration
The prompt for model endpoint asks for an OpenAI-compatible URL and an API key. For OpenAI direct: https://api.openai.com/v1 and your key. For Anthropic via a proxy: the proxy URL. For local Ollama: http://localhost:11434/v1.
Step 3: Verify the Install
Check the service is running:
sudo systemctl status hermes
You should see active (running). If not, the most common cause is the model endpoint config. Check the log:
sudo journalctl -u hermes -n 50
Common errors at this stage:
401 Unauthorized: API key wrong, edit/etc/hermes/config.tomlConnection refused: model endpoint URL wrong, especially for local Ollama setupsPermission denied on /opt/hermes/skills.db: SQLite file permission issue, fix withsudo chown hermes:hermes /opt/hermes/skills.db
Step 4: Add a Messaging Gateway
Telegram is the easiest first integration. Create a bot via @BotFather on Telegram and grab the token. Then:
sudo nano /etc/hermes/gateways/telegram.toml
Add:
[telegram]
token = "YOUR_BOT_TOKEN"
allowed_users = ["YOUR_TELEGRAM_USER_ID"]
The allowed_users list is important. Without it, anyone on Telegram who finds your bot can talk to Hermes and rack up your model API costs. Get your Telegram user ID by messaging @userinfobot.
Reload Hermes:
sudo systemctl restart hermes
Send a message to your bot. Hermes responds within a few seconds. The first message takes longer because the agent loads context.
Step 5: Test the GEPA Self-Improvement
Ask Hermes to do something non-trivial. A good first test: โSearch GitHub for the trending Python repositories this week and summarize the top three.โ
After Hermes completes the task, check the skill store:
ls /opt/hermes/skills/
You should see a new skill file generated. This is GEPA in action, Hermes wrote a reusable procedure for itself. The next time you ask a similar question, it uses the stored skill instead of reasoning from scratch. After 20 to 30 successful tasks, you will see measurable speedup on repeated work.
Step 6: Set Up Automatic Backups
The skill store is the irreplaceable part of your Hermes install. Back it up regularly:
sudo crontab -e
Add:
0 3 * * * tar -czf /backup/hermes-$(date +\%Y\%m\%d).tar.gz /opt/hermes/skills.db /opt/hermes/skills/ && find /backup -name "hermes-*.tar.gz" -mtime +14 -delete
This creates daily backups at 3 AM and keeps 14 days. Adjust the destination to wherever you store backups (S3, Backblaze, a separate disk).
What Comes Next
The first week of Hermes use is mostly about adding integrations (Slack, Discord, calendar, GitHub) and watching it build up skills. Around week three, the speedup from accumulated skills starts being noticeable. Around week six, Hermes is meaningfully faster at your recurring tasks than a fresh GPT-5 prompt would be.
Some integrations worth adding next:
- Slack gateway for team use
- Filesystem tool for document work
- Calendar integration for scheduling
- GitHub MCP for code-related queries
For the broader picture of where Hermes fits in the agent ecosystem, see the best VPS for Hermes Agent comparison. For other AI agent setups, check the SelfHostVPS guides.
Frequently asked questions
How long does the Hermes Agent installation actually take?
The single-command install takes 8 to 12 minutes on a fresh Ubuntu 24.04 VPS. The script downloads Hermes, installs Python dependencies, sets up the SQLite skill store, and configures the systemd service. Adding the first messaging gateway (Telegram or Slack) takes another 5 minutes for the bot token setup. From cold VPS to working agent: about 20 minutes.
Do I need root access on the VPS to install Hermes Agent?
Yes for the initial install because the script sets up a systemd service and creates a dedicated user. After install, Hermes runs as that unprivileged user. If your VPS provider only gives you sudo (not root), the install script handles sudo prompts cleanly. Avoid running Hermes itself as root, that is asking for trouble.
Can I install Hermes Agent on shared hosting or only on a VPS?
VPS only. Hermes needs persistent background processes for the messaging gateways, SQLite file access, and the ability to bind ports for the optional web UI. Shared hosting blocks all three. The cheapest 5 EUR VPS from Hetzner or Contabo handles Hermes fine; shared hosting will not install it at all.
What happens if the VPS reboots? Does Hermes restart automatically?
Yes, the install script registers Hermes as a systemd service that restarts on boot. The SQLite skill store and conversation history survive reboots cleanly. The GEPA self-improvement state is also persistent. After a reboot, Hermes resumes with all learned skills intact within 30 seconds of the system coming up.