Hermes Agent Setup Guide: Run NousResearch's Agent 24/7 on Telegram

Hermes Agent is NousResearch's open-source AI agent, and it has quickly become one of the most interesting agents you can actually run yourself. This guide covers a complete Hermes Agent install on your own Linux VM — the same steps a production deployment uses — plus configuration, Telegram pairing, and the managed alternative if you'd rather skip the terminal.

What Is Hermes Agent?

Where most chatbots reset with every conversation, Hermes Agent is built to accumulate capability over time:

In practice that combination changes how you use an agent. You can teach Hermes a skill once — "every morning, pull my calendar, summarize my unread email, and message me a briefing" — and it becomes a scheduled job that just happens. Ask it to track a project and the context is still there next week. Wire in an MCP server for your task tracker or database and those tools become part of its vocabulary.

If you're weighing it against OpenClaw, read OpenClaw vs Hermes Agent — short version: OpenClaw is the stronger everyday personal assistant, while Hermes shines for skill-heavy, long-running workflows. Many people end up running both.

Prerequisites

Step 1: Create a User and Clone the Release

Run the agent under its own system user, never as root. Then clone the repository and check out the latest release tag (currently v2026.7.20):

useradd -m -s /bin/bash hermes
git clone https://github.com/NousResearch/hermes-agent.git /opt/hermes-agent
cd /opt/hermes-agent
git fetch --depth=1 origin tag v2026.7.20
git checkout v2026.7.20
chown -R hermes:hermes /opt/hermes-agent

Step 2: Install uv, Python 3.11, and Dependencies

As the hermes user, install uv, let it provision Python 3.11, create a virtual environment, and sync the project with all extras:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.11
cd /opt/hermes-agent
uv venv venv --python 3.11
uv sync --all-extras --locked

If the lockfile sync ever fails on your platform, uv pip install -e ".[all]" into the same venv is the fallback. Optionally symlink the CLI so it's on your PATH (ln -s /opt/hermes-agent/venv/bin/hermes ~/.local/bin/hermes), then run hermes doctor to sanity-check the install.

Step 3: Run It as a systemd Service

The gateway must survive crashes and reboots, so give it a service unit at /etc/systemd/system/hermes.service:

[Unit]
Description=Hermes Agent Gateway
After=network.target

[Service]
Type=simple
User=hermes
WorkingDirectory=/opt/hermes-agent
EnvironmentFile=-/etc/hermes/user.env
ExecStart=/opt/hermes-agent/venv/bin/hermes gateway
Restart=always

[Install]
WantedBy=multi-user.target

Enable it with systemctl daemon-reload && systemctl enable --now hermes, then confirm it's healthy with systemctl is-active hermes and journalctl -u hermes.

Step 4: Configuration

Hermes reads secrets from an environment file (/etc/hermes/user.env, mirrored to ~/.hermes/.env) — keep it chmod 600:

TELEGRAM_BOT_TOKEN=123456:ABC...   # from @BotFather
TELEGRAM_ALLOWED_USERS=your_username
GATEWAY_ALLOW_ALL_USERS=false
GOOGLE_API_KEY=...   # or ANTHROPIC_API_KEY / OPENAI_API_KEY

Model and provider selection lives in ~/.hermes/config.yaml. Point it at whichever model your API key unlocks — current well-supported options include:

Keep GATEWAY_ALLOW_ALL_USERS=false. Your bot is reachable by anyone who finds its username; the allowlist plus pairing is what keeps strangers from spending your API credits.

Step 5: Pair Your Telegram Account

With the service running, open your bot in Telegram and send /start. Hermes responds with a pairing code; approve it and your account is linked. From that point the agent answers you — and only you — 24/7, with its memory and skills accumulating from the first conversation.

What to try first

Good opening moves that exercise the parts that make Hermes different:

Troubleshooting the Install

The failure modes are predictable, so here's the short list:

Keeping It Updated

Hermes Agent releases move quickly, and updating a manual install is the same dance every time: fetch the new release tag in /opt/hermes-agent, check it out, re-run uv sync --all-extras, and restart the service. Budget a few minutes per release — more when a release changes configuration format and you need to read the changelog first. It's not hard work, but it never stops arriving, and skipping updates means missing new skills and fixes.

The Hosted Alternative: Hermes on Claw Deployer

Everything above is exactly what Claw Deployer automates. Choose Hermes Agent in the deploy form and it provisions a dedicated Hetzner VM, checks out the latest release tag, builds the uv environment, writes the systemd unit and locked-down env files, starts the gateway, and hands you the pairing step — in under a minute instead of an afternoon. Release updates and service recovery are handled from then on.

You can also run Hermes alongside OpenClaw on the same server: each agent gets its own system user, directory, environment file, and systemd service, with its own Telegram bot token. It's a clean way to use OpenClaw as your daily assistant while Hermes handles scheduled, skill-based work. The deployment walkthrough shows the full dashboard flow, and plans start at $29/mo.

Run Hermes Agent Without the Terminal

Deploy NousResearch's Hermes Agent on a dedicated server in under a minute — bring your bot token and API key, we do the rest.

Chat with us