NousResearch /
hermes-agent
Self-hosted AI agent that keeps skills and memory, and chats via terminal or Telegram
- 256.3k stars
- 5.6k stars since 3 Oct
- Python
- Updated today
- Some experience
- AI agents
Hermes Agent is a personal AI agent you run yourself. You talk to it in a terminal interface or through Telegram, Discord, Slack, WhatsApp, Signal or email. One gateway process handles all the chat platforms, so a conversation can carry across them.
Its main idea is a learning loop. After complex tasks it can write a reusable skill, and it improves that skill with use. It keeps notes in memory, searches past conversations, and builds a profile of you over time. The README says its skills follow the agentskills.io open standard.
It isn't tied to one model or one machine. You pick a provider with hermes model, including Nous Portal, OpenRouter, OpenAI or your own endpoint. Tools can run locally, in Docker, over SSH, or on Singularity, Modal, Daytona or Vercel Sandbox. That lets it live on a cheap server while you chat from your phone. The README also covers migrating from OpenClaw.
What it does
Learning loop
Creates skills after complex tasks and refines them as it uses them. It also keeps agent-curated memory and searches past sessions with full-text search and LLM summaries.
Many chat platforms, one gateway
Telegram, Discord, Slack, WhatsApp, Signal and the CLI connect through one gateway process. Voice memos are transcribed.
Scheduled automations
A built-in cron scheduler runs tasks described in natural language, such as daily reports or nightly backups. Results can be delivered to any connected platform.
Subagents and scripted tool calls
Spawns isolated subagents for parallel work. It can also write Python scripts that call tools over RPC, which collapses multi-step pipelines into one turn.
Seven terminal backends
Runs tools locally, in Docker, over SSH, or on Singularity, Modal, Daytona and Vercel Sandbox. Daytona and Modal can hibernate when idle.
What you could build
- Run an assistant on a small cloud server and message it from Telegram while it works.
- Schedule daily reports, nightly backups or weekly audits in plain language and have them sent to Discord or Slack.
- Compare different LLM providers by switching models in the same agent with one command.
- Connect MCP servers to give the agent extra tools for your own workflows.
- Generate batch trajectories for research on training tool-calling models.
Get started
On Linux, macOS or WSL2, run the install script, then reload your shell and type hermes to start chatting. Use hermes model to choose a provider, and hermes setup for the full wizard. Windows has a separate PowerShell installer in the README.
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bashsource ~/.bashrchermesCommands are copied from the project's README. Read it on GitHub for the full setup.
Anything better than hermes-agent?
Hermes Agent is the strongest pick for a self-hosted, general-purpose agent that learns skills, remembers across sessions, and chats via terminal or Telegram. Nothing here matches that full bundle. Look elsewhere only if you need just a memory layer or a desktop-first or Rust-based harness.
-
hindsightUse alongside
Add it when you want a dedicated, self-hosted memory server with search and summaries over past interactions, shared across agents and clients rather than only inside Hermes.
Trade-off: It is only a memory layer, so you run and integrate another service alongside Hermes.
-
TencentDB-Agent-MemoryUse alongside Use it when a team wants reviewed, shared memory, skills, docs wiki and code graph assigned across several agents, including Hermes, through a proxy. Trade-off: It adds a server to operate and review, and it does not replace the agent itself.
-
openhumanAlternative Pick it if you want a Rust agent harness with a desktop app, browser UI and embeddable library, with local-first memory by default. Trade-off: It has a smaller community and, from its description, less focus on chat-platform gateways and a skill-learning loop.