Persistent Memory
What this page covers
This page explains Hermes persistent memory: compact curated notes that survive across sessions and are injected into the system prompt at session start. It is for durable preferences, environment facts, project conventions, and lessons learned—not raw dumps.
Hermes changes quickly, so treat the official documentation as the source of truth and use the built-in CLI to inspect the local install before editing config by hand.
Fast path
```bash
hermes memory status
```
```bash
hermes config set memory.memory_enabled true
```
```bash
hermes config set memory.user_profile_enabled true
```
```bash
hermes chat --toolsets memory -q "Remember that my project uses pnpm and Cloud Run for deployment."
```
```bash
hermes sessions list
```
Practical checklist
- Memory lives under `~/.hermes/memories/` as `MEMORY.md` and `USER.md` for the active profile.
- `MEMORY.md` is for environment/project/workflow notes; `USER.md` is for user preferences and profile details.
- Memory is snapshotted into the prompt at session start; changes appear in the next fresh session, not magically mid-prompt.
- Keep entries concise because memory has strict character limits.
- Use session search for long historical recall instead of stuffing transcripts into memory.
Common pitfalls
- Saving temporary task details that will be stale tomorrow.
- Saving secrets, tokens, passwords, or raw customer data.
- Expecting memory edits made during a turn to change the already-loaded system prompt.
- Letting memory fill up instead of consolidating entries.
Verification checklist
- `hermes memory status` or a fresh session shows memory enabled as intended.
- A new session reflects the remembered preference or workflow.
- No secret-like values were saved.
- Long details are kept in docs/skills/session history rather than memory.
Official reference
https://hermes-agent.nousresearch.com/docs/user-guide/features/memory/
