Skip to content
Go back

How to Play with SOUL.md in Hermes Agent

Updated:
Edit page

How to Play with SOUL.md in Hermes Agent

querySOUL.md

At a glance

Practically using SOUL.md in the Hermes Agent (v0.13+, as of May 2026) means defining the agent’s core identity, tone, and boundaries. That content becomes the agent identity block—the first section of the cached system prompt, before tool guidance, memory snapshots, skills, and project context—so it anchors behavior across sessions. Edit the file at ~/.hermes/SOUL.md (or $HERMES_HOME/SOUL.md) directly. Unlike MEMORY.md, which is episodic, SOUL.md is persistent “personality as infrastructure” that survives across sessions and dictates who the agent is.

Note: SOUL.md is for persona and enduring values; use AGENTS.md in your repo for daily operational rules. CLI flags, plugin names, and commands can change by release—confirm with hermes help and your version’s release notes.

File structure & hierarchy

FeatureLocationScopeNotes
SOUL.md~/.hermes/Instance-wide persistent identityAuto-seeded on first run if missing
AGENTS.mdProject (CWD at startup)Project rules, conventions, architectureYou create this; most common project context file
/personalityChat sessionTemporary mode switchDoes not change SOUL.md
USER.md~/.hermes/memories/Who you are (not the agent)Injected context snapshot

Optional project files (not created by default): Hermes can also load .hermes.md or HERMES.md if you add one in a repo (walks up to git root; highest priority among project-context types, ahead of AGENTS.md). A standard install does not place these files anywhere—you will not see them unless you create them. On a typical machine you only have ~/.hermes/SOUL.md plus AGENTS.md in projects where you added it.

Project-context priority (first match wins; only one type per session): .hermes.md / HERMES.mdAGENTS.mdCLAUDE.md.cursorrules / .cursor/rules/*.mdc. See Context Files.

SOUL vs overlays: SOUL.md is your durable default everywhere. /personality only adjusts the current session’s system prompt and does not rewrite SOUL.md.

1. Initial setup: create your SOUL

Hermes seeds a default SOUL.md at ~/.hermes/SOUL.md if none exists (existing files are never overwritten).

Open it and write plain Markdown—roughly 3–5 sentences covering:

Minimal starter: You are [role]. Communicate [tone]. Never [hard boundary]. When uncertain, [default behavior].

After editing: exit and start a new Hermes session (or restart the CLI/gateway). SOUL is read when the cached system prompt is assembled at session start—not on every message mid-session.

Very large SOUL files may be truncated after security scanning (Hermes caps injected context size).

2. Core practical workflows

3. Practical “play” scenarios

4. Iterative evolution (self-improving loop)

5. Debugging & testing

Official troubleshooting: Use SOUL.md with Hermes · Personality & SOUL.md · Prompt assembly

Practical refinement tips


Edit page
Share this post on:

Next Post
Choosing between OpenCode and Claude Code