Gallery

Contacts

405 W. Greenlawn Ave Lansing, Michigan 48910

contact@techjacksolutions.com

+1-616-320-4064

Nous Research

How to Set Up Hermes Agent: Complete Installation Guide

Hermes Agent hit 144,000 GitHub stars in three months. The MIT-licensed framework from Nous Research connects any LLM to 20 messaging platforms, runs on six different execution backends, and learns from its own work through a three-layer memory system. This guide walks you through the full setup: prerequisites, the one-line installer, model provider configuration, connecting Telegram and Discord, choosing a terminal backend, and deploying to a VPS as a systemd service. Estimated time: 15-30 minutes for a basic install, under an hour for a production VPS deployment.


Quick Verdict

Quick Verdict

Hermes has less setup friction than LangGraph, AutoGen, or CrewAI. The only hard prerequisite is git. The one-line installer handles Node.js 18+ and Python 3.10+. The interactive hermes setup wizard configures your model provider, default model, and memory directory in under five minutes. From there, connecting Telegram takes two minutes via BotFather, and Discord takes about five (with one critical gotcha around Message Content Intent). For a persistent deployment, a $5/month VPS plus a systemd service file gets you a 24/7 agent.

144K
GitHub Stars
v0.13
Current Release
May 7, 2026
200+
Models Supported
Via 24+ providers
20
Messaging Platforms
MIT
License (Free)
Zero licensing cost

Prerequisites Checklist

Click items as you confirm them. State persists in localStorage, so you can close the tab and come back. If any of these are missing, stop and address them before running the installer; the most common broken installs trace back to a skipped prerequisite.

Linux, macOS, or Windows with WSL2. Native Windows is not supported. If you are on Windows, install WSL2 first and run everything inside the Ubuntu distribution.
Git installed. This is the only hard prerequisite. Run git --version to verify. The installer pulls everything else.
4 GB RAM minimum (8 GB recommended if you plan to run local models via Ollama). Cloud-only API usage is fine on 4 GB.
Model with 64K context minimum (128K recommended). Hermes uses long context for its three-layer memory system. Models below 64K will produce degraded results.
Node.js 18+ and Python 3.10+ will be installed by the Hermes installer if missing. If you already have them, the installer respects your existing versions.
API key from at least one provider (OpenRouter, Anthropic, OpenAI, Google, etc.) OR Ollama installed for fully local inference. You will configure this in Step 2.

1 Step 1 of 5

Step 1 – Install the Hermes CLI

Open a terminal and run this. The installer pulls the Hermes CLI, detects missing Node.js or Python versions, and handles them for you:

Shell curl -fsSL https://hermes.nousresearch.com/install | bash

Check that it worked. If the hermes command is not found, restart your shell or source your profile. The installer adds it to your PATH, but your current session does not pick it up automatically:

Shell hermes --version # Expected: v0.13.x or later

After the CLI is on your PATH, run the interactive setup wizard. This walks you through model provider selection, default model configuration, and memory directory setup:

Shell hermes setup

The wizard prompts for four decisions:

  1. Model provider: OpenRouter is the simplest starting point (single API key, 200+ models, pay-per-token).
  2. Default model: Pick one with 128K+ context. The wizard suggests options based on your provider.
  3. Memory directory: Defaults to ~/.hermes/. Honestly, just accept the default here. You will not know whether you want a custom location until you have used the agent for a week.
  4. Terminal backend: Pick Local. The wizard asks about this too early; the other five options only matter once you have a working agent. We cover them in the Backends section below.

Once that finishes, run hermes doctor. It validates your API key, tests model connectivity, and flags any misconfiguration. Do not skip this. If hermes doctor reports errors, nothing downstream will work. Fix whatever it complains about before moving on.

Setup Progress
1
Install Hermes CLI
2
Configure Model Provider
3
Connect Telegram
4
Connect Discord
5
Deploy to VPS
0 / 5 complete

2 Step 2 of 5
FREE TEMPLATE

Agentic AI Compliance Assessment

Compliance checklist for autonomous agent deployments

Download Free →

Step 2 – Configure Your Model Provider

You need at least one model provider before the agent can do anything. Hermes works with 24+ providers and 200+ models. The hermes model command manages all of them. Here are the three options most people start with:

LOCAL / PRIVATE
Ollama
Fully local inference. No data leaves your machine.
Cost Free
Privacy Full
RAM Needed 8 GB+
Best for privacy-sensitive use. Requires a machine with enough RAM to run the model. 70B parameter models need 40 GB+ RAM (quantized).
MANAGED
Nous Portal
Managed gateway with premium tools included.
Extras Premium Tools
Includes Firecrawl, TTS
Bundled access to Firecrawl, FLUX 2 Pro, Browser Use, and OpenAI TTS. Useful if you need advanced tool integrations out of the box.

Adding a provider

Use the hermes model command to add and manage providers. Here are the three most common configurations:

Shell - OpenRouter (recommended) # Add OpenRouter as a provider hermes model add openrouter # Set your default model (128K+ context recommended) hermes model set default openrouter/anthropic/claude-sonnet-4
Shell - Ollama (local) # Add Ollama with a specific model hermes model add ollama llama3.1:70b # Set as default hermes model set default ollama/llama3.1:70b

Run hermes doctor again after adding a provider. You want a clean pass before connecting any messaging platform. Debugging provider issues through a Telegram bot is miserable.

24+
Providers supported. OpenRouter, Anthropic, OpenAI, Google, Ollama, NVIDIA NIM, AWS Bedrock, Azure, Nous Portal, Fireworks, Together, Groq, Cerebras, DeepInfra, and more. Most require only an API key to configure.

3 Step 3 of 5

Step 3 – Connect Telegram

If you just want to test Hermes quickly, start here. Telegram has the least friction of any messaging platform: no admin approvals, no workspace setup, no webhooks. Two minutes, start to finish.

  1. Open Telegram and search for @BotFather.
  2. Create your bot: Send /newbot to BotFather. Follow the prompts to name your bot. BotFather returns an HTTP API token.
  3. Set the token in Hermes:
    Shell hermes config set telegram.token YOUR_BOT_TOKEN
  4. Set your allowlist so only you can interact with the bot:
    Shell hermes config set telegram.allowlist YOUR_TELEGRAM_USER_ID
  5. Start the gateway:
    Shell hermes gateway start telegram
  6. Verify: Open Telegram, find your bot, send a message. The bot should respond with full Hermes capabilities using whatever model you configured in Step 2.

Finding your Telegram user ID: Send a message to @userinfobot on Telegram. It replies with your numeric user ID. Use that number in the allowlist. Do not leave the allowlist empty; an open bot accepts messages from anyone.


4 Step 4 of 5

Step 4 – Connect Discord

Five minutes, but there is a gotcha that will eat an hour if you miss it. Most Discord bot guides skip this step entirely, and it is the single most common reason Hermes appears online but ignores every message.

  1. Create a Discord application: Go to the Discord Developer Portal, click "New Application," and name it.
  2. Create a bot: Navigate to the Bot tab in your application, click "Add Bot."
  3. Enable Privileged Gateway Intents (CRITICAL): Under the Bot tab, scroll to "Privileged Gateway Intents." Enable both:
    • Message Content Intent
    • Server Members Intent

"Discord ghosting": the #1 setup failure. Without Message Content Intent enabled, your bot appears online but receives empty message payloads. It literally cannot see what anyone typed. Discord disabled this by default in 2022. If your bot shows as online and never responds, this is almost certainly the cause. Go back to the Developer Portal and toggle it on.

  1. Generate the invite URL: Go to OAuth2 → URL Generator. Select the bot and applications.commands scopes. Copy the generated URL and open it in your browser to invite the bot to your server.
  2. Set the token in Hermes:
    Shell hermes config set discord.token YOUR_BOT_TOKEN
  3. Start the gateway:
    Shell hermes gateway start discord
  4. Verify: Mention your bot in a Discord channel. It should respond using Hermes with your configured model.

Other supported platforms

Hermes supports 20 messaging platforms total. Beyond Telegram and Discord, the list includes Slack, WhatsApp, Signal, Matrix, IRC, XMPP, Nostr, Mastodon, Bluesky, WeChat, LINE, KakaoTalk, Viber, Teams, and Google Chat. Each uses the same hermes gateway start pattern. The Hermes Agent repo has platform-specific setup instructions for each one.

Slack
Bot token via api.slack.com. Socket Mode keeps the gateway behind loopback.
WhatsApp
Requires Meta Business verification. Use the developer sandbox for testing.
Signal
Dedicated phone number required. More friction than Telegram but strong privacy.
Matrix
Self-hosted or homeserver account. Federated messaging with E2EE support.
Twilio SMS
SMS-based interaction via Twilio API. Good for non-app notification workflows.
Teams
Enterprise channel. Requires admin approval and Azure AD app registration.

Terminal Backends

When Hermes runs a tool call (creating a file, executing a script, querying an API), it needs somewhere to run that command. That is what the backend controls. Most people never change this from the default (Local), and that is fine. But if you need sandboxing or remote execution, here are your six options:

Docker
Isolated container execution for untrusted tasks.
Config 1 command
Set via hermes config set terminal.backend docker. Commands run in a fresh container. Recommended if you install community skills or run untrusted code.
SSH
Execute commands on a remote server.
Route tool calls to a remote machine via SSH. Useful for managing servers or running compute-heavy tasks on a dedicated box.
Singularity
HPC and academic cluster integration.
For university or research lab clusters that use Singularity/Apptainer instead of Docker. Submits jobs to the cluster scheduler.
Modal
Serverless cloud GPU compute.
Spin up GPU instances on demand for compute-heavy tasks. Pay per second of use. Good for ML training and inference workloads.
Daytona
Managed cloud development environments.
Pre-configured cloud dev environments. Each task gets a fresh workspace. Useful for sandboxed development workflows.

5 Step 5 of 5

Step 5 – Deploy to a VPS

A $5/month VPS from Hetzner, DigitalOcean, or Vultr is sufficient for running Hermes with a cloud API provider. This gives you a 24/7 agent that responds on all connected platforms without keeping your laptop open.

  1. Provision a VPS running Ubuntu 22.04+ or Debian 12+. Minimum 1 GB RAM (2 GB recommended). Other Linux distributions work too; adjust package manager commands accordingly, but Ubuntu has the smoothest install path.
  2. Install Hermes on the VPS using the same one-line installer from Step 1.
  3. Configure your provider and gateways as described in Steps 2-4.
  4. Run gateways as a background daemon:
    Shell hermes gateway start telegram --daemon
  5. Set up a systemd service for automatic restart on reboot:
    /etc/systemd/system/hermes.service [Unit] Description=Hermes Agent After=network-online.target Wants=network-online.target [Service] Type=simple User=hermes ExecStart=/usr/local/bin/hermes gateway start telegram --daemon Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
  6. Enable and start:
    Shell sudo systemctl enable hermes sudo systemctl start hermes sudo systemctl status hermes

Send a message to your bot from your phone. If it responds, the VPS deployment is live. If it does not, check journalctl -u hermes -f for logs. The answer is almost always a bad API key or a misconfigured gateway token.


Memory and Skills Overview

Hermes keeps three kinds of memory, all under ~/.hermes/. The important one to know about first is episodic memory: a SQLite FTS5 database at ~/.hermes/state.db that indexes every conversation with full-text search. This is what lets the agent recall what you talked about three days ago.

The other two layers are more subtle:

  • Semantic memory lives in MEMORY.md and USER.md files. These store persistent facts about you and your projects (preferences, project names, environment details) and update automatically over time.
  • Procedural memory is the skills system. After 5+ tool calls following the same pattern, Hermes auto-generates a reusable skill and saves it to ~/.hermes/skills/.

Skills

Skills are reusable automation patterns. After Hermes detects a recurring workflow (5+ tool calls following the same pattern), it auto-generates a skill and saves it to ~/.hermes/skills/. Skills become slash commands automatically.

You can also install community skills:

Shell hermes skills install

Review before you install. Community skills are code that runs in your agent's context with access to your configured tools and credentials. Read the source, pin versions, and start with the auto-generated skills before pulling from external sources.

For a deep dive into skills, memory architecture, and the self-improving execution loop, see What Is Hermes Agent?


Troubleshooting

Six issues that catch most people on the first install. Click any question to expand.

The installer adds hermes to your PATH, but your current shell session does not know about it yet. Restart your terminal or run source ~/.bashrc (or source ~/.zshrc on macOS).

If the command is still not found after sourcing, check which hermes and verify the install directory is in your PATH.

Your default model has less than the 64K minimum context Hermes requires. Switch to a model with 128K+ context:

hermes model set default /

OpenRouter's model list shows context lengths. Filter for 128K+ and pick one within your budget.

This is the "Message Content Intent" issue described in Step 4. Go to the Discord Developer Portal, open your application, navigate to the Bot tab, scroll to "Privileged Gateway Intents," and enable Message Content Intent.

Without this, Discord sends empty message payloads to your bot. The bot is online and receiving events, but the message body is blank, so Hermes has nothing to respond to.

Usually an invalid or expired API key. Run hermes doctor to validate your configuration. It tests API key validity and model connectivity.

If the key is valid but you are still getting 400s, check that the model name matches the provider's expected format. OpenRouter uses provider/model format; direct providers use their own naming.

Do not run Hermes with sudo. The installer is designed for user-level installation. If you get permission errors, use the --user flag.

If the error is on ~/.hermes/ directory access, check ownership: ls -la ~/.hermes/. If it is owned by root (from a previous sudo run), fix with sudo chown -R $USER ~/.hermes/.

Check the ~/.hermes/ directory permissions. The SQLite database at ~/.hermes/state.db and the Markdown files (MEMORY.md, USER.md) need read/write access for your user.

Also verify that Hermes is using the correct memory directory. If you changed it during hermes setup, the gateway must be restarted to pick up the change.


Video Resources

We are producing video walkthroughs covering the install, memory system, and VPS deployment. Check back here as they go live.

Tutorial
Hermes Agent: Full Install Walkthrough
End-to-end installation from scratch, covering the CLI, provider setup, and first Telegram bot. Video coming soon.
Deep Dive
Hermes Memory System Explained
How episodic, semantic, and procedural memory layers work together in practice. Video coming soon.
Tutorial
Deploy Hermes on a $5 VPS
Complete VPS deployment with systemd service setup and multi-platform gateways. Video coming soon.

Data verified: 2026-05-13. Hermes Agent is MIT-licensed open-source software maintained by Nous Research. Launched February 25, 2026 (v0.1.0); current release v0.13.0 "The Tenacity Release" (May 7, 2026). 295 contributors. All statistics sourced from the Hermes Agent GitHub repository and official documentation. This article was not sponsored by Nous Research. Tech Jacks Solutions receives no affiliate commissions from any provider or platform referenced.
Before You Use AI
Your Privacy

Hermes Agent runs on your infrastructure. Conversation data stays in your local SQLite database at ~/.hermes/state.db. Your LLM backend (OpenRouter, Anthropic, OpenAI, Ollama) determines what data reaches external servers; review each provider's data retention and training-use policies. Running Ollama keeps all inference fully local. Messaging platform data (Telegram, Discord, Slack) remains subject to those platforms' privacy policies.

Mental Health & AI Dependency

Personal agents that handle messaging, scheduling, and automation can foster dependency on AI-generated decisions. Maintain a human review gate on any action with real-world consequences. If you or someone you know is in crisis:

  • 988 Suicide & Crisis Lifeline: Call or text 988 (US)
  • SAMHSA Helpline: 1-800-662-4357
  • Crisis Text Line: Text HOME to 741741

AI systems can produce plausible-sounding but incorrect guidance. For mental health, medical, legal, or financial decisions, always consult a qualified professional.

Your Rights & Our Transparency

Under GDPR and CCPA, you have the right to access, correct, and delete personal data. Tech Jacks Solutions maintains editorial independence. This article was not sponsored by Nous Research or any of the providers, platforms, or hosting services referenced. We receive no affiliate commissions from OpenRouter, Ollama, or any VPS provider mentioned. Evaluations are based on official documentation, the Hermes Agent GitHub repository, and verified release notes.