**Hermes Persistent Memory** is a feature of 📝Hermes Agent that keeps bounded, agent-curated memory across sessions in two files: MEMORY.md for the agent's own notes and USER.md for the user's profile. Both live in ~/.hermes/memories/ and enter the system prompt as a frozen snapshot at session start, and the agent maintains them itself through the memory tool.
It exists so the agent can carry a user's preferences, projects, environment and lessons learned from one session to the next, while strict character limits keep that memory focused and the system prompt bounded. The repository README lists agent-curated memory as part of Hermes' 📝closed learning loop.
It serves anyone who runs Hermes across many sessions, including on messaging platforms, where a chat stays one continuous session until /new is run. Memory is scoped per profile, so a second agent gets its own profile rather than a shared home.
Key Capabilities
- Two bounded stores — by default
MEMORY.mdholds up to 2,200 characters of agent notes andUSER.mdup to 1,375 characters of user profile, both adjustable in config. - Frozen snapshot — entries load into the system prompt once at session start to keep the prefix cache intact; mid-session writes reach disk but appear only next session.
- Agent-managed edits — the
memorytool adds, patches or removes entries for amemoryorusertarget, rejects exact duplicates, and errors instead of overflowing. - Write approval —
memory.write_approval: truegates every save: foreground CLI writes prompt inline, and all others, background review included, wait in/memory pending. - Session search alongside — for specifics beyond the two files, the agent queries every stored conversation with 📝FTS5 Session Search instead.
Getting Started
- Keep
memory_enabledanduser_profile_enabledon (the default) in thememoryconfig block. - Tell the agent what to remember; it saves the fact itself through the
memorytool. - Confirm the entry landed with
cat ~/.hermes/memories/MEMORY.mdorUSER.md. - Run
/newso the next session loads the updated snapshot. - Optionally set
memory.write_approval: trueand review saves with/memory pending.
