Hermes Agent

Hermes Agent: Persona and rules

Hermes calls its standing voice a soul file named SOUL.md, and project rules go in AGENTS.md or .hermes.md. A /personality preset adds a voice overlay you can switch on and off. None of these is a lock on what the agent can do.

What Hermes calls it

SOUL.md is a persona or soul file, and it sits first in the system prompt to define who the agent is. Hermes writes a starter file for you if SOUL.md is missing. It loads that file only from the Hermes home, which is %LOCALAPPDATA%\hermes on Windows and ~/.hermes on a Mac. It never looks in the current working folder for SOUL.md.

Rules for one project live in files in that project. Hermes loads only one kind, and the first non-empty match wins: .hermes.md or HERMES.md (walking up to the git root), then AGENTS.md, then CLAUDE.md, then Cursor rule files (.cursorrules and .cursor/rules/*.mdc). Inside a Git repository, Hermes combines AGENTS.md files from the repository root down to your working folder, without scanning deeper subfolders. In each folder, AGENTS.override.md wins over AGENTS.md so you can keep personal rules without editing a shared file. SOUL.md still loads on its own.

/personality adds an overlay on top of SOUL.md without rewriting SOUL.md. Hermes stores the chosen preset name in display.personality in config.yaml until you clear it with /personality none. Custom presets can live under agent.personalities.

Set a persona

  1. Copy SOUL.md to SOUL.md.backup in the same folder before you change it, then open the original in Notepad or TextEdit. On Windows the file is %LOCALAPPDATA%\hermes\SOUL.md, and on a Mac it is ~/.hermes/SOUL.md.

What you should see the starter soul file open in your editor, and a backup file beside it.

  1. Replace the text with a short voice of your own, and keep it to tone and how it talks to you. Do not tell it to skip approvals, hide what it does, or ignore a safety setting. A plain example is below.
# Personality

You are a calm assistant. Use short sentences. Say when you are unsure. Ask before you delete a file.

Save the file, then type /new inside Hermes to start a new chat. The profiles guide says existing sessions keep the older prompt state until you start a new session.

What you should see the new chat answers in the voice you wrote into the file.

  1. For a temporary voice shift, type /personality concise, or type /personality with no name to see the built-in list. The same command works in a phone chat. Type /personality none (or default or neutral) to clear display.personality while leaving SOUL.md as it was.

What you should see /personality marks the name you picked, or none after you clear it.

A profile is a separate Hermes home with its own soul file. After hermes profile create coder, that file is ~/.hermes/profiles/coder/SOUL.md on a Mac and %LOCALAPPDATA%\hermes\profiles\coder\SOUL.md on Windows. Create a new profile with --clone, or add the page 2 safety switches to its own config.yaml first. A phone chat uses that profile's SOUL.md and /personality, while sub-agents skip context files and use the built-in identity instead.

Set rules

  1. If a Git project already tracks a shared AGENTS.md that you should not edit, create AGENTS.override.md next to it instead. Otherwise copy any existing AGENTS.md or .hermes.md first, then create or edit AGENTS.md in that project folder. If .hermes.md or HERMES.md exists in the project or a parent Git folder, Hermes uses that file and skips AGENTS.md and AGENTS.override.md.

What you should see one new or edited rules file in the project, and a copy of the old text if you edited an existing file.

  1. Write short rules as things to do, and name the folder the job may use. Do not write a rule that skips an approval or turns a safety setting off. Save the file, then open a terminal in that project folder and run hermes (or type /new inside an open Hermes chat there).

What you should see a new chat started in that folder, and when you ask what folder it should stay in, the answer matches the file.

Messaging chats use terminal.cwd from config.yaml, or your home folder if that line is unset. A project AGENTS.md is not loaded for a phone chat unless terminal.cwd points to that project. SOUL.md still applies on a phone chat, because it belongs to the Hermes home.

What not to edit

Do not edit prompt files inside the installed program or the source checkout, because an update can replace those files. In a shared Git project that already tracks AGENTS.md, write personal rules in AGENTS.override.md instead of editing the tracked file. The personality page says a SOUL.md you already have is never overwritten, so your voice belongs there. Do not try to remove the tool guidance Hermes adds after SOUL.md. Leave agent.system_prompt in config.yaml (which applies only when no /personality preset is selected) empty unless you need it, and never use it to skip approvals.

How to undo

The backup file from step 1 is the copy you restore, and /personality none clears an active personality overlay. To put the soul file back, copy SOUL.md.backup over SOUL.md, then start a new chat (hermes in a terminal, or /new inside an open chat). If you want Hermes's starter file back, rename SOUL.md after your backup is safe so Hermes writes a fresh starter; an empty SOUL.md uses the built-in identity instead. To drop project rules, rename AGENTS.override.md, AGENTS.md, or .hermes.md after keeping a copy, then start a new chat.

What you should see the next new chat no longer uses the voice or the project rules you removed.

Rules are not a lock

Soul file and project rules.

Sources

Checked 14 November 2026.

Next

Next: Persona and rules for every agent.

Checked 14 November 2026 · prices, limits, and versions change