MEMORY.md and USER.md files. Supermemory adds structure and isolation (profile-scoped and optional multi-container tags), plus retrieval that goes beyond a single flat file.
Get your API key
Create a supermemory API key from the API Keys page in the console. Duringhermes memory setup you can paste it when prompted, or persist it in your environment:
Install the memory provider
supermemory Python SDK (>=5.0.0,<6), into its own environment.
Select supermemory when prompted and paste your API key.
Or set the provider and key manually:
How it works
Once configured, the provider runs through Hermes’s normal memory lifecycle:- Prefetch — Relevant memory context can be loaded before each turn.
- Turn capture — After each completed turn, the conversation is saved as one document per conversation, rewritten in full, so edits and context compaction never store it twice. Remaining turns are flushed at session end.
- Explicit tools — Search, store, forget, profile, and read-document tools are available to the model when appropriate.
- Built-in file memory — This does not replace
MEMORY.md/USER.md; mirroring behavior depends on Hermes version and config (see upstream README).
Tools
Kebab-case names are registered for the agent; snake_case aliases remain supported.Commands
Interactive setup: pick supermemory and enter your API key.Environment variables
These variables configure the supermemory provider (for example in your shell or Hermes env file):Multi-container tags
By default, recall and capture use a single primarycontainer_tag (optionally profile-scoped with {identity}). Multi-container mode adds extra named tags so the model can read and write specific namespaces — for example work vs personal, or one bucket per project.
How to enable — In $HERMES_HOME/supermemory.json, set:
enable_custom_container_tagstotruecustom_containersto an array of allowed tag strings (e.g.work,personal,project-alpha)custom_container_instructions(recommended) — short guidance the provider injects into the system prompt so Hermes knows when to use which tag
container_tag stays the default namespace; listed custom tags are additional allowlisted namespaces.
How it works
supermemory_search,supermemory_store,supermemory_forget, andsupermemory_profileaccept an optionalcontainer_tagargument. The tag must be either the primarycontainer_tag(after template resolution) or one ofcustom_containers.- Automatic behavior (turn sync, prefetch, mirroring built-in memory writes, session-end ingest) always uses the primary container only — it does not pick a custom tag for you.
- Instructions in
custom_container_instructionssteer the model toward passing the rightcontainer_tagon tool calls when the user’s intent matches a namespace (e.g. “check my personal notes” →personal).
Config file
Create or edit$HERMES_HOME/supermemory.json. Common keys:
Example profile-scoped container:
Self-hosted API
If you run your own supermemory API, start it withnpx supermemory local and note the API key it prints on first boot. Before running hermes memory setup, set base_url in $HERMES_HOME/supermemory.json so the setup connection probe also stays local:
hermes memory setup and enter the local server’s API key.
Next steps
Hermes plugin README
Full config table, env vars, and multi-container details.
OpenClaw plugin
Multi-platform memory for Telegram, WhatsApp, Discord, and more.