⚡ Open source · Self-hosted · MIT licensed

Hermes
Agent

The self-improving AI agent that runs on your server. Layered memory that accumulates across sessions, a cron scheduler that fires while you're offline, and a skills system that saves reusable procedures automatically.

Built by Nous Research

Community Web UI — not affiliated with or endorsed by Nous Research. Official site: hermes-agent.nousresearch.com

Most tools are excellent in the moment and weak over time

Memory, scheduling, and agent tools are available across many products. What matters is how they work together: retaining useful context, repeating work reliably, and making the results available where you need them.

The distinction that matters is not "has memory" vs. "has no memory." It's whether context persists across sessions automatically, whether execution happens on hardware you control, whether you can reach the same agent identity from any device, and whether the system gets meaningfully better at your workflow over time without manual configuration.

Hermes answers yes to all four. It runs as a persistent process on your server. Memory is markdown files in ~/.hermes/. The same agent that answered your Telegram message at 9am is available in your terminal at 2pm, with full context.

No single feature is the point. Memory, scheduling, and messaging each exist in other products. Hermes puts them in one self-hosted process, so what the agent learns in one place is there in the others.
Session-scoped tool
You → [Tool] → Answer → Done
(some tools carry memory, but execution is stateless)

Persistent agent
You ↔ [Hermes] ↔ (memory, skills,
                    schedule, tools,
                    surfaces)

Memory: ~/.hermes/ (markdown files, editable)
Skills: auto-written from experience
Schedule: cron, runs while you sleep
Surfaces: Telegram · Discord · Slack · browser
Model: your choice, swap anytime

Memory, a schedule, and a way to reach your agent

🧠

Memory that compounds

Layered memory system: user profile, agent memory, skills, and session history. All stored locally as readable, editable markdown files at ~/.hermes/.

  • Survives every reboot and model swap
  • 8 optional external memory providers
  • You never configure it manually
  • Portable, inspectable, deletable
Memory docs →
⏰

Autonomous scheduling

Built-in cron scheduler runs on your server with full access to your memory and skills, and delivers results wherever you want them.

  • Morning news briefings to Telegram
  • PR review automation
  • Test suite monitoring
  • Blog watchers and price alerts
Scheduling docs →
📡

Reach it from anywhere

Multi-surface access: same agent, same memory. Switch surfaces mid-conversation without losing context.

  • Telegram · Discord · Slack · WhatsApp
  • Signal · Matrix · Mattermost · Email · SMS
  • DingTalk · Feishu · WeCom · BlueBubbles
  • Home Assistant · browser
Messaging docs →

Everything in one system

🔧
47 built-in tools

Web search and extraction, browser automation, code execution, vision analysis, image generation, TTS, subagent delegation, and more.

Tools reference →
📚
Self-improving skills

The agent writes its own skills from experience. Compatible with agentskills.io open standard and shareable via Skills Hub.

Skills docs →
🔌
MCP integration

Connect to any MCP server. Hermes can also expose itself as an MCP server for Claude Code, Cursor, or Codex.

MCP docs →
🎤
Voice mode

Real-time voice in CLI (Ctrl+B to record), Telegram voice bubbles, Discord voice channels. Supports faster-whisper locally or Groq/OpenAI Whisper.

Voice docs →
🖥
6 terminal backends

Local, Docker, SSH, Daytona, Singularity, Modal. Run execution anywhere from a $5 VPS to serverless cloud, sandboxed as needed.

Backend docs →
🎭
Personality & SOUL.md

Define the agent's default voice with a global SOUL.md file. 14 built-in personas plus custom personalities via config.

Personality docs →
🤝
Agent orchestration

Spawn Claude Code or Codex as sub-agents for heavy coding tasks. Results fold back into Hermes memory. Hermes also runs as an MCP server for other tools.

Orchestration docs →
🔒
Security model

7-layer defense in depth: user allowlists, dangerous command approval, Docker isolation, MCP credential filtering, prompt injection scanning, cross-session isolation, input sanitization.

Security docs →

A browser workspace for Hermes Agent

Keep your conversations, model and profile controls, and workspace files together. Chat in a three-panel desktop workspace or pick up the conversation from your phone. GitHub →

A complete workspace in your browser. Follows this page’s light/dark toggle.On a larger screen: sessions, chat and workspace files side by side. Tap to enlarge.
The same work, on your phone.

What it includes

Built to mirror the Hermes CLI
Multi-profile support
Session history with projects and tags
Tool call cards with expand/collapse
Workspace file browser
Inline file preview (code, markdown, images)
Light + dark mode
Password protection
SSH tunnel ready
Docker image available
Voice input (Web Speech API)
Mobile responsive
1
Install Hermes Agent first
bash
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
hermes model   # configure your LLM provider
2
Install & start the Web UI
bash — one-liner
curl -fsSL https://get-hermes.ai/install.sh | bash

Clones the Web UI to ~/hermes-webui and starts it on http://127.0.0.1:8787. Safe to re-run to update. Prefer to read it first? View the script, or do it by hand:

bash — manual
git clone https://github.com/nesquena/hermes-webui.git hermes-webui
cd hermes-webui
./start.sh
or
Docker option
bash
docker pull ghcr.io/nesquena/hermes-webui:latest
docker run -d \
  -e WANTED_UID=$(id -u) -e WANTED_GID=$(id -g) \
  -v ~/.hermes:/home/hermeswebui/.hermes \
  -v ~/workspace:/workspace \
  -p 8787:8787 ghcr.io/nesquena/hermes-webui:latest
→
SSH tunnel (for remote servers)
bash
ssh -N -L 8787:127.0.0.1:8787 user@your-server

Then visit http://localhost:8787

Who gets the most out of it

Hermes pays off for people who return to the same work, week after week.

💻
Solo developers
Don't want to re-explain your stack every session. Want an AI that actually knows your environment, your conventions, and what you fixed last week.
👥
Teams on a shared server
Multiple people sharing capable AI access without separate subscriptions. Each gets their own profile, memory, and history on the same instance.
⚡
Automation-heavy
Want an AI running scheduled tasks, delivering results to your phone, without babysitting it. Morning briefings, PR reviews, monitoring.
🔐
Privacy-conscious
Conversations, memory, and files are stored on your hardware. Prompts go to the model provider you choose, or stay on the machine if you run a local model. Any messaging platform you connect sees what you send through it.
🔄
Multi-model users
Switch between OpenAI, Anthropic, Google, DeepSeek, and others based on cost, capability, or rate limits without rebuilding your workflow.

Where Hermes fits beside the tools you already use

Hermes does not replace your chat app or your coding assistant. It is the part that stays running on your own machine. Here is how the work divides.

Chat assistants

Hosted apps you open in a browser or on your phone.

Keep using it for

Quick questions, research, and drafting, with nothing to install or maintain.

Add Hermes when

You want the agent to act on your own machine, with your files and your shell, and to keep its memory as markdown in ~/.hermes/ that you can read, edit, and delete.

Coding agents

Agents you start in a repository to carry out a coding task.

Keep using it for

Focused sessions in one codebase: reading the code, making the change, running the tests.

Add Hermes when

The work is not one repo or one sitting: jobs that run on a schedule, requests you send from your phone, context that carries from one project to the next.

AI code editors

Assistants built into the editor you write code in.

Keep using it for

Completions and edits inline, while you type. Hermes does not try to do this.

Add Hermes when

The work happens away from the editor: a server to check overnight, or a report due every morning.

Other self-hosted agents

Open-source agents you run yourself, like Hermes.

How to choose

Here you are choosing one or the other. They differ in how memory is stored, how skills get written, and which messaging platforms they support. Those details change often, so compare them on the side-by-side page.

These rows describe kinds of product, not any single product, and the lines between them keep moving. The linked pages cover each tool in detail. Hermes has trade-offs of its own, listed under What Hermes is not.

Get started in 60 seconds

⭐ Want it on your phone, desktop, or every device? Read the full cross-platform setup guide — run the server once, then get a native app on Web, Windows, Linux, macOS, iOS & Android. Open setup guide →

Next: let your agent sign in · build on the Bridge API · read the practical guides

Works on Linux, macOS, WSL2, and Android (Termux). On Windows, use WSL2 first.

bash — one-liner install
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
bash — first run
source ~/.bashrc      # reload shell
hermes model          # choose your LLM provider
hermes                # start chatting
bash — key commands
hermes model          # choose LLM provider and model
hermes tools          # configure enabled tools
hermes gateway setup  # set up messaging platforms
hermes doctor         # diagnose any issues
Full installation guide →

Supported LLM providers

Nous Portal OAuth
OpenAI / Codex Device code auth
Anthropic API key / auth
OpenRouter 200+ models API key
GitHub Copilot OAuth or token
Google / Gemini API key
DeepSeek API key
Groq API key
Hugging Face 20+ models API key
Ollama / local Local
Custom endpoint Any OpenAI-compatible URL Custom
⚡ Run hermes model to browse and authenticate interactively

Hosting options

Hermes is self-hosted by design — it runs on hardware you control. Here are the most practical ways to get it running, from zero-setup managed hosting to a bare VPS.

★ Easiest option
⚡
Agent37
From $3.99/mo

Managed Hermes hosting — live in 60 seconds with no VPS configuration. The only provider purpose-built for Hermes, with full terminal access, visual file browser, and live browser view on every plan.

  • Isolated Docker container per user
  • Full terminal + file browser on all plans
  • Brave search & Composio integrations included
  • Bring your own API key (Claude, OpenAI, Gemini…)
  • Live browser view: watch your agent work in real time
Visit agent37.com →
🖥
VPS — self-hosted
~$4–8/mo

Full control at roughly the same cost. Hetzner CX22 is the recommended pick: 4 GB RAM, 2 vCPU, 40 GB SSD, 20 TB bandwidth. Add Coolify for one-click deploys from GitHub with no manual Docker work.

  • Hetzner CX22 (~$4.50/mo) — best price-performance
  • Coolify for easy GitHub deploys (free, open-source)
  • Vultr, DigitalOcean, Linode all work from $5/mo
  • Full root access, no vendor lock-in
  • Docker or bare metal, any Linux distro
Install docs →
☁
PaaS platforms
$5–7/mo

Git-push deploys with no server management. Good if you want to skip infrastructure entirely. Railway, Render, and Fly.io all support Node.js and Python with automatic SSL and domains.

  • Railway Hobby — $5/mo, connect GitHub, auto-deploy
  • Render — free tier available (sleeps on inactivity)
  • Fly.io — Docker-native, 30+ global regions
  • No SSH or server management required
  • Built-in CI/CD on every git push
Install docs →
📊
Minimum requirements — no GPU needed (Hermes calls external APIs)
  • RAM: 1 GB min, 2 GB recommended
  • CPU: 1 vCPU minimum
  • Storage: 10–20 GB SSD
  • OS: Ubuntu 22.04 LTS or any modern Linux
  • Model: Bring your own key — Claude, OpenAI, Gemini, or local
🏠

Runs anywhere Python 3.11+ runs. Mac Mini, Raspberry Pi, a spare laptop, a homelab NAS — if it can run Python, it can run Hermes. No GPU needed. See the install docs for full requirements.

What Hermes is not

Worth saying clearly. These are real trade-offs, not caveats.

✏
Not the best in-editor autocomplete. Cursor and Windsurf do that job better. Use one alongside Hermes — that's not what it's optimizing for.
🔧
Not zero-setup. You're running a server. That means initial configuration, and you're responsible for uptime, upgrades, and backups. The tradeoff is data sovereignty and control.
🤖
Doesn't make weaker models magical. Memory and skills help, but the underlying model determines reasoning quality. Hermes with a weak model is a well-organized weak model.
⚠
Needs guardrails for high-stakes automations. Autonomous execution on a schedule with shell access is powerful and requires judgment. Terminal commands can require confirmation — use that for anything consequential.
⚡
Not the lowest-friction one-shot tool. For a quick answer you'll never revisit, a chat interface is faster. Hermes earns its setup cost over time, not in the first session.