← Back to Course Dashboard

Installation & First Run

Module 2 of 10

🎬 Full Walkthrough Video

🔑 Venice.ai Get Private API Key → No data stored. Stake DM token for $1/day API credits. 🖥️ Hostinger VPS $12/mo VPS Deal → Run Hermes 24/7. Referral code applied.
🐧 Linux / macOS / WSL2 curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash ← Click to copy
🪟 Windows (PowerShell) iex (irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1) ⚠️ Early Beta — details in the module
📱 Android (Termux) Same Linux one-liner — auto-detected ✅ Installer detects Termux automatically
**Course:** Hermes Agent — From Zero to Autonomous Agent
**Module:** 2 of 8
**Reading time:** ~20 minutes
**Difficulty:** Beginner — no prior Hermes experience needed, basic terminal familiarity helpful

TL;DR

**One-liner install** `curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh \ bash`
**Prerequisites** Git + a Linux/macOS/WSL2 system. The installer handles Python, Node.js, ripgrep, and ffmpeg automatically.
**After install** `source ~/.bashrc && hermes`
**First run** Setup wizard walks you through choosing a provider and getting API keys
**Time to first chat** Under 2 minutes
**Docker alternative** `docker run -it ghcr.io/nousresearch/hermes-agent`
**Got stuck?** `hermes doctor` diagnoses everything

Before You Start

Supported Platforms

Platform Status Notes
**Linux** (x86_64, arm64) ✅ Production-ready Ubuntu, Debian, Fedora, Arch, openSUSE all tested
**macOS** (Intel, Apple Silicon) ✅ Production-ready Intel and M-series both supported
**WSL2** (Windows) ✅ Production-ready Use Ubuntu from Microsoft Store, then install as Linux
**Windows Native** (PowerShell) ⚠️ Early Beta Works but fewer battle-tested paths
**Termux** (Android) ✅ Supported Auto-detected by installer
**NixOS** ✅ Supported Dedicated flake and NixOS module

Prerequisites

**Absolute minimum:**

- **Git** — run `git --version` to check. If missing:

- **Ubuntu/Debian:** `sudo apt install git`

- **macOS:** `xcode-select --install` or `brew install git`

- **Fedora:** `sudo dnf install git`

- **Windows WSL:** `sudo apt install git` (inside WSL)

**The installer handles everything else automatically** — you don't need to pre-install Python, Node.js, ripgrep, or ffmpeg. It detects what's missing and provisions it.

**Optional but nice to have:**

- A terminal emulator that supports true color (kitty, iTerm2, Windows Terminal, GNOME Terminal)

- `curl` (most systems have it; install with `sudo apt install curl` if missing)

Getting an API Key (Do This Now)

You'll need an API key from an LLM provider. For beginners, **OpenRouter** is the best starting point — one API key gives access to 200+ models including GPT-4o, Claude, Gemini, and open-source models.

1. Go to [openrouter.ai/keys](https://openrouter.ai/keys)

2. Sign up (free tier available with initial credits)

3. Create an API key

4. Copy it somewhere safe — you'll paste it into the setup wizard

**Pro tip:** OpenRouter's free tier gives you enough credits to explore for weeks. If you run out, top up with as little as $5 to access everything.

Method 1: One-Line Installer (Recommended)

This is the fastest and most battle-tested path. Works on **Linux, macOS, WSL2, and Termux**.

Open your terminal and run:


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

**What you'll see:**


⚕ Hermes Agent Setup

→ Checking for uv...
✓ uv found (0.6.x)
→ Creating virtual environment...
→ Installing hermes-agent and dependencies...
→ Installing Node.js 22...
→ Installing system tools (ripgrep, ffmpeg)...
→ Installing Playwright browsers for web automation...
→ Symlinking hermes command to ~/.local/bin/hermes...

✓ Installation complete!

Run 'source ~/.bashrc' then 'hermes' to start chatting!

**Time estimate:** 30-90 seconds on a decent internet connection.

What the Installer Actually Does

Let's demystify that one-liner. The install script:

1. **Detects your platform** — Linux, macOS, Termux, or other POSIX

2. **Installs `uv`** — a lightning-fast Python package manager (replaces pip)

3. **Clones the repo** to `~/.hermes/hermes-agent/`

4. **Creates a Python virtual environment** inside the repo (Python 3.11)

5. **Installs all dependencies** — Hermes core, browser automation, voice tools

6. **Installs Node.js v22** — needed for browser automation and the WhatsApp bridge

7. **Installs system tools** — `ripgrep` (fast file search) and `ffmpeg` (audio format conversion)

8. **Installs Playwright browsers** — headless Chromium for web automation

9. **Symlinks the `hermes` command** to `~/.local/bin/hermes`

10. **Updates your shell config** — adds `~/.local/bin` to PATH in `.bashrc` or `.zshrc`

**Install layout after completion:**

What Where
Hermes code `~/.hermes/hermes-agent/`
Virtual environment `~/.hermes/hermes-agent/venv/`
`hermes` command `~/.local/bin/hermes` (symlink to venv)
Your config & data `~/.hermes/`
Skills `~/.hermes/skills/`
Session history `~/.hermes/sessions/`
Logs `~/.hermes/logs/`

After Installation

Reload your shell so the `hermes` command is found:


source ~/.bashrc    # if you use bash
# OR
source ~/.zshrc     # if you use zsh

Verify the installation:


hermes --version
# Expected output (version number will differ):
# Hermes Agent 0.x.x

Method 2: Docker Install

Prefer containers? Hermes has an official Docker image. Good for isolated environments, CI/CD pipelines, or if you don't want the installer touching your system.


# Pull and run
docker run -it --rm \
  -v ~/.hermes:/root/.hermes \
  -e OPENROUTER_API_KEY=your_key_here \
  ghcr.io/nousresearch/hermes-agent

**Breaking this down:**

- `-it` — interactive terminal mode

- `--rm` — remove container when done

- `-v ~/.hermes:/root/.hermes` — persist your config and sessions on the host

- `-e OPENROUTER_API_KEY=...` — pass your API key as an environment variable

For a persistent setup (recommended), create a data directory first:


mkdir -p ~/.hermes-docker
docker run -it --rm \
  -v ~/.hermes-docker:/root/.hermes \
  -e OPENROUTER_API_KEY=your_key_here \
  ghcr.io/nousresearch/hermes-agent
**Note:** The Docker image is built from the `main` branch. For a pinned version, use a specific tag like `ghcr.io/nousresearch/hermes-agent:v0.x.x`.

Method 3: Manual Git Clone Install

For developers, contributors, or anyone who wants full control:


# 1. Clone the repo
git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent

# 2. Run the setup script
./setup-hermes.sh

The `setup-hermes.sh` script does the same work as the one-liner installer — installs `uv`, creates a venv, installs dependencies, and symlinks the `hermes` command. The difference is you have the repo on disk, so you can:

- Switch branches (`git checkout develop`)

- Make local changes

- Run the test suite (`scripts/run_tests.sh`)

- Stay on a specific version


Windows-Specific Setup

Option A: WSL2 (Easiest, Most Stable)

1. **Install WSL2** — Open PowerShell as Administrator and run:

```powershell

wsl --install

```

This installs Ubuntu by default. Restart when prompted.

2. **Launch Ubuntu** from the Start Menu. On first boot, set up a Linux username and password.

3. **Update packages:**

```bash

sudo apt update && sudo apt upgrade -y

```

4. **Install Git:**

```bash

sudo apt install git curl -y

```

5. **Run the one-liner installer:**

```bash

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

```

6. **Reload and launch:**

```bash

source ~/.bashrc

hermes

```

Option B: Native Windows (Early Beta)

Open **PowerShell** (not CMD) and run:


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

**What the PowerShell installer does:**

1. Installs `uv` for Python package management

2. Clones the repo to `%LOCALAPPDATA%\hermes\hermes-agent`

3. Creates a virtual environment

4. Installs a **portable Git Bash** (PortableGit) — no admin rights needed, completely isolated from any system Git install

5. Installs Node.js 22, ripgrep, ffmpeg

6. Adds `hermes` to your User PATH

**After install:** Open a **new PowerShell window** (PATH updates need a fresh session) and run `hermes`.

**Heads up:** The browser-based dashboard chat pane requires WSL2 on Windows. Everything else — CLI, gateway, cron, browser tool, MCP servers — runs natively.

First Launch: The Setup Wizard

This is where the magic happens. Run:


hermes

The first time you launch, you'll be greeted by an interactive **setup wizard**. It looks something like this:


╭──────────────────────────────────────────────╮
│          ⚕ Hermes Agent Setup Wizard          │
│              Let's get you started!           │
╰──────────────────────────────────────────────╯

I'll help you configure:
• Your LLM provider and model
• Your API credentials
• Tool preferences
• Platform integrations (optional)

Let's begin!

→ Which provider would you like to use?
  1) OpenRouter (recommended — 200+ models, one API key)
  2) OpenAI (GPT-4o, o1, o3-mini)
  3) Anthropic (Claude Opus 4, Sonnet 4)
  4) Nous Portal (Nous Research endpoint)
  5) Local / Other (Ollama, vLLM, custom endpoint)
  > 1

Step-by-Step Wizard Walkthrough

**Step 1: Choose a provider.** Pick **OpenRouter** (option 1) for the easiest start. It gives you access to every major model through a single API key.

**Step 2: Enter your API key.** Paste the key you created earlier. It gets saved to `~/.hermes/.env`, not your shell history.

**Step 3: Choose a model.** OpenRouter offers 200+ models. Good defaults:

Model Best for Cost
`openrouter:openai/gpt-4o` General purpose, writing, reasoning Low
`openrouter:anthropic/claude-sonnet-4` Coding, complex tasks Medium
`openrouter:google/gemini-2.5-pro` Long context, research Low
`openrouter:meta-llama/llama-4-maverick` Open model, fast Very low
`openrouter:qwen/qwen-2.5-72b-instruct` Strong open model Very low

For beginners, **`openrouter:openai/gpt-4o`** is a solid default — fast, capable, and affordable.

**Step 4: Configure tools.** The wizard asks which tools you want enabled:

- **Terminal** (run shell commands) — **Recommended: Yes**

- **File system** (read/write files) — **Recommended: Yes**

- **Web search** — **Recommended: Yes**

- **Browser automation** — Optional, can enable later

- **Vision** — Optional, for image analysis

**Step 5: Messaging platforms (optional).** You can set up Telegram, Discord, or Slack now, or skip and configure later with `hermes gateway setup`.

When the wizard finishes, you'll see:


✓ Setup complete! Your configuration has been saved.

You can change any of these settings later with:
  hermes model     — Change provider or model
  hermes tools     — Enable/disable tools
  hermes config    — View/edit all settings
  hermes gateway   — Set up messaging platforms

Ready to chat! Type your message below or /help for commands.

Your First Chat

After the wizard, you're dropped into the Hermes CLI. You'll see a `>` prompt. Try these:


> Hello! What can you do?

Hermes will respond with a friendly introduction and a list of capabilities. You'll see the **KawaiiSpinner** — an animated face (`◕‿◕`, `⧗◕‿◕⧗`, etc.) that shows the agent is thinking.

Asking Questions


> What time is it right now?

This will trigger Hermes to use its **date/time tool** — you'll see the tool call in the output:


 ◕‿◕  Thinking...
 ┊ Calling tool: get_current_date

 The current date and time is Saturday, May 23, 2026, 10:15:42 AM UTC.

Seeing Tool Calls in Action

This is where Hermes separates from vanilla chatbots. Try:


> Check my disk usage

You'll see Hermes:

1. **Decide** what tool to use

2. **Call** the terminal tool with `df -h`

3. **Read** the output

4. **Format** a readable response

Example output:


 ⧗◕‿◕⧗  Working...
 ┊ Running: df -h

 📊 Disk Usage Summary:

 Filesystem      Size  Used  Avail  Use%
 /dev/sda1       50G   23G    27G    46%
 tmpfs           2.0G  1.2M   2.0G    1%

 Your root partition is 46% full — plenty of room.

Try more:


> Create a new directory called test-project and a file called notes.txt
> Search the web for "latest AI agent frameworks 2026"
> What's in my current directory?
> Write a Python script that prints the Fibonacci sequence

Each command will show tool calls in real-time — you can watch Hermes think, act, and iterate.

Understanding the Interface


 ◕‿◕  Thinking...               ← The spinner shows the agent is processing
 ┊ Calling tool: run_terminal    ← Every tool call is shown
 ┊ Running: python3 script.py    ← The actual command being executed
 ✓ Command completed (exit: 0)   ← Status of the tool call

 Here's the result...            ← The agent's natural language response

Key interface elements:

- **`>` prompt** — Type your message here

- **Slash commands** — Type `/` to see available commands (`/help`, `/new`, `/model`, `/skills`, etc.)

- **Tool call output** — Every tool the agent uses is shown with `┊` prefix

- **Tab completion** — Press Tab to autocomplete slash commands

- **`Ctrl+C`** — Interrupt the current action

- **`Ctrl+L`** — Clear the screen

- **Up/Down arrows** — Navigate conversation history

- **`/new` or `/reset`** — Start a fresh conversation


Troubleshooting: `hermes doctor`

If something goes wrong, run:


hermes doctor

This runs a comprehensive diagnostic check:


⚕ Hermes Doctor

System:
  ✓ OS: Linux 6.8.0-110-generic (x86_64)
  ✓ Shell: bash 5.2.21

Installation:
  ✓ Hermes path: /root/.local/bin/hermes
  ✓ Hermes home: /root/.hermes
  ✓ Git: available
  ✓ Install method: git installer

Python:
  ✓ Python 3.11.9 (via uv)
  ✓ Virtual environment: active

Dependencies:
  ✓ uv: 0.6.x
  ✓ Node.js: v22.x
  ✓ ripgrep: 14.x
  ✓ ffmpeg: 7.x
  ✓ Playwright browsers: installed

Configuration:
  ✓ Config file: /root/.hermes/config.yaml
  ✓ API keys: OPENROUTER_API_KEY configured
  ✓ Provider: openrouter
  ✓ Model: openai/gpt-4o

  ✗ Telegram: not configured
  ✗ Discord: not configured

  ✓ 2 checks passed, 2 optional checks skipped.

`hermes doctor` checks for:

- Missing dependencies

- Invalid configuration

- Unset API keys

- Broken symlinks

- Permission issues

- Python version compatibility

Each issue comes with a suggested fix command.

Common Issues & Fixes

**`hermes: command not found`**

- **Fix:** Run `source ~/.bashrc` (or `source ~/.zshrc`), then try again.

- **If it persists:** Your `~/.local/bin` may not be in PATH. Add this to your shell config:

```bash

export PATH="$HOME/.local/bin:$PATH"

```

**Setup wizard doesn't start — blank screen or hangs**

- **Fix:** Your terminal might not be fully interactive. Try:

```bash

hermes setup

```

This launches the wizard directly.

- **If that also hangs:** Try the non-interactive config path:

```bash

hermes config set provider openrouter

hermes config set OPENROUTER_API_KEY your_key_here

hermes config set model openrouter:openai/gpt-4o

hermes chat

```

**`ModuleNotFoundError: No module named 'dotenv'`**

- **Fix:** You're invoking the repo source file directly with system Python instead of the venv launcher. Make sure you're running `~/.local/bin/hermes` (or just `hermes` after `source ~/.bashrc`), not `~/hermes-agent/hermes`.

**`API key not set`**

- **Fix:** Run `hermes model` to configure your provider, or:

```bash

hermes config set OPENROUTER_API_KEY your_key_here

```

**`Permission denied` when running `hermes`**

- **Fix:** The installer needs write access to `~/.local/bin/`. If you installed as root, the binary might be in `/usr/local/bin/`. Try:

```bash

sudo ln -s ~/.hermes/hermes-agent/venv/bin/hermes /usr/local/bin/hermes

```

**Slow first launch after install**

- **Normal:** The first launch triggers Playwright browser download (~100MB) if the installer skipped it. Subsequent launches are instant.

**`curl: command not found` during install**

- **Fix:** Install curl first:

```bash

sudo apt install curl -y # Debian/Ubuntu

sudo dnf install curl -y # Fedora

```

**Git not found during install**

- **Fix:**

```bash

sudo apt install git -y # Debian/Ubuntu

sudo dnf install git -y # Fedora

brew install git # macOS

```

**Docker: `ghcr.io/nousresearch/hermes-agent: not found`**

- **Fix:** First pull the image:

```bash

docker pull ghcr.io/nousresearch/hermes-agent

```

Then run. If pulling fails, you may need to authenticate with GitHub Container Registry:

```bash

echo $GITHUB_TOKEN | docker login ghcr.io -u your-username --password-stdin

```

**WSL: `hermes` command works in Ubuntu but not in PowerShell**

- **Expected.** WSL is a separate Linux environment. `hermes` only works inside the WSL terminal window. Use the native Windows installer if you need PowerShell access.


Next Steps After First Chat

You're up and running. Here's what to try next:

1. **`hermes model`** — Experiment with different models (Claude for coding, Gemini for long context, open models for speed)

2. **`hermes tools`** — Browse available tools and enable/disable them per platform

3. **`/skills`** — See what skills are installed and available

4. **`hermes gateway setup`** — Connect Telegram or Discord so you can chat from your phone

5. **`hermes cron`** — Schedule your first automated task

6. **`/help`** — Full list of slash commands


Key Takeaways

- **One command** is all it takes: `curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash`

- **The installer handles everything** — Git is the only prerequisite; Python, Node.js, ripgrep, and ffmpeg are auto-installed

- **Docker alternative** available for containerized deployments

- **WSL2** is the most stable Windows path; native Windows PowerShell install is in early beta

- **First launch triggers the setup wizard** — choose OpenRouter for the simplest start

- **Watch tool calls happen live** — Hermes shows every command it runs and tool it uses

- **`hermes doctor`** diagnoses any issues with clear, actionable fixes

- **From install to first chat is under 2 minutes** on a decent internet connection


Quiz Questions

1. **What is the only prerequisite for the one-line installer on Linux/macOS?**

- a) Python 3.11

- b) Git

- c) Docker

- d) Node.js

2. **Where does the installer put the `hermes` command?**

- a) `/usr/bin/hermes`

- b) `~/hermes-agent/hermes`

- c) `~/.local/bin/hermes` (symlink to the venv)

- d) `/opt/hermes/hermes`

3. **What provider is recommended for beginners during the setup wizard?**

- a) OpenAI

- b) Anthropic

- c) OpenRouter

- d) Nous Portal

4. **What command do you run if you encounter issues after installation?**

- a) `hermes check`

- b) `hermes diagnose`

- c) `hermes doctor`

- d) `hermes status`

5. **Which of these is NOT a step you should take after installation?**

- a) `source ~/.bashrc`

- b) `hermes` to launch the setup wizard

- c) Installing Python manually before running the installer

- d) Pasting your API key when prompted

**Answers:** 1-b, 2-c, 3-c, 4-c, 5-c


*Next Module: Module 3 — Configuration & Customization (coming soon)*

← Module 1 Dashboard Module 3 →