Featured image of post How to Install Hermes Agent on WSL2 (2026)

How to Install Hermes Agent on WSL2 (2026)

Install the Hermes self-hosted AI agent on WSL2 — the official one-liner, setup wizard, gateway start, and running it as a systemd user service. Verified against a live instance.

Hermes is a self-hosted, self-improving AI agent (Python, MIT). On WSL2 it installs the same way as on Linux — the official installer lands under ~/.hermes. This guide was verified against a live WSL2 instance running Hermes v0.16.0.

1. Install (official one-liner)

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

The installer handles its own dependencies: uv, Python 3.11, Node.js, ripgrep, and ffmpeg. On WSL2 it detects your existing Git and uses it (no bundled Git needed). Everything lands in ~/.hermes, isolated from your system Python.

Verify the binary is on your PATH:

1
hermes --version

2. Run the setup wizard

1
hermes setup

This walks through configuration in one pass — model provider, channels, skills. For a guided web UI:

1
hermes setup --portal

3. Start the gateway + chat

1
2
hermes gateway setup    # configure messaging channels
hermes gateway start    # start the gateway

Then send your bot a message on a configured channel. That’s the happy path: install → setup → gateway start → chat.

4. (Optional) Run it as a systemd user service

hermes gateway start runs in your terminal; closing the terminal stops it. To keep Hermes running across logouts and start it at login, run it as a systemd user service. The unit below is adapted from a real running instance (verified 2026-07-31) — save it as ~/.config/systemd/user/hermes-gateway.service:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[Unit]
Description=Hermes Agent Gateway - Messaging Platform Integration
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=%h/.hermes/hermes-agent/venv/bin/python -m hermes_cli.main gateway run
WorkingDirectory=%h/.hermes
Environment="HERMES_HOME=%h/.hermes"
Restart=always
RestartSec=5

[Install]
WantedBy=default.target

Then enable + start it, and enable lingering so user services run without an active login session:

1
2
3
4
systemctl --user daemon-reload
loginctl enable-linger $USER
systemctl --user enable --now hermes-gateway.service
systemctl --user status hermes-gateway.service

%h expands to your home directory, so the unit is portable across users on the standard ~/.hermes install path.

Troubleshooting

  • hermes not found — the installer puts the binary at ~/.hermes/hermes-agent/venv/bin/hermes and symlinks it into ~/.local/bin. Make sure ~/.local/bin is on your PATH (it usually is on WSL2).
  • Service won’t start — check journalctl --user -u hermes-gateway.service -f. The most common cause is an incomplete hermes setup (missing model provider or channel config).
  • WSL2 + Windows PATH noise — your service PATH may include Windows paths inherited from WSL2. That’s cosmetic; the venv python is what actually runs.

Sources + freshness

Install steps follow the official Hermes docs (quickstart, install.sh). The systemd unit and the ~/.local/bin symlink detail were verified against a live WSL2 instance on 2026-07-31 (Hermes v0.16.0). Hermes moves fast — re-check the installer URL and version before deploying.