Chapter 6

Installation and Hosting

Previous chapters covered what Hermes is, how it differs from chat-based AI tools, and what its interfaces look like. This chapter is about getting it onto a machine so you can use it.

Installing a is fundamentally different from two things you might compare it to. Deploying a website means pushing code to a hosting platform — the code runs on their servers, not yours. Installing a desktop app means downloading a closed package — it runs locally, but you cannot change how it works or have it run background services on its own.

Installing Hermes is closer to setting up a development environment. You end up with software on your hardware that can execute tools, persist state, and run background services — under your control, on your machine. That distinction is the whole point: Hermes is not a hosted service. It is a local tool that becomes whatever you configure it to be.

Step 1

Run the install command

On Linux, macOS, or WSL2, open a terminal and run:

bashVerified
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

On Windows (native, early beta), open PowerShell:

powershellVerified
irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1 | iex

One command does all of the following. Watch for each confirmation line in the terminal output:

  • Checks for GitOnly prerequisite. If missing, the installer tells you how to install it and exits.
  • Installs uvFast Python package manager. Auto-downloaded if not present.
  • Installs Python 3.11Managed by uv — no system-wide install needed.
  • Installs Node.js v22Powers browser automation tools (Playwright). Downloaded to ~/.hermes/node/.
  • Installs ripgrep & ffmpegOptional but recommended. Installed via system package manager if sudo is available, skipped with a manual-install hint otherwise.
  • Clones the repoDownloads source to ~/.hermes/hermes-agent/. Tries SSH first, falls back to HTTPS.
  • Creates a virtual environmentIsolates Hermes dependencies from your system Python. Nothing Hermes installs affects other programs.
  • Installs Python & Node dependenciesThe longest step — one to five minutes on a fresh install.
  • Sets up the hermes commandLauncher script in ~/.local/bin/hermes. PATH updated for new terminals.
  • Creates config directories~/.hermes/ structure: config, sessions, skills, memory, cron, logs. Seeds .env, config.yaml, and SOUL.md templates.

If the installer requests sudo, it is only for optional system packages (ripgrep, ffmpeg). The core install works without elevated privileges. Decline sudo and those tools are skipped — file search uses a slower fallback, voice transcription won't work, but everything else runs fine.

Step 2

Run the setup wizard

After the installer finishes, you need to tell Hermes how to reach an AI model. Without a model provider and API key, the agent has no brain to think with.

bashVerified
hermes setup

The wizard walks you through three decisions:

  1. Choose a model provider — Hermes calls external model providers (Nous Portal, OpenRouter, OpenAI, Anthropic, Google, or any OpenAI-compatible endpoint). Your choice is recorded in config.yaml. Switch any time with hermes model.
  2. Enter your API key — Stored in ~/.hermes/.env. Never share or commit this file. Verify with hermes doctor.
  3. Configure tools — Start with defaults (file tools, web search, shell commands). Change later with hermes tools.

Deployment

Where to install: local, VPS, or Docker

The install command is the same everywhere. What differs is what happens after install — and that depends on what you need the agent to do. Start local. Move to VPS when you need always-on services. Add Docker when you want reproducibility or isolation.

Your laptop or desktop

Good for

Learning, testing, on-demand sessions at the terminal. Easiest to reason about — everything is in front of you. After install, open a new terminal and type hermes.

Limitation

When your laptop sleeps or loses internet, the agent stops. Gateway and cron only work while the machine is awake and connected.

Verify

Run hermes doctor. If everything passes, you are ready.

Key Distinction

Hosting the agent ≠ hosting the thing it works on

Hermes is a worker, not a website. If you have an agent that edits your website, the website still needs its own hosting (Netlify, Vercel, GitHub Pages). Hermes does not replace that. It is the worker that makes changes, opens pull requests, runs tests, and deploys — but the product it works on lives where it has always lived.

Agent hosting

Where the runtime lives — a VPS, container, or laptop. Needs Python, internet, and a model provider. Does not need to be publicly accessible (except the gateway for incoming messages).

Product hosting

Where the thing you are building lives — a website on Netlify, a repo on GitHub, a database on AWS. Hermes interacts with these through tools and APIs, but does not host them.

Key Distinction

Installing the runtime vs configuring the agent

Installing places the runtime on a machine — the same code, tools, and directory layout regardless of what you plan to do with it. Configuring tells the runtime which model to use, which tools to enable, and how the agent should behave. The installer handles the first part. The setup wizard bridges into the second. But configuration is ongoing — you will adjust profiles, add skills, and refine memory long after the initial install.

Install

Places the Hermes runtime on a machine. One install supports any number of agent configurations.

Configure

Defines what your agent actually is — its profile, skills, personality, and secrets. This continues long after install.

Step 3

Verify your installation

Work through this checklist after install and setup. If any step fails, hermes doctor is your first stop for diagnosis.

Progress

0/6

Safety

What applies everywhere, regardless of path

Some rules are the same no matter where Hermes runs. These are the ones that catch people off guard:

  • Never commit .env to version control Add it to .gitignore in every project that touches ~/.hermes/. A private repo is still a secret leak waiting to happen.
  • Do not run two agents on the same ~/.hermes/ directory simultaneously Concurrent writers can corrupt session history and cron state. Use separate profiles (which isolate data) or separate directories.
  • Back up before updating Copy .env and config.yaml to a safe location before running hermes update. A config format change could break your setup; a backup lets you roll back in minutes.
  • Lock down approvals on servers For unattended gateway or cron, use smart approval mode (auxiliary LLM assesses risk) or restrict the toolset so dangerous commands cannot run. Chapter 13 covers this in detail.
  • Monitor disk space Session logs and cron output accumulate. On a VPS with limited storage, an unchecked log directory fills the disk silently. Enable the disk-cleanup plugin shipped with Hermes.

You have Hermes running on your laptop with a Telegram bot configured. The gateway works when you are at your desk, but messages go unanswered overnight. What needs to change?