How to install Hermes Agent on a Raspberry Pi 5

Hermes Agent on a Raspberry Pi 5 with the official installer: 64-bit Raspberry Pi OS, a model picked with hermes model, then the chat gateway as a service.

Prerequisites

  • A Raspberry Pi 5 on Raspberry Pi OS (64-bit). Hermes Agent supports Linux on x86_64 and aarch64; the 32-bit OS is not on its platform list.
  • The official USB-C power supply: the Pi 5 asks for 5V/5A over USB-C with Power Delivery.
  • An API key for a model provider (Anthropic, OpenAI, OpenRouter...) or a Nous Portal account: the model runs at the provider, the Pi runs the agent.
  • SSH access to the Pi, and Git, curl and tar on it (the install script needs them).
  • Optional: a Telegram, Discord or Slack bot token, to talk to the agent from your phone.

Steps

  1. Flash Raspberry Pi OS (64-bit)

    Use Raspberry Pi Imager and pick Raspberry Pi OS (64-bit); the Lite image is enough for a headless host. In the customisation screen set the hostname, your Wi-Fi and SSH with a public key. Boot the Pi, log in over SSH, update it, and check that the kernel reports aarch64.

    ssh pi@<pi-hostname>.local
    sudo apt update && sudo apt full-upgrade -y
    uname -m   # must print aarch64
  2. Install what the installer expects

    On Linux the install script needs Git, curl, tar and a SHA-256 tool; it downloads its own pinned uv and Python itself.

    sudo apt install -y git curl tar coreutils
  3. Run the official installer

    The script clones Hermes Agent into ~/.hermes/hermes-agent/, puts the hermes launcher in ~/.local/bin/ and keeps your data in ~/.hermes/. By default it also installs a browser tool with its own Chromium and a computer-use driver; on a headless Pi you can skip both and add the browser later with hermes pm install agent-browser. Prefer containers? Nous Research also publishes nousresearch/hermes-agent on Docker Hub for amd64 and arm64; the platform page notes that Docker installs cannot use hermes update.

    curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browser --skip-computer-use
    source ~/.bashrc
    hermes doctor   # lists anything missing and how to fix it
  4. Pick a provider and a model

    hermes model chooses the provider and the model; hermes setup runs the whole guided setup in one pass instead. Hermes' security docs say to keep API keys in ~/.hermes/.env with tight file permissions.

    hermes model
    # or the full wizard:
    hermes setup
    chmod 600 ~/.hermes/.env
  5. First conversation

    hermes opens the terminal UI. Ask something small and check that the reply comes back: that proves the provider key and the model.

    hermes
  6. Connect a chat app

    hermes gateway setup walks through the platforms (Telegram, Discord, Slack, Signal, email and more). The gateway refuses everyone until you allow someone: list your user ID (for Telegram, TELEGRAM_ALLOWED_USERS) or approve the one-time pairing code an unknown user receives.

    hermes gateway setup
    # a pairing code sent by your bot, approved from the Pi:
    hermes pairing approve telegram <code>
  7. Keep the gateway running after you log out and after a reboot

    hermes gateway install creates a systemd user service. Lingering keeps that user's services running without an open session, so the gateway comes back when the Pi boots. The docs also offer a system-wide service (hermes gateway install --system) for headless hosts.

    hermes gateway install
    hermes gateway start
    hermes gateway status
    sudo loginctl enable-linger $USER
    journalctl --user -u hermes-gateway -f   # live logs
  8. Optional: reach the Pi from outside your network

    This setup has no web dashboard to expose: you talk to the agent in the terminal or through the chat apps. To administer the Pi from elsewhere, Tailscale gives it a private address without opening a port.

    curl -fsSL https://tailscale.com/install.sh | sh
    sudo tailscale up
    tailscale ip -4   # then: ssh [email protected]

Troubleshooting

hermes: command not found right after the install
The launcher sits in ~/.local/bin/, which the current shell does not know yet. Run source ~/.bashrc, or open a new SSH session.
uname -m prints armv7l
That is the 32-bit Raspberry Pi OS. Hermes Agent's platform list covers aarch64 on Linux, not 32-bit ARM: flash the 64-bit image.
The bot ignores your messages
The gateway denies every user until one is allowed. Add your user ID to the platform's allowlist, or approve your pairing code with hermes pairing approve <platform> <code>. Codes expire after an hour.
The gateway stops when you close the SSH session
The user service only outlives your session with lingering on: sudo loginctl enable-linger $USER.

Where to go from here

Shell commands the agent wants to run go through approvals.mode, smart by default: a helper model approves low-risk commands, denies dangerous ones and asks you about the rest. Set it to manual to confirm every command, or move the terminal to the Docker backend so the container becomes the boundary. hermes update keeps the install current, and PocketClaw lists Hermes Agent's CVEs on its agent page.

Sources

The steps and figures on this page come from these pages, read on 2026-10-16. When a command here and the project's docs disagree, the docs win.