plugins/memory/supermemory/README.md
Semantic long-term memory with profile recall, semantic search, explicit memory tools, and full-session conversation ingest (one ingest per session) for richer profiles.
pip install supermemoryhermes memory setup # select "supermemory"
Or manually:
hermes config set memory.provider supermemory
echo 'SUPERMEMORY_API_KEY=***' >> ~/.hermes/.env
Config file: $HERMES_HOME/supermemory.json
| Key | Default | Description |
|---|---|---|
container_tag | hermes | Container tag used for search and writes. Supports {identity} template for profile-scoped tags (e.g. hermes-{identity} → hermes-coder). |
auto_recall | true | Inject relevant memory context before turns |
auto_capture | true | Store cleaned user-assistant turns after each response |
max_recall_results | 10 | Max recalled items to format into context |
profile_frequency | 50 | Include profile facts on first turn and every N turns |
capture_mode | all | Skip tiny or trivial turns by default |
search_mode | hybrid | Search mode: hybrid (profile + memories), memories (memories only), documents (documents only) |
entity_context | built-in default | Extraction guidance passed to Supermemory |
api_timeout | 5.0 | Timeout for SDK and ingest requests |
| Variable | Description |
|---|---|
SUPERMEMORY_API_KEY | API key (required) |
SUPERMEMORY_CONTAINER_TAG | Override container tag (takes priority over config file) |
Kebab-case names are registered for the agent; snake_case aliases remain supported.
| Tool | Alias | Description |
|---|---|---|
supermemory-save | supermemory_store | Store an explicit memory |
supermemory-search | supermemory_search | Search memories by semantic similarity |
supermemory-forget | supermemory_forget | Forget a memory by ID or best-match query |
supermemory-profile | supermemory_profile | Retrieve persistent profile and recent context |
All Supermemory API calls send x-sm-source: hermes, and document writes stamp
metadata.sm_source: hermes. This is a functional routing key, not telemetry:
it groups Hermes-written memories into a dedicated "Hermes" Space in the
Supermemory app, so you can filter, browse, and bulk-manage them per source agent
(alongside Codex, Claude Code, etc.) from the Supermemory UI.
When enabled, Hermes can:
/reset, branch, compression, or shutdown)The session is written once via the conversations endpoint, which drives Supermemory's entity extraction and profile building while keeping a clean, retrievable full transcript.
Use {identity} in the container_tag to scope memories per Hermes profile:
{
"container_tag": "hermes-{identity}"
}
For a profile named coder, this resolves to hermes-coder. The default profile resolves to hermes-default. Without {identity}, all profiles share the same container.
For advanced setups (e.g. OpenClaw-style multi-workspace), you can enable custom container tags so the agent can read/write across multiple named containers:
{
"container_tag": "hermes",
"enable_custom_container_tags": true,
"custom_containers": ["project-alpha", "project-beta", "shared-knowledge"],
"custom_container_instructions": "Use project-alpha for coding tasks, project-beta for research, and shared-knowledge for team-wide facts."
}
When enabled:
supermemory-search, supermemory-save, supermemory-forget, and supermemory-profile accept an optional container_tag parametercustom_containers