Hermes AgentAI AgentAgent Skill
What is Hermes Agent? How it works, its structure and use cases
Hermes Agent is an open-source AI agent from Nous Research that runs on your own computer or server, uses tools to carry out tasks and remembers what it learned. This guide explains why to use it, its folder structure, how it works and learns, cron jobs, limits and use cases.
Key points
- Hermes Agent is an open-source AI agent framework by Nous Research: it works with the AI model you choose and uses tools to carry out tasks, on your own computer or a server.[1] [2]
- An agent's settings, identity file, memory, skills and cron jobs sit in one home folder.[3]
- It learns between sessions: memory holds short facts, skills hold step-by-step procedures, and the agent writes both itself.[4] [5]
- Cron jobs let it work without you: a job has a schedule, a prompt and a delivery target, and each run starts in a fresh session.[6]
Hermes Agent can live on your own computer or on a cloud server, and you can write to it from a chat app such as Telegram while it works on that server.2
This guide covers what Hermes Agent is and why to use it, the folder it lives in, how it works and learns, cron jobs, what it connects to, its limits, its use cases and the first steps.
What Hermes Agent is
Hermes Agent is an open-source AI agent framework by Nous Research.1 It belongs to the same category as Claude Code from Anthropic, Codex from OpenAI and OpenClaw: agents that carry out coding and other tasks on their own and act on your system by calling tools.1 You use it in your terminal, in a desktop app, in messaging apps and in code editors.1
You choose the AI model: Hermes Agent works with any OpenAI-compatible API, and the supported providers include OpenRouter, OpenAI, Anthropic and Google, as well as local models.7 When the model asks for a tool, Hermes Agent runs it and gives the result back to the model.8 The tools are functions that extend what the agent can do, from web search, terminal commands and file editing to memory and scheduled tasks.9 With a model that cannot call tools, Hermes Agent can only chat and takes no actions.10
Nous Research, the lab behind the Hermes, Nomos and Psyche models, describes Hermes Agent as an autonomous agent that gets more capable the longer it runs: not a coding copilot tied to an editor, and not a chatbot built around a single API.2 The map shows the six parts of Hermes Agent that this guide works with: the interfaces, the agent core, the AI model, the tools, the storage and the skills.
- InterfacesThe terminal, the desktop app, the gateway for chat apps, code editors and an API server all use the same agent core.11 12 So does the scheduler for cron jobs, which runs inside the gateway.11 6
- Agent coreOne class,
AIAgent, builds the prompt, selects the model provider and runs the tools the model asks for.11 - AI modelEach request goes to the provider you configured. If that provider fails, the core can switch to a backup provider from your settings.8
- ToolsEvery tool registers in one central registry.11 MCP servers add more tools.9
- StorageSettings, memory, skills, sessions and cron jobs are stored in the folder
~/.hermes/.3 - SkillsThe prompt contains a list of the installed skills. When a task matches one, the model loads its full text with the tool
skill_view.13 5
Why use Hermes Agent
This guide picks six features as the reasons to choose Hermes Agent over a chat assistant or a coding tool in an editor.
Inside the Hermes Agent folder
The settings, identity, memory, skills, cron jobs and logs of one agent sit in a single home folder, ~/.hermes/.3 After the script installation on Linux or macOS, the program code is by default in the same folder, in hermes-agent/. On Windows the home folder is %LOCALAPPDATA%\hermes\.15
A profile is a further home folder under ~/.hermes/profiles/, with its own settings, identity, memory, skills and cron jobs. Profiles let several independent agents run on one machine, for example one for coding and one for research.16
How Hermes Agent works
Every request runs through the same loop: Hermes Agent builds the prompt, calls the model, runs the tools the model asks for, and repeats this until the model answers in text.8
TopicWhat is an agent harness? How it works, its parts and use cases describes the loop that every harness runs, with its permission check, its context management and its hooks.A message sent from a chat app such as Telegram first reaches the gateway. It checks that the sender is allowed, finds the matching session and then starts the agent.11
- Build the promptThe system prompt is put together from the identity file
SOUL.md, project files, the memory entries and the list of skills.13 It stays the same during a conversation, apart from explicit actions such as switching the model.11 - Shorten if neededWhen the conversation grows past a set share of the model's context window, the middle turns are replaced by a summary and the latest messages stay as they are.8
- Call the modelThe request goes to the provider. A new message from you can interrupt it.8
- Run the toolsIf the model asks for tools, Hermes Agent runs them and adds the results to the conversation. Several tool calls run at the same time, unless one of them needs your input.8
- Save and replyWhen the model answers in text, the messages are saved to the session database, memory changes are written to disk and the answer is returned.8
How Hermes Agent learns
Hermes Agent carries knowledge from one session to the next in three stores: memory, skills and the record of past sessions.4 5 Nous Research calls it a self-improving agent, because it creates skills from experience and saves knowledge on its own.2
- Memory holds short factsTwo files with default size limits:
MEMORY.mdfor the agent's notes about the environment (2,200 characters) andUSER.mdfor your preferences (1,375 characters). Both are placed in the prompt when a session starts.4 - Skills hold proceduresWhen the agent has worked out a task with several steps, it can save the steps as a skill. The prompt contains only the list of skills, and the full text of a skill is loaded when a task needs it.5 13
- Sessions hold everything saidEvery conversation is kept. The agent searches the stored sessions with a tool when it needs something from an earlier conversation.4
A preference such as short answers belongs in memory, and the steps of a task that comes back, such as collecting the daily news, belong in a skill.4 5
TopicWhat is Hindsight? Agent memory, knowledge graph and use cases describes a memory system that stores facts in a database and links them through entities. TopicKeyword, semantic and knowledge graph search: hybrid search explained describes how AI agents, Hermes Agent among them, search what they have stored.Saving happens in two ways. The agent can save during a task, and a background review after a turn can add a memory entry or update a skill. Two optional settings, off by default, one for memory and one for skills, hold these writes until you confirm them.4 5
Skills are also cleaned up. A maintenance pass called the curator looks after the skills that the background review created: by default it marks a skill as stale after 14 days without use and archives it after 30 days, and it never deletes one automatically.17 Skills are compatible with the open agentskills.io standard, and more can be installed from online registries, each after a security scan.5
Cron jobs in Hermes Agent
A cron job is a task that Hermes Agent runs on a schedule without being asked: a daily report, a nightly backup or a weekly audit.14 A job can be created in chat with /cron add, on the command line with hermes cron create, or by asking in plain language, for example to send a summary of AI news to Telegram every morning.6
Jobs are stored in the file ~/.hermes/cron/jobs.json and survive updates and restarts.6 The table lists the six fields that this guide uses; the documentation has more.
| Field | What it sets | Example from the documentation |
|---|---|---|
| Schedule | When the job runs.6 | every 2h |
| Prompt | The task for the agent.6 | Check server status |
| Skills | Skills that are loaded before the prompt runs. Optional.6 | blogwatcher |
| Delivery | Where the answer goes.6 | telegram |
| Repeat | How many times the job runs. By default a one-time job runs once and a recurring job runs until it is removed.6 | repeat=5 |
| Script | A script that runs before the agent or, in no-agent mode, in its place with no model call. Optional.6 | memory-watchdog.sh |
The diagram follows one run of a job.
- The scheduler finds a due jobThe gateway runs the scheduler and checks every 60 seconds which jobs are due. Scheduled runs therefore fire only while the gateway is running.6
- A fresh agent startsEach job runs in a new session without chat history, so its prompt has to contain everything the agent needs.6
- Attached skills are loadedSkills attached to the job are loaded in order, before the prompt.6
- The model uses toolsThe agent works with the toolset configured for cron jobs, and by default it cannot create, edit or remove cron jobs from inside a job.6 A dangerous command is blocked by default, because a cron job runs without a person to approve it.18
- The answer is deliveredThe final answer goes to the chat the job came from, to a platform such as Telegram or to a local file. The output of job runs is also saved in
~/.hermes/cron/output/.6
A schedule can be written in five formats:
| Format | Example | Meaning |
|---|---|---|
| Relative delay | in 30m | Runs once, in 30 minutes.6 |
| Interval | every 2h | Runs every 2 hours.6 |
| Day and time | weekdays at 9am | Runs on weekdays at 9:00 AM.6 |
| Cron expression | 0 9 * * * | Runs daily at 9:00 AM.6 |
| ISO timestamp | 2026-03-15T09:00:00 | Runs once, at that date and time.6 |
Existing jobs are handled with list, pause, resume, run, edit and remove, in chat and on the command line.6 Two more details are worth knowing. A successful run whose final answer contains [SILENT] delivers nothing, which suits monitoring that should speak only when something is wrong; a failed run is always delivered.6 And one job can receive the latest output of another job as context.6
Tools, models and chat platforms
Hermes Agent connects to four kinds of things: model providers, tools, chat platforms and the places where its commands run.
In a project folder, Hermes Agent also loads instruction files such as AGENTS.md, CLAUDE.md or .cursorrules, which shape how it behaves in that project.20
Security and limits
The security model of Hermes Agent has eight layers.18
In practice, eight points are worth knowing before the first real task:
| Point | What to know |
|---|---|
| Context window | The model needs a context window of at least 64,000 tokens. Models with a smaller window are rejected at startup.21 |
| Dangerous commands | A command that matches a list of dangerous patterns needs approval. In the default mode a helper model rates the risk: low-risk commands pass, dangerous ones are denied and unclear ones are shown to you. A few destructive commands, such as wiping the whole filesystem, are always blocked. When commands run in a container, these checks are skipped.18TopicJev explained shows the same three outcomes (approve, block, ask a person) with a fast model that answers yes/no questions. |
| Access from chat apps | By default, without a list of allowed users, every user is denied. You enter the allowed user IDs, or approve a one-time pairing code that the bot sends to a new user.18 |
| Where commands run | By default commands run on your own machine. A Docker container isolates them, and the documentation recommends a remote server over SSH for security, because the agent then cannot change its own code.9 |
| The gateway must run | The gateway, a background process, serves the chat apps and runs the cron jobs. A recurring job whose time passed while the gateway was down runs once when it is back.19 6 |
| Memory writes | A fact is saved only when the model really calls the memory tool. Small local models often say they saved something without doing it.4 |
| Long chats | A chat in a messaging app is one continuous session. Starting a new one with /new after a finished task keeps the context short and cheap, and makes new memory entries visible to the agent.4 |
| Several agents | Two agents must not share one home folder. Each agent gets its own profile.16 |
Hermes Agent use cases
The uses of Hermes Agent range from a coding assistant to the training of models.22 The table lists the documented use cases, how Hermes Agent covers each one and which parts do the work.
| Use case | How Hermes Agent covers it | Parts used |
|---|---|---|
| Coding assistant in the terminal | Reads, edits and runs code in your project.22 | Terminal File tools |
| Chat assistant for one person or a team | The gateway keeps a separate session per chat, and several people can use the same agent.19 7 | Gateway Sessions |
| Scheduled reports and monitoring | Cron jobs run at set times and deliver the result to a chat.6 | Cron Skills |
| Automation triggered by events | A webhook from a service such as GitHub starts an agent run, which can post a comment on a pull request.23 | Webhooks |
| Research and large tasks | The agent hands parts of a task to subagents that work in separate conversations. Only the final summary of each one returns.24 | Subagents |
| A team of specialist bots | In the desktop app, named bots each have their own model, memory and skills, share group chats and message each other.25 | Desktop app Profiles |
| Part of your own software | The agent can be used as a Python library, as an API server in the OpenAI format, or inside editors such as VS Code, Zed and JetBrains.22 20 | Python library API server |
| Training and evaluation data | Batch runs process hundreds or thousands of prompts in parallel and save the runs in a structured format for training data or evaluation.20 | Batch runs |
First steps with Hermes Agent
This guide groups the setup into five steps. One rule applies to them: get one normal chat working first, and add the gateway, cron jobs and skills only after that.21
The table lists eight commands to start with. The ones that begin with a slash are typed inside a conversation, in the terminal and in chat apps alike.14
| Command | What it does |
|---|---|
hermes model | Chooses the model provider and the model.14 |
hermes tools | Sets which tools are enabled.14 |
hermes gateway | Starts the messaging gateway.14 |
hermes doctor | Diagnoses problems.14 |
hermes update | Updates to the latest version.14 |
/new | Starts a fresh conversation.14 |
/model | Changes the model inside a conversation.14 |
/compress | Compresses the context of a long conversation.14 |
Sources
- Hermes Agent — Use, configure, theme, extend, and orchestrate Hermes Agent Hermes Agent docs
- Hermes Agent Documentation Hermes Agent docs
- Hermes Agent Configuration Hermes Agent docs
- Persistent Memory Hermes Agent docs
- Skills System Hermes Agent docs
- Scheduled Tasks (Cron) Hermes Agent docs
- FAQ & Troubleshooting Hermes Agent docs
- Agent Loop Internals Hermes Agent docs
- Tools & Toolsets Hermes Agent docs
- Run Hermes Locally with Ollama — Zero API Cost Hermes Agent docs
- Architecture Hermes Agent docs
- Hermes Desktop Hermes Agent docs
- Prompt Assembly Hermes Agent docs
- NousResearch/hermes-agent: The agent that grows with you GitHub
- Installation Hermes Agent docs
- Profiles: Running Multiple Agents Hermes Agent docs
- Curator Hermes Agent docs
- Security Hermes Agent docs
- Messaging Gateway Hermes Agent docs
- Features Overview Hermes Agent docs
- Hermes Agent Quickstart Hermes Agent docs
- Learning Path Hermes Agent docs
- Webhooks Hermes Agent docs
- Subagent Delegation Hermes Agent docs
- Bot Mode Hermes Agent docs
Written by Rahmatullah Musawi with the help of an AI assistant.