Showing posts with label Hermes Agent. Show all posts
Showing posts with label Hermes Agent. Show all posts

Hermes vs OpenClaw on Virtual Machines: Which Fits Your Setup?

Illustration comparing two AI agents running in identical virtual machines on the same server

Hermes vs OpenClaw comes down to what you want the agent to be. Hermes Agent, from Nous Research, is a self-improving agent that writes its own skills and keeps memory, with a terminal UI and a messaging gateway. OpenClaw is a personal assistant built around one gateway that connects to about 30 chat channels and a public skill registry. Both are MIT-licensed, both officially support Linux, and both need the same care: keep them off the open internet and snapshot before every update.

Who this is for: you want to self-host one AI agent in a home lab or on a VPS, and you want to know which one to set up first.

How this comparison works: it compares both agents from each project's official docs and repo as of 9 October 2026. Lab measurements will follow on the VM spec below. Until then, you see a placeholder where a measured number belongs. I do not print numbers I have not measured.

Hermes vs OpenClaw at a glance

Every product fact below is as of October 2026. Both projects ship often, so verify each one in the Hermes Agent docs and the OpenClaw docs before you rely on it.

FactorHermes AgentOpenClaw
MakerNous ResearchOpenClaw Foundation (created by Peter Steinberger)
LicenseMITMIT
Latest stable (8 Oct 2026)v0.21.62026.9.9
Core ideaAgent that learns: memory, self-written skills, scheduled tasksPersonal assistant across chat apps, with a skill registry (ClawHub)
Native installOfficial install script with pinned Python and Node.jsOfficial install script or npm; Node.js 24.16+ or 26.1+
Docker imagenousresearch/hermes-agentghcr.io/openclaw/openclaw
Docker setupdocker run or a short compose fileRepo checkout plus setup.sh and Docker Compose
Main ports8642 (API, off by default), 9119 (dashboard)18789 (dashboard and WebSocket)
Default bind, native install127.0.0.1Loopback
Default bind, in DockerDashboard on 0.0.0.0Gateway on the LAN
Run as a servicehermes gateway install (systemd)openclaw gateway install (systemd)
Updatehermes update --backup; new image in Dockeropenclaw update; new image tag in Docker
Built-in backuphermes backup / hermes importopenclaw backup create --verify
Local modelsYes (llama.cpp or Ollama); needs 64,000+ tokens of contextYes (managed llama.cpp, Ollama, LM Studio and more)
Published GitHub advisories (9 Oct 2026)None listed722, each with a patched version listed

The advisory count needs context. OpenClaw grew very fast in early 2026 and drew heavy security research. A long advisory list shows scrutiny and fixes, not only risk. An empty list does not prove that Hermes has fewer flaws. It may have had less scrutiny so far.

The planned test VM

Both agents will get the same VM spec, matching the install guides on this site.

SettingValue
OSUbuntu Server 24.04 LTS
vCPUs / RAM / disk2 / 4 GB / 32 GB
NetworkNAT, no inbound ports
Hermes installOfficial script, systemd user service
OpenClaw installDocker Compose, pinned pre-built image, gateway port bound to localhost
ModelThe same cloud model for both

The full steps are in two companion guides: install Hermes Agent on an Ubuntu VM and install OpenClaw in an Ubuntu VM with Docker Compose.

Install and setup

Hermes installs with one script. It brings its own pinned Python and Node.js, so it does not clash with what is on the VM. Setup is a few commands: hermes model, hermes tools and, for chat apps, hermes gateway setup. As of October 2026, pip and Homebrew installs are not supported.

OpenClaw also has a one-line installer that installs Node.js if needed and starts onboarding. Its Docker route has more parts. You clone the repo, run setup.sh, and manage a Compose stack with a gateway service and a CLI service. The compose file publishes three ports on all interfaces by default, so you should edit it before first start.

For a first-time self-hoster, Hermes asks for fewer decisions up front. OpenClaw's Docker route gives more control but needs more care.

Security defaults

Both projects are honest about risk. Neither one claims to contain a misbehaving model on its own.

  • Hermes says the operating system is the only real security boundary. By default, its local terminal backend runs commands on the host with no isolation. Dangerous commands need approval, and the gateway denies every chat user who is not on an allowlist or paired.
  • OpenClaw says sandboxing is off by default and is "not a perfect security boundary" when on. It ships a security audit command and a documented hardened baseline. Its docs state that container images default to an exposed bind, which they pair with required token auth.

The skill supply chain needs care on both. OpenClaw has ClawHub, a public registry of community skills. In early 2026, researchers found hundreds of malicious skills there. OpenClaw responded with VirusTotal scanning, but its own announcement says a clean scan does not mean a skill is safe. Hermes also writes skills from your use, but its Skills Hub can install community skills from registries, ClawHub included, after a security scan. On either agent, read a third-party skill before you install it.

For both, the VM is what turns "the agent ran a bad command" into "I reverted a snapshot". The post on disadvantages of server virtualization covers the limits of VM isolation too.

Ports and remote access

Neither agent needs an inbound port for chat apps. Telegram, Discord and the rest work over outbound connections. You only need a port to reach the web dashboard.

For both, the safe pattern is the same. Keep the dashboard on the VM's localhost and open an SSH tunnel from your own computer. Hermes uses port 9119 for its dashboard. OpenClaw uses port 18789. Never forward either port on your router. On 31 January 2026, Censys counted 21,639 OpenClaw instances exposed on the internet, and most still asked for a token. "Most" is not good enough.

Updates and recovery

This is where a VM pays for itself.

TaskHermes AgentOpenClaw
Updatehermes update --backupopenclaw update --dry-run, then openclaw update
Pin a versionDocker image tagopenclaw update --tag or a Docker image tag
Where state lives~/.hermes/~/.openclaw plus an auth-profile secrets folder
Rollback warningDo not delete the data folder to repair an installDowngrading does not reverse config or database changes
Best rollbackVM snapshotVM snapshot

Both store state in SQLite, and both backups contain credentials. Encrypt them. With Hermes, do not put the data folder on a hypervisor shared folder, because the docs warn that some cross-VM mounts can corrupt the database.

Which one fits your setup?

Choose Hermes Agent if

  • You want an agent that runs tasks, remembers context and improves its own skills over time.
  • You prefer a single install script and a simple systemd service.
  • You want an agent that writes most of its own skills, and you will install third-party skills only after you read them.

Choose OpenClaw if

  • You want one assistant across many chat apps, including WhatsApp, Signal and Microsoft Teams. (iMessage needs a Mac, so it does not fit a Linux-only VM.)
  • You want ready-made community skills and accept the duty to read them first.
  • You are comfortable with Docker Compose and a few security settings.

Can you run both?

Yes, but give each its own VM. OpenClaw's docs say to keep one trust boundary per gateway. Two small VMs also mean two separate snapshot histories, so a bad update to one never touches the other. A home lab makes this cheap. See what a home lab is for ways to start with hardware you already own.

Home VM or VPS?

Both agents run on a small VPS. The OpenClaw docs include guides for several VPS providers, and the Hermes README mentions a $5 VPS. A VPS runs around the clock without a spare PC. A home VM costs nothing extra and keeps your data at home. The rules do not change: an SSH-only firewall, no public dashboard port, and snapshots or backups before updates. If you want an always-on box at home, the home server setup guide covers the hardware.

FAQ

Is Hermes better than OpenClaw?

Neither is better for everyone. Hermes suits people who want a learning agent with a simple install. OpenClaw suits people who want one assistant across many chat apps. Try both in separate VMs for a week and keep the one you use.

Are Hermes Agent and OpenClaw free?

Both are open source under the MIT license. You pay for the model you connect, unless you run a local model. A VPS, if you use one, has its own cost.

Can Hermes and OpenClaw use local models?

Yes. Both can use llama.cpp or Ollama. Hermes rejects models with less than 64,000 tokens of context, so raise Ollama's default. Local models need much more RAM than the agents themselves.

Which is safer to self-host?

Neither is safe by default on the open internet. Both can install community skills, so read each one first. OpenClaw has more published fixes and a security audit command. In both cases, a VM, localhost-only ports and snapshots do most of the work.

Do I need Docker for either one?

No. Both have native installers and official Docker images. Docker gives you pinned versions and easy rebuilds. A VM gives you stronger isolation and snapshots. The guide to containers vs virtual machines explains the trade-off.

Related guides

Install Hermes Agent on an Ubuntu Virtual Machine: Setup, Snapshots, and Recovery

Illustration of an AI agent running safely inside an Ubuntu virtual machine, with snapshot and rollback symbols

A Hermes Agent install on an Ubuntu virtual machine takes four steps. Create an Ubuntu 24.04 VM, install a few packages, and run the official install script. Then choose a model provider with hermes model and run the gateway as a systemd service. Take a VM snapshot before the install and another after it works. If an update or the agent itself breaks something, you revert the snapshot and start again.

Who this is for: you want to try Hermes Agent, the open-source AI agent from Nous Research, without giving it access to your main computer.

Why run Hermes Agent in a virtual machine

Hermes Agent is not a chatbot in a browser tab. It runs shell commands, edits files, keeps memory and can act on a schedule. By default it runs those commands directly on the machine where you install it. The project's own security policy is blunt about this. It says, "The only security boundary against an adversarial LLM is the operating system."

A virtual machine gives the agent its own operating system. If it deletes the wrong folder or installs something odd, the damage stays inside the VM. Your laptop, your photos and your saved browser logins are not in reach. The security docs also suggest a separate machine or VM for maximum isolation. If you want the background on why a VM isolates more than a container, read containers vs virtual machines.

A VM also gives you snapshots. A snapshot saves the whole machine at one point in time. That is the best recovery tool you have for an agent that changes its own environment.

What you need

A hypervisor

Any desktop or server hypervisor works. If you are not sure what that word means, read what a hypervisor is first. Common choices:

  • Proxmox VE on a spare PC or mini PC. Good if the agent should run around the clock. See what Proxmox VE is.
  • VMware Workstation Pro or Fusion Pro on your desktop. As of October 2026, both are free for all use. Verify this on the Broadcom site.
  • VirtualBox on Windows, Linux or macOS (check that your version supports your Mac's chip).

The guide to VMware vs VirtualBox vs Proxmox compares them for a desktop lab. On an Apple Silicon Mac, use an ARM build of Ubuntu in VMware Fusion. As of October 2026, the Hermes platform page lists Linux on both x86_64 and aarch64 as supported.

VM size

Nous Research publishes resource figures only for the Docker container. As of October 2026, those are 1 GB of RAM minimum and 2 to 4 GB recommended, 1 CPU core minimum and 2 recommended. Browser tools need at least 2 GB of RAM. A full VM also needs room for Ubuntu itself, so I suggest the sizes below. They are my suggestion, not an official figure.

ResourceSuggested VM sizeWhy
vCPUs2Matches the recommended container figure
RAM4 GBUbuntu plus the agent plus browser tools
Disk32 GBOS, runtimes, logs, sessions and snapshot headroom
NetworkNAT or bridgedThe agent needs outbound internet only
GPUNoneOnly needed if you run a local model

A model provider

Hermes Agent needs a language model. You can use a cloud provider such as OpenRouter, Anthropic, OpenAI or Nous Portal, with an API key. You can also run a local model through llama.cpp or Ollama. Note one hard rule: Hermes rejects models with less than 64,000 tokens of context. Ollama's default context is lower, so you must raise it. Check the providers page for the current list.

Step 1: Create the Ubuntu VM

Download Ubuntu Server 24.04 LTS from the Ubuntu website. Create a VM with the sizes above and install Ubuntu with default options. Turn on the OpenSSH server during setup so you can work from your own terminal.

Use Ubuntu 24.04. The Hermes docs say they test on the latest Ubuntu. As of October 2026, I found no official statement that Ubuntu 22.04 is tested.

Step 2: Prepare Ubuntu

Log in over SSH as your normal user, not root. Update the system and install the prerequisites:

sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl tar libatomic1

The installer needs Git, curl, tar and SHA-256 tools. Ubuntu ships the SHA-256 tools already. The libatomic1 package is there for a reason. Early installs on minimal Ubuntu 24.04 images failed silently without it. The current installer adds it for you, but installing it first costs nothing.

Step 3: Take a clean snapshot

Shut down the VM and take a snapshot. Name it something plain, such as clean-ubuntu. This is your return point if the install goes wrong.

  • Proxmox: select the VM, open Snapshots, click Take Snapshot.
  • VMware: VM menu, Snapshot, Take Snapshot.
  • VirtualBox: Machine Tools, Snapshots, Take.

Step 4: Run the Hermes Agent install script

Start the VM and run the official one-line installer from the Hermes installation docs:

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Read any script before you pipe it to bash. You can download it first with curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o install.sh, read it, then run bash install.sh.

The script brings its own pinned Python and Node.js runtimes. It does not use your system Node.js. As of October 2026, pip, PyPI and Homebrew installs are not supported, so use the script. When it finishes, reload your shell and start the agent:

source ~/.bashrc
hermes

Here is where the files go:

  • Code: ~/.hermes/hermes-agent/
  • Launcher: ~/.local/bin/hermes
  • Data: ~/.hermes/, including config.yaml, .env (your API keys), memories, skills, sessions and state.db

Step 5: Choose a model and tools

Run the setup commands. You can do them one at a time or run the full wizard with hermes setup.

hermes model          # choose your provider and model
hermes tools          # choose which tools the agent may use
hermes config get     # check a setting

Start with few tools. Lock down the key file at the same time:

chmod 600 ~/.hermes/.env

Step 6: Run Hermes as a service

To keep the agent running after you log out, install the gateway as a systemd user service. Then turn on lingering so the service starts at boot without a login:

hermes gateway install
hermes gateway start
hermes gateway status
sudo loginctl enable-linger $USER

View the logs with journalctl --user -u hermes-gateway -f or hermes logs gateway -f.

Connect a chat app (optional)

The gateway can talk to you through Telegram, Discord, Slack, Signal, email and others. Run hermes gateway setup and follow the prompts. As of October 2026, the gateway denies every user who is not on an allowlist or paired. Keep it that way. Never set GATEWAY_ALLOW_ALL_USERS=true. Chat platforms need no inbound port on the VM.

Step 7: Snapshot the working agent

Once the agent answers you, shut down the VM and take a second snapshot, such as hermes-working. You now have two return points: a clean OS and a known-good agent.

Snapshots, backups and recovery

Snapshots and backups do different jobs. Use both.

ToolWhat it savesUse it when
VM snapshotThe whole VM: OS, agent code and dataBefore every update or big config change
hermes backupA zip of your Hermes data, including credentialsTo move the agent to a new VM, or keep a copy off the VM
hermes update --backupA full backup, then the updateEvery routine update

A safe update routine looks like this:

  1. Take a VM snapshot.
  2. Run hermes update --backup.
  3. Test the agent with one simple task.
  4. If it fails, revert to the snapshot. If it works, delete old snapshots after a few days.

To restore on a fresh VM, install Hermes, then run hermes import with the backup zip. The backup holds your API keys, so store it like a password.

Do not delete ~/.hermes/ to fix a broken install. The docs warn against it, because that folder holds all of your agent's state. Revert the snapshot instead.

Do not keep the data on a shared folder

Hermes stores state in an SQLite database in WAL mode. The Docker docs warn that bind mounts across a VM boundary (virtiofs, 9p and drvfs) can silently corrupt it. Keep ~/.hermes/ on the VM's own disk. Do not move it to a hypervisor shared folder to "save space".

Security hardening checklist

  • Run as a normal user. Never run the gateway as root.
  • Keep approvals on. Leave dangerous-command approval in smart or manual mode. Unattended and cron sessions deny by default.
  • Keep ports closed. The API server (port 8642) is off by default. The dashboard (port 9119) runs only when you start it with hermes dashboard --no-open, and it binds to 127.0.0.1. Reach it through an SSH tunnel: ssh -L 9119:localhost:9119 you@vm-address.
  • Use allowlists for every chat platform.
  • Give the VM no secrets it does not need. Do not copy your SSH keys or cloud credentials into it.
  • Consider a Docker terminal backend. Install Docker Engine in the VM, then set terminal.backend: docker. Shell and file tools then run in a container inside the VM. Note that Hermes skips command approval on this backend, because it treats the container as the boundary.

See the Hermes security guide for the full list.

Alternative: Hermes Agent in Docker inside the VM

If you prefer containers, the official image is nousresearch/hermes-agent, for amd64 and arm64. Install Docker in the VM from the Docker Engine docs for Ubuntu. Use this instead of the native install, not alongside it. Both use ~/.hermes, and two gateways must never share one data folder. Then run the first-time setup:

mkdir -p ~/.hermes
docker run -it --rm \
  -e HERMES_UID=$(id -u) -e HERMES_GID=$(id -g) \
  -v ~/.hermes:/opt/data \
  nousresearch/hermes-agent setup

Then start the gateway:

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -e HERMES_UID=$(id -u) -e HERMES_GID=$(id -g) \
  -v ~/.hermes:/opt/data \
  nousresearch/hermes-agent gateway run

Two differences matter. First, hermes update refuses to run in Docker. You update by pulling a new image. Second, the dashboard runs only if you set HERMES_DASHBOARD=1, and inside the container it binds to 0.0.0.0. If you need it, publish it as -p 127.0.0.1:9119:9119 and use an SSH tunnel. If you use browser tools in Docker, add --shm-size=1g.

Troubleshooting

ProblemFix
hermes: command not foundRun source ~/.bashrc, or check that ~/.local/bin is in your PATH.
Installer exits with no message on minimal UbuntuRun sudo apt install libatomic1, then run the script again.
Installer hangs while it downloads a browserRun bash install.sh --skip-browser, or curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browser. Add browser tools later, as the install docs describe.
"API key not set"Run hermes model and enter the key again.
Local Ollama model rejectedRaise the model's context to 64,000 tokens or more.
Config errors after an updateRun hermes config check, then hermes config migrate.
Anything elseRun hermes doctor. If it still fails, revert to your snapshot.

FAQ

Is Hermes Agent free?

The agent is open source under the MIT license. You pay for the model you connect, unless you run a local model. Check your provider's pricing page for current rates.

Can I install Hermes Agent with pip?

No. As of October 2026, the platform page lists pip and PyPI installs as unsupported. Use the official install script or the Docker image.

How much RAM does Hermes Agent need?

The official container figure is 1 GB minimum and 2 to 4 GB recommended. Browser tools need at least 2 GB. For a full Ubuntu VM, 4 GB is a comfortable start.

Does Hermes Agent work on Ubuntu 22.04?

It may work, because the docs say most glibc and systemd distributions are likely to work. As of October 2026, I found no official test of 22.04. Use 24.04 to stay on the tested path.

Is a VM safer than running Hermes on my laptop?

Yes. The agent runs commands on whatever machine it lives on. A VM limits that to a disposable system you can snapshot and revert. It is not perfect isolation, so still keep secrets out of the VM.

Can I run Hermes Agent in a VM on an Apple Silicon Mac?

As of October 2026, Hermes lists Linux on aarch64 as supported, so an ARM Ubuntu VM is a valid target. VMware Fusion Pro can run ARM Ubuntu. Hermes also runs natively on macOS, but then it has access to your Mac.

Related guides