Agent Frameworks, CLI & DevTooling
Hermes Agent Setup Guide
Author
DW
Date Published

# Hermes Agent Setup Guide: Cross-Platform & Telegram Integration
**Overview** This tutorial provides a detailed, step-by-step guide on how to set up the official **Hermes Agent** by Nous Research from scratch on **Windows (via WSL)**, **macOS**, and **native Linux**, and integrate it with Telegram. This allows you to access your autonomous, self-improving AI assistant anytime, anywhere from your phone.
**Table of Contents** - [I. Environment Preparation](#i-environment-preparation)
- [II. Hermes Agent Installation](#ii-hermes-agent-installation)
- [III. Basic Configuration](#iii-basic-configuration)
- [IV. Telegram Bot Creation](#iv-telegram-bot-creation)
- [V. Service Startup & Web UI](#v-service-startup--web-ui)
- [VI. Telegram Integration (Web UI)](#vi-telegram-integration-web-ui)
- [VII. User Pairing & Authorization](#vii-user-pairing--authorization)
- [VIII. Common Problem Solving](#viii-common-problem-solving)
- [IX. Advanced Configuration](#ix-advanced-configuration)
- [X. Maintenance & Updates](#x-maintenance--updates)
---
## I. Environment Preparation
**System Requirements** Hermes relies heavily on Linux-based underlying process management. It natively supports macOS and major Linux distributions (Ubuntu, Debian, etc.). Windows users **must** use WSL2.
* **Windows users:** Search for "Turn Windows features on or off", check **Virtual Machine Platform** and **Windows Subsystem for Linux**. Restart your PC, then run `wsl --install` in Command Prompt.
* **macOS users:** Open **Terminal**. Run `xcode-select --install` to ensure command-line developer tools are installed.
* **Linux users:** Open your standard terminal.
**Environment Verification** In your system’s terminal, ensure Python is ready (verify you are running a supported version, typically 3.8+):
```bash
python3 --version
```
---
## II. Hermes Agent Installation
**Official One-Click Script** Use the official script provided by Nous Research. This safely sets up the Python virtual environment and required build tools without polluting your global packages.
```bash
curl -fsSL [https://hermes-agent.nousresearch.com/install.sh](https://hermes-agent.nousresearch.com/install.sh) | bash
```
*Note: During installation, if it asks whether to install `ripgrep` and build tools, type **Y** (these are required for the agent's file searching and skill execution capabilities).*
**Verify installation:** ```bash
hermes --version
```
---
## III. Basic Configuration
1. **Run the official setup wizard:** ```bash
hermes setup
```
2. **Follow the prompts:** * **LLM Provider:** It is highly recommended to use the **Nous Portal** or **OpenRouter** to access the official Hermes models (e.g., `Hermes 3`) or other top-tier reasoning models.
* **API Key:** Enter your respective API Key.
* **Messaging Platform:** Choose **Skip** — we will configure Telegram visually using the Web UI in the next steps.
3. **Config file location:** Your base configuration is saved at `~/.hermes/config.yaml`.
---
## IV. Telegram Bot Creation
1. In Telegram, search for **@BotFather** and send `/newbot`.
2. Follow the prompts to set a display name and a unique username (must end in `bot`).
3. Copy the generated **Bot Token** (format: `1234567890:ABCdef...`).
**Get your User ID:** Search for **@userinfobot** in Telegram, send `/start`, and copy the numeric User ID shown. You will need this to secure your agent.
---
## V. Service Startup & Web UI
While Hermes can be run entirely from the CLI, managing communication channels is significantly easier via the trending community dashboard, `hermes-web-ui`.
**Web UI Installation:** ```bash
bash <(curl -fsSL [https://raw.githubusercontent.com/EKKOLearnAI/hermes-web-ui/main/scripts/setup.sh](https://raw.githubusercontent.com/EKKOLearnAI/hermes-web-ui/main/scripts/setup.sh))
```
*(If your terminal returns "hermes command not found", run `source ~/.bashrc` or `source ~/.zshrc` to refresh your environment variables, then rerun the script).*
**Start the Panel:** ```bash
hermes-web-ui start
```
Open your browser and navigate to **http://localhost:8648**.
---
## VI. Telegram Integration (Web UI)
1. In the Web UI, navigate to **Gateway / Communication Settings**.
2. Enable the **Telegram** tab.
3. Paste the **Bot Token** you obtained from BotFather.
4. Save the configuration. The panel handles the Gateway restart automatically.
---
## VII. User Pairing & Authorization
To prevent unauthorized access to your server via the Telegram bot, you **must** restrict access strictly to your Telegram account.
**1. Create a backup of your environment file (Crucial Step):**
Before making manual changes, ensure you have a restoration point:
```bash
cp ~/.hermes/.env ~/.hermes/.env.backup
```
**2. Set the User Whitelist:** Append your Telegram User ID to the `.env` file to ensure only you can issue commands:
```bash
echo "TELEGRAM_ALLOWED_USERS=your_TG_user_ID" >> ~/.hermes/.env
```
**3. Restart the Gateway Service:** To ensure the new permissions take effect and clear any background conflicts:
```bash
pkill -f "hermes gateway" && hermes gateway run --replace &
```
---
## VIII. Common Problem Solving
**Q1: Web UI says "command not found" after installation.** Your environment variables haven't refreshed. Run `source ~/.bashrc` (or `source ~/.zshrc` on macOS). If it still fails, execute it via the absolute path:
`/home/yourusername/.hermes/node/bin/hermes-web-ui start`
**Q2: Bot goes offline when the terminal is closed.** On Windows WSL, closing the terminal kills background processes. To keep Hermes online persistently, use a terminal multiplexer like `tmux`:
```bash
# Install tmux
sudo apt install tmux
# Start a new persistent session
tmux new -s hermes_session
# Start the UI/Gateway
hermes-web-ui start
# Detach from the session (leave it running in background)
# Press Ctrl+B, then release and press D
```
---
## IX. Advanced Configuration
Hermes features persistent memory and auto-generated skills. To ensure SQLite full-text search and memory modules are properly initialized, verify your `~/.hermes/config.yaml` contains:
```yaml
skills:
enabled: true
auto_load: true
memory:
enabled: true
storage: "sqlite"
path: "~/.hermes/memory.db"
```
---
## X. Maintenance & Updates
To keep the core Hermes Agent and its built-in tools up to date:
```bash
# Rerun the official install script to pull the latest binaries
curl -fsSL [https://hermes-agent.nousresearch.com/install.sh](https://hermes-agent.nousresearch.com/install.sh) | bash
# Refresh environment
source ~/.bashrc
```
**Troubleshooting / Hard Reset:** If the agent freezes during a complex task or you need to restart from a clean slate:
```bash
# Force-stop all Hermes processes
pkill -f "hermes"
# Restart the ecosystem via Web UI
hermes-web-ui start
```