Introduction
Most chat tools treat conversations as ephemeral, close the tab, lose the thread. Hermes treats every session as a durable container: every message, every tool result, every model swap is written to disk and stays there until you explicitly delete it. This is not just a convenience feature; it is load-bearing for almost every other Hermes capability.
Key Concepts
- Session: One conversation, persisted across exits and crashes, identified by an ID and an optional title.
- Container model: A session holds messages, tool results, and metadata as a single unit you can resume, branch from, or archive.
- Why persist: Resumption, learning, audit, and compounding context value.
Real World Context
You are debugging a flaky test. After two hours of investigation, your laptop sleeps and you have to leave for a meeting. With ephemeral chat, that two hours of thinking is gone. With Hermes, you hermes --continue after the meeting and the agent picks up exactly where it stopped, the last hypothesis still on the table, the last command output still in context. The session is the container; the conversation is durable.
Deep Dive
Why persistence is structural, not cosmetic
- Resumption: The most obvious value, interrupted work survives.
- Memory training: Hermes' two-tier memory system learns from past sessions. If you do not persist, you do not accumulate memory.
- Audit: For sensitive work, you want to know what was said and what was done. Persisted sessions are auditable.
- Compounding context: A long-lived "running notes" session becomes more valuable over time as the agent accumulates relevant history.
What is stored
Every session stores:
text- Session metadata: ID, title, timestamps, token counters - Full message history (user + assistant + tool results) - Lineage across compactions and resumes - Provider/model used per turn
What is not stored in the session
- Your model provider's API keys are stored separately, encrypted, in the credentials directory.
- Skills are global, not per-session.
- Context-file injections (
@file) are stored as the resolved snippets, not as live links, so editing the file later does not change what the session saw.
Common Pitfalls
- Treating sessions as disposable, They are cheap to keep and expensive to recreate. Default to keeping them, not deleting them.
- Putting one giant project into a single session, At some scale, a long session is harder to navigate than five focused ones. Split sessions by task, not by project.
Best Practices
- Title sessions intentionally, A good title makes future resumption trivial; a session without a title becomes a needle in a haystack.
- Use one session per task, not per day, Sessions do not expire; you do not need to start a fresh one each morning.
Summary
- Sessions in Hermes are durable containers, not ephemeral chat history.
- Persistence enables resumption, memory, audit, and compounding value.
- The session store holds messages, metadata, and lineage, not credentials or skills.
- One session per task is a healthier default than one session per day.
Code Examples
Session: debug-payment-webhook
Created: 2026-04-12 09:14
Last touch: 2026-04-12 16:42
Tokens: 43,210 / 200,000
Turns: 28
Model: claude-sonnet-4 (turns 1..22), hermes-3-llama-8b (turns 23..28)
Lineage: parent=quick-investigation-2026-04-12 (branched at turn 4)