Hermes Agent is a self-improving, multi-platform AI agent built by Nous Research. It provides an LLM-powered assistant that can execute tools (terminal commands, file operations, web browsing, code execution), learn from experience by creating and refining reusable skills, maintain persistent memory across sessions, and communicate over 20+ messaging platforms from a single gateway process.
Most AI assistants are stateless chat interfaces locked to a single provider and a single interface. Hermes Agent addresses five gaps simultaneously:
Gap
How Hermes Solves It
No persistence
Memory system (MEMORY.md, USER.md) survives across sessions. Session search (FTS5 + LLM summarization) enables cross-session recall.
No learning
Skills system: agent creates reusable procedural skills from experience, improves them during use, and shares them via Skills Hub.
Single interface
Multi-platform gateway: Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Email, SMS, Home Assistant, and more - all from one process.
Provider lock-in
Works with any OpenAI-compatible endpoint: OpenRouter (200+ models), Anthropic, Google Gemini, Nous Portal, Kimi, MiniMax, Hugging Face, local models via LM Studio/Ollama/vLLM. Switch with hermes model.
Laptop-bound
Runs on a $5 VPS, GPU clusters, Docker, Modal (serverless), Daytona, SSH remotes. Talk to it from Telegram while it works on a cloud VM.
Power users & developers who want a personal AI agent that learns their preferences, runs unattended cron jobs, and can be reached from any messaging platform.
AI/ML researchers who need batch trajectory generation, RL training environments (Atropos), and trajectory compression for training tool-calling models.
Teams who want a self-hosted, privacy-respecting AI assistant that isn't tied to a specific vendor.
OpenAI SDK as universal client: The openai library's chat completions format is the de facto standard. Nearly every LLM provider (OpenRouter, Nous, vLLM, llama.cpp, LM Studio) exposes an OpenAI-compatible endpoint. Using it as the primary client means one code path handles 200+ models.
Anthropic SDK for native features: Claude's extended thinking, prompt caching, and interleaved reasoning require the native API. The Anthropic adapter (agent/anthropic_adapter.py) activates automatically for direct Anthropic connections.
prompt_toolkit over alternatives: Provides real terminal UX - multiline editing, syntax highlighting, autocomplete, history - unlike simple input() loops.
SQLite (WAL mode) for sessions: Zero-dependency, file-based, concurrent-read-safe. FTS5 enables cross-session search without an external search engine.
Subprocess-based environments: Docker, SSH, Modal, and Singularity are all driven via subprocess calls rather than client libraries (except Modal/Daytona SDKs). This avoids heavy dependencies and works identically across platforms.