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
- Copy
SOUL.mdtoSOUL.md.backupin 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.
- 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.
- For a temporary voice shift, type
/personality concise, or type/personalitywith no name to see the built-in list. The same command works in a phone chat. Type/personality none(ordefaultorneutral) to cleardisplay.personalitywhile leavingSOUL.mdas 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
- If a Git project already tracks a shared
AGENTS.mdthat you should not edit, createAGENTS.override.mdnext to it instead. Otherwise copy any existingAGENTS.mdor.hermes.mdfirst, then create or editAGENTS.mdin that project folder. If.hermes.mdorHERMES.mdexists in the project or a parent Git folder, Hermes uses that file and skipsAGENTS.mdandAGENTS.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.
- 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/newinside 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.
- You gain: a steady voice, plus project rules that load when you work in that folder.
- You risk: a model can ignore both, and a web page or a file can try to override them. Sub-agents use the built-in identity rather than your soul file.
- Makes sense when: approvals stay on, the job stays in a named folder or a container, and you do not treat the files as a safety setting.
Sources
Checked 14 November 2026.
- Personality
and SOUL.md (
~/.hermes/SOUL.md, starter file, never overwritten,/personalityanddisplay.personality, sub-agents skip context files). - Configuration
(context files, first match wins,
terminal.cwd, home folder layout). - Prompt
builder source, v0.23.1 (
AGENTS.mdchain from git root tocwd,AGENTS.override.mdprecedence). - Profiles
(profile
SOUL.mdat~/.hermes/profiles/<name>/SOUL.md,--clone, edits take effect on a new session). - Updating (an update can replace program files; user data stays in the Hermes home).