Model or dataset
NousResearch/hermes-agent avatar
NousResearch/hermes-agent

Hermes Agent: Self-Improving AI with Memory, Scheduling, and Messaging

Hermes Agent runs as a personal agent with persistent memory, scheduled work, tool use, and integrations for messaging and local services.

249,187 stars52,890 forksPythonMIT

At a glance

What is it?
Hermes Agent is a free, MIT-licensed self-hosted AI agent from Nous Research that builds a persistent memory of the user across sessions, creates and improves skills autonomously, runs scheduled tasks, and connects to messaging platforms including Telegram, Discord, and Slack. It is designed to run unattended on a VPS, Docker container, or serverless infrastructure rather than only during an active terminal session.
Who is it for?
Hermes Agent suits users who want an AI agent that persists between sessions, learns from their work patterns, runs scheduled tasks without supervision, and communicates over messaging platforms. It is not the right tool for quick, one-off queries or for users who want only a coding assistant that stays within a single terminal session.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 26, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Hermes Agent Is and Who It Targets

Most AI coding assistants and chat interfaces are stateless: each session begins without any memory of previous conversations. Hermes Agent targets users who want the opposite: an agent that tracks context across sessions, builds a model of the user over time, and runs autonomously when the user is away from the keyboard.

The README describes it as a self-improving agent built by Nous Research that creates skills from experience, improves those skills during use, searches its own past conversations, and builds a deepening model of who you are across sessions. The target users are developers, researchers, and power users who want persistent automation beyond what a session-based assistant can provide.

The README positions it as infrastructure that runs wherever the user needs it: a $5 VPS, a GPU cluster, or serverless infrastructure that costs nearly nothing when idle, and reachable from Telegram while running on a cloud VM.

The Learning Loop: Skills, Memory, and Session Search

The feature the README emphasizes most is the learning loop. After complex tasks, the agent autonomously creates skills: reusable, named procedures that can be invoked in future sessions. These skills are improved during subsequent use, not just at creation time. The README calls this a closed learning loop.

Persistent memory is stored in a database that the agent can search using FTS5 (SQLite full-text search) with LLM-assisted summarization for cross-session recall. The hermes_state_fts.py file in the repository confirms the FTS5 implementation. The agent uses periodic nudges to persist knowledge it considers important.

For user modeling, the README mentions Honcho dialectic user modeling (github.com/plastic-labs/honcho) and compatibility with the agentskills.io open standard for skills. These are third-party integrations the agent builds on rather than components Hermes implements itself.

Installing Hermes Agent

The README shows two one-line install commands. On Linux, macOS, or WSL2:

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

On Windows (native, in PowerShell):

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

After installation, reload the shell and start the agent:

bash
source ~/.bashrc
hermes

The installer handles Python 3.14, Node.js, npm, ripgrep, FFmpeg, and Python dependencies through PM (Hermes's package manager). The setup.py in the repository explicitly blocks pip and PyPI installation: Hermes is distributed through the shell installer, Docker, or Nix only. The pyproject.toml notes that Python 3.11 to 3.14 is supported, and that exact-pinned dependencies (no version ranges) were tightened after a supply-chain incident in May 2026.

Android devices running Termux have a separate signed APT repository for aarch64, with a stable channel for tagged releases and a canary channel for prereleases. The README directs Termux users to a separate guide rather than the desktop installer.

The CLI Commands and Terminal Interface

After installation, the primary entry point is the hermes command. The README shows the core commands:

bash
hermes
hermes model
hermes tools
hermes config set
hermes config get
hermes gateway

The interactive CLI is a full TUI with multiline editing, slash-command autocomplete, conversation history, interrupt-and-redirect, and streaming tool output, per the README's feature table. Running hermes model switches the LLM provider and model without requiring code changes. The README lists supported providers as Nous Portal, OpenRouter, OpenAI, custom endpoints, and others linked from the documentation.

The hermes gateway command starts the messaging gateway that connects the agent to Telegram, Discord, Slack, WhatsApp, and Signal. The README describes voice memo transcription and cross-platform conversation continuity as features of the gateway. A single gateway process serves all connected messaging platforms.

Running Anywhere: Terminal Backends and Docker

Hermes Agent supports seven terminal backends: local, Docker, SSH, Singularity, Modal, Daytona, and Vercel Sandbox. The README notes that Daytona and Modal offer serverless persistence, meaning the agent's environment hibernates when idle and wakes on demand.

For Docker deployment, the docker-compose.yml mounts the host's ~/.hermes directory into the container at /opt/data, so state persists across container restarts. Run it with:

bash
HERMES_UID=$(id -u) HERMES_GID=$(id -g) docker compose up -d

The docker-compose.yml includes detailed security notes: the dashboard binds to 127.0.0.1 by default because it stores API keys, and exposing it on a LAN without authentication is explicitly flagged as unsafe. Remote access requires an SSH tunnel or a reverse proxy with authentication. The API server is disabled by default and must be explicitly enabled by setting API_SERVER_KEY and API_SERVER_HOST.

Scheduled Automations and Subagent Delegation

The built-in cron scheduler lets users define automations in natural language. The README gives examples: daily reports, nightly backups, weekly audits, all running unattended. These are delivered to whichever messaging platform is configured via the gateway.

For parallelism, the agent can spawn isolated subagents for independent workstreams. The README also notes that Python scripts can call tools via RPC, which collapses multi-step pipelines into single context-efficient turns. The batch_runner.py file in the repository suggests batch execution is supported for trajectory generation and model training purposes.

The cron/ directory in the repository holds the scheduler implementation. The gateway/ directory holds the messaging integrations.

Limitations and the Windows Antivirus Issue

The README documents one notable operational issue for Windows users: Windows Defender and other antivirus tools commonly flag uv.exe, the Rust-based Python package manager Hermes bundles, as malware. The README describes this as a false positive from ML-based antivirus engines that flag unsigned Rust binaries that download packages.

The recommended fix is to whitelist the Hermes bin folder (%LOCALAPPDATA%\hermes\bin) rather than individual files, because Hermes updates uv and the file hash changes with each version. The README provides a verification script using the GitHub CLI to confirm the uv.exe binary's attestation against the Astral release.

As a self-hosted agent with tool use, access to files, and command execution, Hermes has significant system access. The README notes that the terminal agent asks for approval before any state-changing operation, but users running the agent on a remote server should review what tools are enabled via hermes tools before exposing the gateway.

Maintenance Status and License

The repository is not archived. The last push was on 2026-09-26. The most recent release is Hermes Agent v0.21.5 (v2026.9.24), published on 2026-09-24. The version numbering uses a date-based scheme (v2026.9.24) alongside a semantic version (v0.21.5). Releases have been weekly in September 2026.

The license is MIT. The project is produced by Nous Research, which is listed on the repository homepage at nousresearch.com. A SOUL.md file in the repository and a CONTRIBUTING.md describe the project's values and contribution process.

Editorial conclusion

Hermes Agent suits users who want an AI agent that persists between sessions, learns from their work patterns, runs scheduled tasks without supervision, and communicates over messaging platforms. It is not the right tool for quick, one-off queries or for users who want only a coding assistant that stays within a single terminal session. The Docker and Docker Compose setup make server deployment straightforward, but the docker-compose.yml notes that exposing the dashboard beyond localhost without authentication is unsafe, so remote access requires an SSH tunnel or a reverse proxy with authentication. The MIT license permits any use. The project is actively maintained, with weekly releases in September 2026.

Frequently asked questions

What is the Hermes coding agent?

Hermes Agent is a self-hosted AI agent from Nous Research that builds persistent memory across sessions, creates skills from completed tasks, runs scheduled automations, and connects to messaging platforms like Telegram and Discord. It works with any LLM provider and can run on a VPS, Docker container, or serverless infrastructure.

How do I install Hermes Agent?

On Linux, macOS, or WSL2, run curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash. On Windows, run iex (irm https://hermes-agent.nousresearch.com/install.ps1) in PowerShell. The pip and PyPI installation paths are not supported; only the shell installer, Docker, or Nix are official methods.

How do I install Hermes Agent on Windows?

Run iex (irm https://hermes-agent.nousresearch.com/install.ps1) in PowerShell. If your antivirus flags uv.exe as malware, this is a known false positive. The README recommends whitelisting the %LOCALAPPDATA%\hermes\bin folder and provides a verification script using the GitHub CLI to confirm the binary is authentic.

Is Hermes Agent free?

Hermes Agent is MIT-licensed and free to use, including commercially. The README notes it can run on serverless infrastructure that costs nearly nothing when idle. Costs may arise from the LLM provider you choose (Nous Portal, OpenRouter, OpenAI) and any server you deploy it on; those are third-party services, not fees for Hermes itself.

How do I use Hermes Agent for coding?

Run hermes after installation to start an interactive session. Use hermes model to select your LLM provider, and hermes tools to configure which tools the agent can use. The agent creates skills from complex tasks automatically, so repeated coding workflows improve over time as it learns your patterns.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
For maintainers

Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/nousresearch-hermes-agent.svg)](https://hysenlabs.com/projects/nousresearch-hermes-agent)
Community notes

Community notes