Showing posts with label AI Agents. Show all posts
Showing posts with label AI Agents. 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 OpenClaw in an Ubuntu VM with Docker Compose

Illustration of an AI agent running in Docker containers inside a virtual machine, with a locked network port

This OpenClaw Docker guide runs the agent inside an Ubuntu VM. Install Docker Engine with the Compose plugin, and clone the OpenClaw repo. Then run the official setup script with a pinned pre-built image. The script asks for your model API key, creates a gateway token and starts the stack. Before you use it, bind the dashboard port to localhost and reach it over an SSH tunnel.

Who this is for: you want to try OpenClaw, the open-source personal AI agent (once called Clawdbot and Moltbot), in a setup you can throw away and rebuild.

Why a VM and Docker, not your main computer

OpenClaw connects a language model to your chat apps, your files and a shell. That power is the point, and it is also the risk. On 31 January 2026, Censys counted 21,639 OpenClaw instances reachable on the internet. In early February, security researchers reported hundreds of malicious skills on ClawHub, the public skill registry. As of 9 October 2026, the project's GitHub page lists more than 700 security advisories, most of them fixed.

None of that means "do not use it". It means "do not run it next to your personal data". Two layers help:

  • The VM gives OpenClaw its own operating system, kernel and disk. Your laptop is out of reach, and snapshots let you undo anything.
  • Docker inside the VM gives you a pinned image, a clear list of data folders and a one-command rebuild.

Docker alone shares the host kernel, so it isolates less than a VM. The guide to containers vs virtual machines explains the difference. Here you get both.

What you need

  • A hypervisor. Proxmox VE on a spare PC, VMware Workstation or Fusion, or VirtualBox. See VMware vs VirtualBox vs Proxmox if you have not picked one. As of October 2026, OpenClaw publishes images for AMD64 and ARM64, so an ARM Ubuntu VM on an Apple Silicon Mac is a valid target.
  • Ubuntu Server 24.04 LTS. The OpenClaw docs say Linux is fully supported and give Ubuntu setup steps. As of October 2026, they do not publish a tested list of distribution versions.
  • A model. An API key from a provider such as Anthropic, OpenAI or OpenRouter, or a local model server such as Ollama.

VM size

OpenClaw publishes no general minimum for a Linux server. Its Raspberry Pi page states 1 GB of RAM, 1 core and 500 MB of disk as a floor. Building the Docker image from source needs at least 6 GB of RAM, but a pre-built image avoids that. The sizes below are my suggestion for a comfortable lab VM, not an official figure.

ResourceSuggestedNote
vCPUs2One is enough to start
RAM4 GBUse the pre-built image. A source build needs 6 GB or more.
Disk32 GBOS, Docker images, workspace and snapshots
NetworkNATOpenClaw needs outbound access only

Step 1: Create the VM and install Docker

Create the VM, install Ubuntu Server with the OpenSSH server, and log in as your normal user. Update the system:

sudo apt update && sudo apt upgrade -y
sudo apt install -y git

Install Docker Engine and the Compose plugin with the steps on the Docker Engine install page for Ubuntu. Use Docker's own repository, not the older docker.io package, so you get Compose v2. Check both tools:

docker --version
docker compose version

Shut down the VM and take a snapshot called docker-ready. This is your clean return point.

Step 2: Get the OpenClaw Docker Compose files

The Docker setup runs from a checkout of the official repo:

git clone https://github.com/openclaw/openclaw.git
cd openclaw

Pick a version and pin it. As of 8 October 2026, the latest stable release was 2026.9.9. Check the releases page for the current one, and use that tag in place of latest:

export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:2026.9.9"

A pinned tag means the agent does not change under you when you restart. Only download images from ghcr.io/openclaw/openclaw or the openclaw/openclaw Docker Hub mirror. The docs warn against unofficial mirrors.

Step 3: Close the ports before first start

This step is not in the quick start, and it matters. Open docker-compose.yml and find the ports: block of the openclaw-gateway service. As of October 2026, it publishes three ports on every network interface:

    ports:
      - "${OPENCLAW_GATEWAY_PORT:-18789}:18789"
      - "${OPENCLAW_BRIDGE_PORT:-18790}:18790"
      - "${OPENCLAW_MSTEAMS_PORT:-3978}:3978"

Port 18789 serves the dashboard and the WebSocket API. Port 3978 is for Microsoft Teams. The old bridge on port 18790 is gone. Current builds use 18790 only if you turn on MCP Apps. If you do, add a second localhost line for it and tunnel it too. Change the block so the gateway listens on the VM's localhost only, and drop the ports you do not use:

    ports:
      - "127.0.0.1:${OPENCLAW_GATEWAY_PORT:-18789}:18789"

Why edit the file? The container binds the gateway to the LAN by default, and the OpenClaw security docs say so plainly. Also, ports that Docker publishes skip the host's normal firewall rules, so UFW alone does not protect them. The gateway still requires a token, but a closed port is a stronger default. Keep a note of this change, because git pull may conflict with it later.

Step 4: Run the setup script

From the repo folder, run the official script:

./scripts/docker/setup.sh

With OPENCLAW_IMAGE set, the script pulls the pre-built image instead of building one. It then asks for your model provider's API key, writes a gateway token to .env and starts the gateway with Docker Compose. The full flow is on the OpenClaw Docker page.

Check that the stack is up:

docker compose ps
docker compose logs -f openclaw-gateway

Step 5: Open the dashboard over an SSH tunnel

From your own computer, open a tunnel to the VM:

ssh -N -L 18789:127.0.0.1:18789 you@vm-address

Keep local port 18789. The setup script allows only that origin for the dashboard.

Then, in the VM, print the dashboard link:

docker compose run --rm openclaw-cli dashboard --no-open

Open the link in your browser. If the page says pairing required or unauthorized, approve your browser as a device:

docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>

Add a chat channel (optional)

The docs suggest Telegram first, because it needs only a bot token. Run the CLI through Compose:

docker compose run --rm openclaw-cli channels add --channel telegram --token <bot-token>

Start the line with a space, or clear it from your shell history afterwards, so the token is not saved. Unknown senders get a pairing code by default. Leave that on.

Step 6: Harden the install

  • Run the audit. docker compose run --rm openclaw-cli security audit checks your config against the safe defaults.
  • Treat skills as untrusted code. The docs say to read a skill before you enable it. A clean ClawHub scan does not prove a skill is safe.
  • Tighten tools with the hardened baseline. The OpenClaw security docs list it. It denies shell commands, limits file access to the workspace and turns off elevated tools. In Docker, copy only its tools and channels settings. Leave gateway.bind as lan and keep the token that setup created. A loopback bind inside the container makes the dashboard unreachable.
  • Keep secrets out of the VM. Do not sign the agent into accounts it does not need.
  • Leave the Docker socket mount off. It is commented out in the compose file. Mounting it gives the container control of Docker on the VM.

Snapshots, backups and rollback

OpenClaw keeps its state in three folders on the VM, mounted into the container:

  • ~/.openclaw: config, the .env file and the SQLite databases
  • ~/.openclaw/workspace: the agent's working files
  • ~/.openclaw-auth-profile-secrets: auth profile secrets

The docs warn that OAuth tokens sit in plain text in SQLite under the config folder. Treat every copy of these folders as a password vault.

Also, never copy live .sqlite, -wal or -shm files. Stop the stack first:

docker compose down
sudo tar czf ~/openclaw-backup-$(date +%F).tar.gz ~/.openclaw ~/.openclaw-auth-profile-secrets ~/openclaw/.env ~/openclaw/docker-compose.yml
docker compose up -d openclaw-gateway

The repo's .env holds the image pin and the gateway token, so the archive is a secret. Encrypt it before it leaves the VM.

A safe upgrade routine

  1. Take a VM snapshot.
  2. In the repo folder, edit .env and set OPENCLAW_IMAGE to the new version tag.
  3. Run docker compose pull openclaw-gateway openclaw-cli.
  4. Run docker compose up -d openclaw-gateway.
  5. Test one simple task.
  6. If it fails, revert the snapshot. Do not just switch the tag back, because the new version may have migrated the database.

On start, the image runs openclaw doctor --fix and saves SQLite backups ending in .pre-startup-migration-<id>.bak. Still, the docs say a downgrade does not reverse config or database changes. That is why the VM snapshot is your real rollback.

Troubleshooting

SymptomFix
EACCES on /home/node/.openclawThe image runs as user ID 1000. Run sudo chown -R 1000:1000 ~/.openclaw ~/.openclaw-auth-profile-secrets.
Build killed, exit code 137Out of memory. Use a pre-built image with OPENCLAW_IMAGE.
pairing required or disconnected (1008)Run devices list, then devices approve, as in step 5.
origin not allowedAdd your dashboard URL to gateway.controlUi.allowedOrigins.
EADDRINUSEAnother gateway uses the port. Stop it or change OPENCLAW_GATEWAY_PORT.
Config change has no effectdocker compose restart does not reload env changes. Run docker compose up -d openclaw-gateway.
Skill fails with brew not installedThe image has no Homebrew. Build a local image with OPENCLAW_IMAGE_APT_PACKAGES set (a source build needs 6 GB of RAM), or build your own image on top of the official one.

For anything else, run docker compose run --rm openclaw-cli doctor --json and read the findings. If that does not fix it, revert the snapshot and start again.

Docker or the native install?

OpenClaw also has a one-line native installer that sets up Node.js and a systemd service. On a host install, the gateway binds to loopback by default. The Docker route gives you a pinned image and easy rebuilds. The native route gives you openclaw update and fewer moving parts. In a VM, both are fine. If you also want to try Hermes Agent, read the Hermes Agent Ubuntu VM guide, then the Hermes vs OpenClaw comparison.

FAQ

What port does OpenClaw use?

The gateway uses port 18789 for the dashboard and the WebSocket API. As of October 2026, the compose file also publishes 18790 and 3978 (Microsoft Teams). Bind 18789 to localhost and reach it with an SSH tunnel or Tailscale.

How much RAM does OpenClaw need in Docker?

A pre-built image runs in far less than a source build. The docs say a source build needs at least 6 GB of RAM. For a lab VM, 4 GB with a pre-built image is a comfortable start.

Is OpenClaw safe to run?

It is as safe as your setup. Keep the gateway off the public internet, use token auth, read every skill before you enable it, and keep personal accounts out of it. A VM with snapshots limits the damage if something goes wrong.

Is a VPS better than a home VM for OpenClaw?

A VPS runs around the clock and needs no hardware at home. A home VM keeps your data on your own machine and costs nothing extra. On either, use an SSH-only firewall and never expose the gateway port directly.

Can I run OpenClaw on Proxmox?

Yes. Create an Ubuntu VM on Proxmox and follow this guide. As of October 2026, OpenClaw has no official Proxmox page, so treat the VM as any Linux Docker host. See what Proxmox VE is if you are new to it.

How do I update OpenClaw in Docker?

Take a snapshot, set the new tag in the repo's .env file, run docker compose pull, then docker compose up -d openclaw-gateway. Avoid latest, so you know which version you run.

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

Virtualization Examples: 10 Real Uses at Home and at Work

Illustration of six everyday examples of virtualization at home and at work

Common virtualization examples include cloud servers, the Linux environment in WSL2 on Windows, the Android emulator, Windows Sandbox, virtual desktops at work and test labs. Each one runs a computer, or part of one, in software on top of real hardware. You likely use several of them every week without noticing. This guide walks through ten real uses at home and at work.

Updated October 2026. This guide replaces the 2009 version with current tools and a home lab focus.

Who this is for: you understand the idea of virtualization, and you want concrete examples of where it shows up and what problem it solves in each case.

New to the idea? Start with what virtualization is and how it works, then come back for the examples.

Virtualization examples at a glance

Each example below uses a different form of virtualization. If the names in the second column are new, the guide to types of virtualization explains each one.

#ExampleType of virtualizationWhere you meet it
1Cloud serversServerWebsites and apps you use every day
2Server consolidationServerOffice server rooms and data centers
3WSL2 on WindowsLightweight VM plus containersDeveloper laptops
4Android emulatorHardware-accelerated VMApp development and testing
5Windows SandboxDisposable VMOpening files you do not trust
6Virtual desktops (VDI and DaaS)DesktopRemote work, call centers, contractors
7Software testingServer and desktop VMs, snapshotsQA teams, IT admins, students
8Legacy appsServer or desktop VMOld business software on new hardware
9Home labServer, containers, storage, networkSpare PCs and mini PCs at home
10AI agents in a VMServer VMSelf-hosted AI tools

Examples of virtualization in everyday tech

1. Cloud servers

When you rent a server from a cloud provider, you almost always get a virtual machine. Amazon's own EC2 documentation describes an EC2 instance as "a virtual server in the AWS Cloud." The provider runs a hypervisor on large physical hosts and sells slices of them. You pick the CPU, memory and disk size, and you can resize or delete the server in minutes.

This is why a small business can host a website without buying hardware. It is also why many apps you use run on virtual servers somewhere.

2. Server consolidation at work

Before virtualization, many offices ran one app per physical server. Most of those servers sat idle most of the time. Server virtualization puts several of those workloads on one host as VMs. You get fewer boxes to power, cool and patch.

This is the classic business example, and it is still the most common one. Read what server virtualization is for how it works, and the guide to virtualization for small business for what it costs a small team.

3. WSL2: Linux inside Windows

Windows Subsystem for Linux lets you run Linux tools on a Windows PC. It feels like a native app, but WSL2 uses virtualization under the hood. As of October 2026, the Microsoft WSL documentation says WSL 2 runs a Linux kernel inside a lightweight utility virtual machine. Each Linux distribution then runs as an isolated container inside that VM.

So one tool uses two kinds of virtualization at once: a VM for the kernel, and containers for the distributions. Windows manages the VM for you, so you never see it.

4. The Android emulator

App developers test Android apps on a virtual phone. The Android emulator runs a virtual device on your PC. As of October 2026, the Android emulator acceleration docs say it uses the Windows Hypervisor Platform on Windows, Hypervisor.Framework on macOS and KVM on Linux.

The same page notes a limit worth knowing. You cannot run a VM-accelerated emulator inside another VM. It must run directly on the host.

5. Windows Sandbox

Windows Sandbox gives you a clean, temporary Windows desktop in a window. You open a suspicious download inside it. When you close the sandbox, everything inside is deleted.

As of October 2026, the Windows Sandbox documentation says it uses hypervisor-based virtualization to isolate a separate kernel from the host. It is an optional feature in Windows Pro, Enterprise and Education, and you turn it on first. It is not supported on Windows Home.

Security researchers use the same idea on a bigger scale. They study malware inside isolated VMs, with snapshots to reset after each run. If you do this, keep the VM off your main network.

Business virtualization use cases

6. Virtual desktops (VDI and DaaS)

Many workers sign in to a desktop that runs on a server, not on their laptop. The company keeps data in the data center, patches one master image and gives contractors a desktop for exactly as long as they need one. The guide to what VDI is compares VDI, DaaS and session-based desktops.

7. Software testing

Testers need clean machines, and many of them. With VMs, a tester can:

  • Run the same app on several OS versions side by side.
  • Take a snapshot, install a build, test it, then roll back in seconds.
  • Clone ten identical test machines from one template.
  • Reproduce a customer's setup without touching real hardware.

IT admins use the same trick before they roll out a patch. They test it on a VM copy of a server first.

8. Keeping legacy apps alive

Some businesses depend on an old app that only runs on an old OS. New hardware may not support that OS. A VM solves this. The old OS runs on virtual hardware that it understands, on top of a modern host.

There is a catch. An old, unpatched OS is a security risk. Isolate the VM on its own network segment, limit who can reach it and plan a real replacement.

Home and hobby examples

9. A home lab

A home lab is a small set of servers at home for learning and self-hosting. One mini PC or old desktop runs a hypervisor such as Proxmox VE. It hosts VMs and containers for an ad blocker, a media server, file shares and test boxes. Its disks sit in a storage pool, and its VMs connect through virtual networks.

A home lab is the best way to see several types of virtualization working together. Start with what a home lab is and how to start one. For a list of things to build, see home lab projects.

10. AI agents in a virtual machine

Self-hosted AI agents can run commands, edit files and browse the web for you. That power is also the risk. If an agent makes a mistake, or a bad prompt or skill steers it, it can damage the system it runs on.

A VM gives the agent its own disposable computer. You take a snapshot before you install it. If something goes wrong, you roll back. The agent cannot see your main files unless you share them. The guide to installing Hermes Agent on an Ubuntu VM shows this pattern step by step. To compare two popular agents for this setup, read Hermes vs OpenClaw on virtual machines.

What the examples have in common

Look across the ten examples and the same few benefits repeat:

  • Isolation. Sandbox, malware analysis, legacy apps and AI agents all use a VM as a wall.
  • Snapshots and rollback. Testing, agents and home labs depend on undo.
  • Sharing hardware. Cloud servers, consolidation and home labs run many systems on one host.
  • Running another OS. WSL2, the Android emulator and legacy VMs all run an OS the host does not.

Some examples use containers instead of full VMs, or both together. The guide to containers vs virtual machines explains when each one fits.

Try one of these examples today

You do not need a server to start. Pick the example that matches the computer you have:

  • Any Windows 10 or 11 PC: install WSL2 and a Linux distribution. On Pro, Enterprise or Education, you can also turn on Windows Sandbox.
  • Any Windows, Mac or Linux PC: install a desktop hypervisor and build a test VM. The guide to VMware vs VirtualBox vs Proxmox helps you pick one.
  • A spare PC: install Proxmox VE and start a home lab.

Check that hardware virtualization (Intel VT-x or AMD-V) is turned on first. The guide on how to enable virtualization in BIOS shows how. Most of these examples need it.

Common mistakes

  • Thinking virtualization is only for data centers. If your laptop runs WSL2 or Windows Sandbox, it already runs a hypervisor.
  • Treating a VM as perfect isolation. A VM is a strong wall, not a guarantee. Keep risky VMs patched and off your main network.
  • Running two hypervisor apps at once. Desktop hypervisors and the Windows hypervisor can clash. Check each tool's docs.
  • Keeping a legacy VM forever. A VM buys time. It does not fix an unsupported OS.
  • Skipping backups because "it's only a VM". Snapshots are not backups. Copy important VMs to another device.

FAQ

What is a simple example of virtualization?

Running a Linux virtual machine in a window on a Windows laptop is the simplest example. One physical computer runs two operating systems at once. The VM thinks it has its own hardware.

Is cloud computing an example of virtualization?

Yes, in most cases. Cloud providers run hypervisors on large hosts and rent out virtual servers. AWS describes an EC2 instance as a virtual server in the AWS Cloud.

Is WSL2 a virtual machine?

Partly. Microsoft says WSL 2 runs a Linux kernel inside a lightweight utility VM, and each distribution runs as a container inside it. Windows manages that VM for you.

What are examples of virtualization in cloud computing?

Rented virtual servers, such as Amazon EC2 instances, are the main example. Cloud desktops such as Windows 365 and Amazon WorkSpaces are another. Managed container and Kubernetes services also run on virtualized hosts.

What is virtualization used for at home?

At home, people use it to test software, run Linux on Windows, open risky files safely and run a home lab for services such as an ad blocker or a media server. Some now run AI agents in a VM so they can roll back mistakes.

Related guides