Academy → Getting StartedOfficial documentation · Arabic guidance

Installation

تثبيت Hermes خطوة بخطوة

Beginner7 min readLesson 25 questions✓ 2026-08-18
Before you read

What this page is, and what it holds.

This page covers Installation. You will use hermes doctor and hermes setup here; about 7 minutes to read. Read what the installer does before running it, then run hermes doctor to see what is missing.

6sections
11code examples
2tables
13commands
1,201source words
The official one-line description

Install Hermes Agent on Linux, macOS, WSL2, native Windows, or Android via Termux

What you will be able to do

Outcomes taken from this page, not a template.

  • Understand what التثبيت is and when you need it.
  • Run hermes doctor and hermes setup and understand what happens next.
  • Read the table and take only the row that applies to you.
  • Set HERMES_HOME in the right place.
Identifiers you will meet

Exactly as they appear in Hermes.

Commands
  • hermes doctor
  • hermes setup
  • hermes model
  • hermes tools
  • hermes backup
  • hermes import
  • hermes update
  • hermes desktop
Environment variables
  • HERMES_HOME
Page map

Jump to the part you need.

  1. 01Quick Install
  2. 02Prerequisites
  3. 03Manual / Developer Installation
  4. 04Non-Sudo / System Service User Installs
  5. 05Troubleshooting
  6. 06Install method auto-detection
The full official page

Nothing summarised away.

The documentation body below is reproduced from the official source so commands and identifiers stay exact. Each section carries a short note describing what it contains.

Get Hermes Agent up and running in under two minutes!

Quick Install

Ordered, practical steps. Run one and confirm it worked before moving on. Commands here: hermes, hermes model.

To easily install the command-line and desktop applications, download the Hermes Desktop installer ↗ from our website and run it.

Without Hermes Desktop:

For a command-line only install without Hermes Desktop, run:

Linux / macOS / WSL2 / Android (Termux)
Shell1 line
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
Windows (native)

Run in powershell:

PowerShell1 line
iex (irm https://hermes-agent.nousresearch.com/install.ps1)

If you want to install & run Hermes Desktop after a command-line only install, simply run

Shell1 line
hermes desktop

What the Installer Does

The installer handles everything automatically — all dependencies (Python, Node.js, ripgrep, ffmpeg), the repo clone, virtual environment, global hermes command setup, and LLM provider configuration. By the end, you're ready to chat.

Install Layout

Where the installer puts things depends on whether you're installing as a normal user or as root:

InstallerCode lives athermes binaryData directory
Per-user (git installer)~/.hermes/hermes-agent/~/.local/bin/hermes (symlink)~/.hermes/
Root-mode (sudo curl … | sudo bash)/usr/local/lib/hermes-agent//usr/local/bin/hermes/root/.hermes/ (or $HERMES_HOME)

The root-mode FHS layout (/usr/local/lib/…, /usr/local/bin/hermes) matches where other system-wide developer tools land on Linux. It's useful for shared-machine deployments where one system install should serve every user. Per-user config (auth, skills, sessions) still lives under each user's ~/.hermes/ or explicit HERMES_HOME.

After Installation

Reload your shell and start chatting:

Shell2 lines
source ~/.bashrc   # or: source ~/.zshrc
hermes             # Start chatting!

To reconfigure individual settings later, use the dedicated commands:

Shell6 lines
hermes model          # Choose your LLM provider and model
hermes tools          # Configure which tools are enabled
hermes gateway setup  # Set up messaging platforms
hermes config set     # Set individual config values
hermes config get     # Inspect individual config values
hermes setup          # Or run the full setup wizard to configure everything at once

---

Prerequisites

Explains the idea itself. Read it slowly; the later sections build on it.

Installer: On non-Windows platforms, the only prerequisite is Git. On Linux, also make sure curl and xz-utils are available (the installer downloads Node.js as a .tar.xz archive). The desktop app additionally requires g++ (or build-essential on Debian/Ubuntu) to compile native modules. The installer automatically handles everything else:

  • uv (fast Python package manager)
  • Python 3.11 (via uv, no sudo needed)
  • Node.js v22 (for browser automation and WhatsApp bridge)
  • ripgrep (fast file search)
  • ffmpeg (audio format conversion for TTS)

---

Manual / Developer Installation

Ordered, practical steps. Run one and confirm it worked before moving on.

If you want to clone the repo and install from source — for contributing, running from a specific branch, or having full control over the virtual environment — see the Development Setup section in the Contributing guide.

---

Non-Sudo / System Service User Installs

Ordered, practical steps. Run one and confirm it worked before moving on. Commands here: hermes doctor.

Running Hermes as a dedicated unprivileged user (e.g. a hermes systemd service account, or any user without sudo access) is supported. The only thing on the install path that genuinely needs root is Playwright's --with-deps step, which apt-installs shared libraries (libnss3, libxkbcommon, etc.) used by Chromium. The installer detects whether sudo is available and gracefully degrades when it isn't — it will install the Chromium binary into the service user's own Playwright cache and print the exact command an administrator needs to run separately.

Recommended split (Debian/Ubuntu):

  1. One time, as an admin user with sudo, install the system libraries Chromium needs:
Shell1 line
   sudo npx playwright install-deps chromium

(You can run this from anywhere — npx will fetch Playwright on the fly.)

  1. As the unprivileged service user, run the regular installer. It will detect the missing sudo, skip --with-deps, and install Chromium into the user's local Playwright cache:
Shell1 line
   curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

If you want to skip the Playwright step entirely — for example because you're running headless and don't need browser automation — pass --skip-browser:

Shell1 line
   curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browser

The installer also pre-installs cua-driver so the Computer Use toolset works the moment you enable it; pass --skip-computer-use to opt out (it will then install on demand when you enable the tool).

  1. Make hermes available to the service user's shells. The installer writes the launcher to ~/.local/bin/hermes. System service accounts often have a minimal PATH that doesn't include ~/.local/bin. Either add it to the user's environment, or symlink the launcher into a system location:
Shell5 lines
   # Option A — add to the service user's profile
   echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

   # Option B — symlink system-wide (run as an admin)
   sudo ln -s /home/hermes/.hermes/hermes-agent/venv/bin/hermes /usr/local/bin/hermes
  1. Verify: hermes doctor should now run cleanly. If you get ModuleNotFoundError: No module named 'dotenv', you're invoking the repo source hermes file (~/.hermes/hermes-agent/hermes) with system Python instead of the venv launcher (~/.hermes/hermes-agent/venv/bin/hermes) — fix step 3.
  1. Running the messaging gateway from this account? A user-level service stops at logout and does not start at boot until you enable lingering for the service user:
Shell1 line
   sudo loginctl enable-linger <service-user>

See Messaging Gateway ↗ for the service setup itself.

The same pattern works on Arch (the installer uses pacman with the same sudo-detection logic), Fedora/RHEL, and openSUSE — those distros don't support --with-deps at all, so an administrator always installs the system libraries separately. The relevant dnf/zypper commands are printed by the installer.

---

Troubleshooting

A troubleshooting section. Find the symptom that matches yours rather than reading it end to end. Commands here: hermes doctor.

ProblemSolution
hermes: command not foundReload your shell (source ~/.bashrc) or check PATH
API key not setRun hermes model to configure your provider, or hermes config set OPENROUTER_API_KEY your_key
Missing config after updateRun hermes config check then hermes config migrate

For more diagnostics, run hermes doctor — it will tell you exactly what's missing and how to fix it.

Install method auto-detection

Ordered, practical steps. Run one and confirm it worked before moving on. Commands here: hermes doctor, hermes update.

Hermes auto-detects whether it was installed via the git installer, Docker, or NixOS, and hermes update prints the matching update command for that path. There's no env var to set — the detection is based on the install layout (~/.hermes/hermes-agent/ checkout, Docker image stamp, or Nix store path). hermes doctor also surfaces the detected method under its environment summary.

Knowledge check

5 questions answered by this page alone.

Every option is a real identifier from the Hermes documentation. The wrong ones are real too, just from other pages.

1. According to this lesson, which command does “Start chatting!”?
2. According to this lesson, which command does “Choose your LLM provider and model”?
3. In this lesson's table, what is the “Solution” for “Missing config after update”?
4. Which of these environment variables actually appears in this lesson?
5. Which of these headings does not appear in this lesson?