Hermes Agent Memory Providers: Setup and Configuration Guide
Connect Hermes Agent to eight external memory providers for persistent, cross-session knowledge.

This integration connects Hermes Agent, an AI agent runtime, to eight external memory providers that give the agent persistent, cross-session knowledge beyond the built-in MEMORY.md and USER.md files. Once wired up, the agent can automatically inject provider context into its system prompt, prefetch relevant memories before each turn, sync conversation turns after each response, extract memories on session end, mirror built-in memory writes to the external provider, and use provider-specific tools to search, store, and manage memories.
What It Does
- Injects provider context into the system prompt (what the provider knows)
- Prefetches relevant memories before each turn (background, non-blocking)
- Syncs conversation turns to the provider after each response
- Extracts memories on session end (for providers that support it)
- Mirrors built-in memory writes to the external provider
- Adds provider-specific tools so the agent can search, store, and manage memories
The built-in memory (MEMORY.md / USER.md) continues to work exactly as before. The external provider is additive. Only one external provider can be active at a time, but the built-in memory is always active alongside it.
Setup
Quick Start Commands
hermes memory setup # interactive picker + configuration
hermes memory status # check what's active
hermes memory off # disable external provider
You can also select the active memory provider via hermes plugins -> Provider Plugins -> Memory Provider. Or set manually in ~/.hermes/config.yaml:
memory:
provider: openviking # or honcho, mem0, hindsight, holographic, retaindb, byterover, supermemory
Provider-Specific Setup
Honcho
Requires pip install honcho-ai plus an API key or self-hosted instance.
Run the setup wizard:
hermes memory setup # select "honcho" -- runs the Honcho-specific post-setup
The legacy hermes honcho setup command still works (it now redirects to hermes memory setup), but is only registered after Honcho is selected as the active memory provider.
For headless or remote machines (SSH, remote VM) where no browser is available, the wizard defaults to a device-code flow. The CLI prints a short code and a verification link; open the link in a browser on any other machine, approve, and setup completes. No API key copy-paste is needed.
Config files are resolved in this order: $HERMES_HOME/honcho.json > ~/.hermes/honcho.json > ~/.honcho/config.json.
Minimal honcho.json (cloud):
{
"apiKey": "your-key-from-app.honcho.dev",
"hosts": {
"hermes": {
"enabled": true,
"aiPeer": "hermes",
"peerName": "your-name",
"workspace": "hermes"
}
}
}
Minimal honcho.json (self-hosted):
{
"baseUrl": "http://localhost:8000",
"hosts": {
"hermes": {
"enabled": true,
"aiPeer": "hermes",
"peerName": "your-name",
"workspace": "hermes"
}
}
}
If you previously used hermes honcho setup, your config and all server-side data are intact. Just re-enable through the setup wizard again or manually set memory.provider: honcho to reactivate via the new system.
OpenViking
Requires OpenViking initialized, validated, and running.
# Prepare OpenViking first
openviking-server init
openviking-server doctor
openviking-server
# Then configure Hermes
hermes memory setup # select "openviking"
# Or manually:
hermes config set memory.provider openviking
hermes memory setup can reuse or copy connection values from ~/.openviking/ovcli.conf. Manual setup uses the active profile's .env file; for the default profile that is ~/.hermes/.env, and for named profiles use ~/.hermes/profiles/<profile-name>/.env.
OPENVIKING_ENDPOINT=http://127.0.0.1:1933
# OPENVIKING_API_KEY=...
# OPENVIKING_ACCOUNT=default
# OPENVIKING_USER=default
# OPENVIKING_AGENT=hermes
OpenViking server settings live in ov.conf (--config, OPENVIKING_CONFIG_FILE, or ~/.openviking/ov.conf). Client connection values live in ovcli.conf (OPENVIKING_CLI_CONFIG_FILE or ~/.openviking/ovcli.conf).
Mem0
Requires pip install mem0ai plus an API key (platform), a running Mem0 server (self-hosted dashboard), or an LLM + vector store (OSS).
Setup (Platform):
hermes memory setup # select "mem0" -> "Platform"
# Or manually:
hermes config set memory.provider mem0
echo "MEM0_API_KEY=your-key" >> ~/.hermes/.env
Setup (OSS):
hermes memory setup # select "mem0" -> "Open Source (self-hosted)"
# Or via flags:
hermes memory setup mem0 --mode oss --oss-llm openai --oss-llm-key sk-... --oss-vector qdrant
Preview without writing files:
hermes memory setup mem0 --mode oss --oss-llm-key sk-... --dry-run
Setup (Self-Hosted Dashboard):
hermes memory setup # select "mem0" -> "Self-hosted server"
# Or via flags:
hermes memory setup mem0 --mode selfhosted --host http://localhost:8888 --api-key your-admin-api-key
Or configure manually as env vars:
echo "MEM0_HOST=http://localhost:8888" >> ~/.hermes/.env
echo "MEM0_API_KEY=your-admin-api-key" >> ~/.hermes/.env
Or in mem0.json:
{
"host": "http://localhost:8888",
"api_key": "your-admin-api-key"
}
The plugin authenticates with X-API-Key and uses the server's /search and /memories routes. api_key is optional (omit only for AUTH_DISABLED servers). Don't set mode: oss when using a host URL, as it takes precedence over host.
Config: $HERMES_HOME/mem0.json (behavioral settings). Only the secret MEM0_API_KEY belongs in ~/.hermes/.env.
Hindsight
Requires Cloud: API key from ui.hindsight.vectorize.io. Local: LLM API key (OpenAI, Groq, OpenRouter, etc.).
hermes memory setup # select "hindsight"
# Or manually:
hermes config set memory.provider hindsight
echo "HINDSIGHT_API_KEY=your-key" >> ~/.hermes/.env
The setup wizard installs dependencies automatically and only installs what's needed for the selected mode (hindsight-client for cloud, hindsight-all for local). Requires hindsight-client >= 0.4.22 (auto-upgraded on session start if outdated).
Local mode UI: hindsight-embed -p hermes ui start
Config: $HERMES_HOME/hindsight/config.json
Holographic
Requires nothing (SQLite is always available). NumPy optional for HRR algebra.
hermes memory setup # select "holographic"
# Or manually:
hermes config set memory.provider holographic
Config: config.yaml under plugins.hermes-memory-store
RetainDB
Requires a RetainDB account and API key.
hermes memory setup # select "retaindb"
# Or manually:
hermes config set memory.provider retaindb
echo "RETAINDB_API_KEY=your-key" >> ~/.hermes/.env
ByteRover
Requires ByteRover CLI (npm install -g byterover-cli or install script).
# Install the CLI first
curl -fsSL https://byterover.dev/install.sh | sh
# Then configure Hermes
hermes memory setup # select "byterover"
# Or manually:
hermes config set memory.provider byterover
Supermemory
Requires pip install supermemory plus a cloud API key, or a self-hosted server.
hermes memory setup # select "supermemory"
# Or manually:
hermes config set memory.provider supermemory
echo 'SUPERMEMORY_API_KEY=***' >> ~/.hermes/.env
Self-hosted setup:
npx supermemory local
Before running hermes memory setup, set base_url in $HERMES_HOME/supermemory.json:
{
"base_url": "http://localhost:6767"
}
Then run hermes memory setup and enter the API key printed by the local server. Configuring the endpoint first ensures the setup connection probe also stays local.
Memori
Requires pip install hermes-memori + hermes-memori install + Memori API key.
pip install hermes-memori
hermes-memori install
hermes config set memory.provider memori
hermes memory setup
Configuration Reference
Honcho Configuration
Config: $HERMES_HOME/honcho.json (profile-local) or ~/.honcho/config.json (global). Resolution order: $HERMES_HOME/honcho.json > ~/.hermes/honcho.json > ~/.honcho/config.json.
| Key | Default | Description |
|---|---|---|
apiKey | -- | API key from app.honcho.dev |
baseUrl | -- | Base URL for self-hosted Honcho |
peerName | -- | User peer identity |
aiPeer | host key | AI peer identity (one per profile) |
workspace | host key | Shared workspace ID |
contextTokens | null (uncapped) | Token budget for auto-injected context per turn. Truncates at word boundaries |
contextCadence | 1 | Minimum turns between context() API calls (base layer refresh) |
dialecticCadence | 2 | Minimum turns between peer.chat() LLM calls. Recommended 1-5. Only applies to hybrid/context modes |
dialecticDepth | 1 | Number of .chat() passes per dialectic invocation. Clamped 1-3. Pass 0: cold/warm prompt, pass 1: self-audit, pass 2: reconciliation |
dialecticDepthLevels | null | Optional array of reasoning levels per pass, e.g. ["minimal", "low", "medium"]. Overrides proportional defaults |
dialecticReasoningLevel | 'low' | Base reasoning level: minimal, low, medium, high, max |
dialecticDynamic | true | When true, model can override reasoning level per-call via tool param |
dialecticMaxChars | 600 | Max chars of dialectic result injected into system prompt |
recallMode | 'hybrid' | hybrid (auto-inject + tools), context (inject only), tools (tools only) |
writeFrequency | 'async' | When to flush messages: async (background thread), turn (sync), session (batch on end), or integer N |
saveMessages | true | Whether to persist messages to Honcho API |
observationMode | 'directional' | directional (all on) or unified (shared pool). Override with observation object |
messageMaxChars | 25000 | Max chars per message (chunked if exceeded) |
dialecticMaxInputChars | 10000 | Max chars for dialectic query input to peer.chat() |
sessionStrategy | 'per-directory' | per-directory, per-repo, per-session, global |
pinUserPeer | false | Gateway only. When true, every non-agent gateway user collapses to peerName; the pin overrides all aliases |
userPeerAliases | {} | Gateway only. Maps runtime IDs to peers ({"7654321": "alice"}). Many-to-one |
runtimePeerPrefix | "" | Gateway only. Namespaces unknown runtime IDs (telegram_7654321) when no alias matches |
Mem0 Configuration
Config: $HERMES_HOME/mem0.json (behavioral settings). Only the secret MEM0_API_KEY belongs in ~/.hermes/.env.
| Key | Default | Description |
|---|---|---|
mode | platform | platform (Mem0 Cloud) or oss (self-managed, in-process) |
host | -- | Self-hosted Mem0 server URL (Docker dashboard). Routes over HTTP with X-API-Key; don't combine with mode: oss |
user_id | hermes-user | User identifier |
agent_id | hermes | Agent identifier |
rerank | false | Rerank search results for relevance (platform mode only) |
Hindsight Configuration
Config: $HERMES_HOME/hindsight/config.json
| Key | Default | Description |
|---|---|---|
mode | cloud | cloud or local |
bank_id | hermes | Memory bank identifier |
recall_budget | mid | Recall thoroughness: low / mid / high |
memory_mode | hybrid | hybrid (context + tools), context (auto-inject only), tools (tools only) |
auto_retain | true | Automatically retain conversation turns |
auto_recall | true | Automatically recall memories before each turn |
retain_async | true | Process retain asynchronously on the server |
retain_context | conversation between Hermes Agent and the User | Context label for retained memories |
retain_tags | -- | Default tags applied to retained memories; merged with per-call tool tags |
retain_source | -- | Optional metadata.source attached to retained memories |
retain_user_prefix | User | Label used before user turns in auto-retained transcripts |
retain_assistant_prefix | Assistant | Label used before assistant turns in auto-retained transcripts |
recall_tags | -- | Tags to filter on recall |
Holographic Configuration
Config: config.yaml under plugins.hermes-memory-store
| Key | Default | Description |
|---|---|---|
db_path | $HERMES_HOME/memory_store.db | SQLite database path |
auto_extract | false | Auto-extract facts at session end |
default_trust | 0.5 | Default trust score (0.0-1.0) |
Supermemory Configuration
Config: $HERMES_HOME/supermemory.json
| Key | Default | Description |
|---|---|---|
base_url | https://api.supermemory.ai | API endpoint for hosted or self-hosted Supermemory. Takes priority over SUPERMEMORY_BASE_URL |
container_tag | hermes | Container tag used for search and writes. Supports {identity} template for profile-scoped tags |
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, memories, or documents |
api_timeout | 5.0 | Timeout for SDK and ingest requests |
Environment variables: SUPERMEMORY_API_KEY (required), SUPERMEMORY_BASE_URL (compatibility fallback when base_url is not configured), SUPERMEMORY_CONTAINER_TAG (overrides config). Base URL precedence is supermemory.json -> SUPERMEMORY_BASE_URL -> https://api.supermemory.ai.
How It Works

When a memory provider is active, Hermes automatically performs the following operations in the background:
- Context injection: Provider context is injected into the system prompt, giving the agent awareness of what the provider knows.
- Prefetching: Relevant memories are prefetched before each turn in a background, non-blocking manner.
- Sync: Conversation turns are synced to the provider after each response.
- Extraction: Memories are extracted on session end for providers that support it.
- Mirroring: Built-in memory writes are mirrored to the external provider.
- Tool addition: Provider-specific tools are added so the agent can search, store, and manage memories.
Honcho Architecture
Honcho uses a two-layer context injection system:
- Base layer: Session summary + representation + peer card, refreshed on
contextCadence. - Dialectic supplement: LLM reasoning, refreshed on
dialecticCadence.
The dialectic automatically selects cold-start prompts (general user facts) vs. warm prompts (session-scoped context) based on whether base context exists. Three orthogonal config knobs control cost and depth independently: contextCadence, dialecticCadence, and dialecticDepth.
The auto-injected dialectic also scales its reasoning level by query length (longer query -> deeper reasoning, capped at reasoningLevelCap); see Query-Adaptive Reasoning Level.
Honcho models conversations as peers exchanging messages: one user peer plus one AI peer per Hermes profile, all sharing a workspace. The workspace is the shared environment: the user peer is global across profiles, each AI peer is its own identity. Every AI peer builds an independent representation/card from its own observations, so a coder profile stays code-oriented while a writer profile stays editorial against the same user.
| Concept | What it is |
|---|---|
| Workspace | Shared environment. All Hermes profiles under one workspace see the same user identity. |
User peer (peerName) | The human. Shared across profiles in the workspace. |
AI peer (aiPeer) | One per Hermes profile. Host key hermes -> default; hermes.<name> for others. |
| Observation | Per-peer toggles controlling what Honcho models from whose messages. directional (default, all four on) or unified (single-observer pool). |
Multi-Profile Setup
New profile with fresh Honcho peer:
hermes profile create coder --clone
--clone creates a hermes.coder host block in honcho.json with aiPeer: "coder", shared workspace, inherited peerName, recallMode, writeFrequency, observation, etc. The AI peer is eagerly created in Honcho so it exists before the first message.
Existing profiles, backfill Honcho peers:
hermes honcho sync
Scans every Hermes profile, creates host blocks for any profile without one, inherits settings from the default hermes block, and creates the new AI peers eagerly. Idempotent: skips profiles that already have a host block.
Per-Profile Observation
Each host block can override the observation config independently. Example: a code-focused profile where the AI peer observes the user but doesn't self-model:
"hermes.coder": {
"aiPeer": "coder",
"observation": {
"user": {
"observeMe": true,
"observeOthers": true
},
"ai": {
"observeMe": false,
"observeOthers": true
}
}
}
Observation toggles (one set per peer):
| Toggle | Effect |
|---|---|
observeMe | Honcho builds a representation of this peer from its own messages |
observeOthers | This peer observes the other peer's messages (feeds cross-peer reasoning) |
Presets via observationMode:
"directional"(default): all four flags on. Full mutual observation; enables cross-peer dialectic."unified": userobserveMe: true, AIobserveOthers: true, rest false. Single-observer pool; AI models the user but not itself, user peer only self-models.
Server-side toggles set via the Honcho dashboard win over local defaults, synced back at session init.
Gateway Identity Mapping
The peer model covers CLI, TUI, and desktop sessions, where every conversation resolves to peerName. The gateway adds a second axis: users arrive with platform-native runtime IDs (Telegram UID, Discord snowflake, Slack user), and three keys decide which peer each ID resolves to.
| Key | Effect |
|---|---|
pinUserPeer: true | Every non-agent gateway user collapses to peerName. The pin is checked first, so it overrides all aliases. Pick it only when no user-side identity needs its own peer. |
userPeerAliases | Maps specific runtime IDs to peers ({"7654321": "alice"}). The home for routing distinct identities, including agents that each carry their own peer. |
runtimePeerPrefix | Namespaces any unmapped runtime ID (telegram_7654321) so platforms with same-shaped IDs don't collide. |
Off-gateway these keys do nothing. hermes memory setup only prompts for them when it detects a connected gateway platform.
Full honcho.json example (multi-profile):
{
"apiKey": "your-key",
"workspace": "hermes",
"peerName": "eri",
"hosts": {
"hermes": {
"enabled": true,
"aiPeer": "hermes",
"workspace": "hermes",
"peerName": "eri",
"recallMode": "hybrid",
"writeFrequency": "async",
"sessionStrategy": "per-directory",
"observation": {
"user": {
"observeMe": true,
"observeOthers": true
},
"ai": {
"observeMe": true,
"observeOthers": true
}
},
"dialecticReasoningLevel": "low",
"dialecticDynamic": true,
"dialecticCadence": 2,
"dialecticDepth": 1,
"dialecticMaxChars": 600,
"contextCadence": 1,
"messageMaxChars": 25000,
"saveMessages": true
},
"hermes.coder": {
"enabled": true,
"aiPeer": "coder",
"workspace": "hermes",
"peerName": "eri",
"recallMode": "tools",
"observation": {
"user": {
"observeMe": true,
"observeOthers": false
},
"ai": {
"observeMe": true,
"observeOthers": true
}
}
},
"hermes.writer": {
"enabled": true,
"aiPeer": "writer",
"workspace": "hermes",
"peerName": "eri"
}
},
"sessions": {
"/home/user/myproject": "myproject-main"
}
}
OpenViking Architecture
OpenViking uses a filesystem-style knowledge hierarchy with tiered retrieval and automatic memory extraction into 6 categories: profile, preferences, entities, events, cases, patterns.
Key features:
- Tiered context loading: L0 (~100 tokens) -> L1 (~2k) -> L2 (full)
- Automatic memory extraction on session commit
viking://URI scheme for hierarchical knowledge browsing
OPENVIKING_ACCOUNT and OPENVIKING_USER are used for local/trusted mode. OPENVIKING_AGENT is Hermes' peer ID in OpenViking for peer-scoped memories.
Mem0 Architecture
Mem0 provides server-side LLM fact extraction with semantic search, reranking, and automatic deduplication. Three connection modes:
- Platform: Mem0 Cloud
- Self-hosted dashboard: A Mem0 server you run via Docker
- OSS: Mem0 in-process with your own LLM + vector store
OSS supported providers:
| Component | Providers |
|---|---|
| LLM | openai, ollama |
| Embedder | openai, ollama |
| Vector Store | qdrant (local/server), pgvector |
Switching modes: Re-run hermes memory setup mem0 --mode <mode> or edit mem0.json directly.
Hindsight Architecture
Hindsight provides long-term memory with a knowledge graph, entity resolution, and multi-strategy retrieval. The hindsight_reflect tool provides cross-memory synthesis that no other provider offers. Automatically retains full conversation turns (including tool calls) with session-level document tracking.
Holographic Architecture
Holographic is a local SQLite fact store with FTS5 full-text search, trust scoring, and HRR (Holographic Reduced Representations) for compositional algebraic queries.
Unique capabilities:
probe: entity-specific algebraic recall (all facts about a person/thing)reason: compositional AND queries across multiple entitiescontradict: automated detection of conflicting facts- Trust scoring with asymmetric feedback (+0.05 helpful / -0.10 unhelpful)
RetainDB Architecture
RetainDB is a cloud memory API with hybrid search (Vector + BM25 + Reranking), 7 memory types, and delta compression.
ByteRover Architecture
ByteRover provides persistent memory via the brv CLI, using a hierarchical knowledge tree with tiered retrieval (fuzzy text -> LLM-driven search). Local-first with optional cloud sync.
Key features:
- Automatic pre-compression extraction (saves insights before context compression discards them)
- Knowledge tree stored at
$HERMES_HOME/byterover/(profile-scoped) - SOC2 Type II certified cloud sync (optional)
Supermemory Architecture
Supermemory provides semantic long-term memory with profile recall, semantic search, explicit memory tools, and session-end conversation ingest via the Supermemory graph API.
Key features:
- Automatic context fencing: strips recalled memories from captured turns to prevent recursive memory pollution
- Full-session ingest: the entire conversation is sent once at session boundaries
- Session-end conversation ingest (to
/v4/conversations) for richer profile + graph building in Supermemory - End-to-end self-hosted routing: SDK, probe, and conversation-ingest requests use the same configured endpoint
- Profile facts injected on first turn and at configurable intervals
- Profile-scoped containers: use
{identity}incontainer_tag(e.g.hermes-{identity}->hermes-coder) to isolate memories per Hermes profile - Multi-container mode: enable
enable_custom_container_tagswith acustom_containerslist to let the agent read/write across named containers. Automatic operations stay on the primary container.
Multi-container example:
{
"container_tag": "hermes",
"enable_custom_container_tags": true,
"custom_containers": [
"project-alpha",
"shared-knowledge"
],
"custom_container_instructions": "Use project-alpha for coding context."
}
Memori Architecture
Memori provides structured long-term memory using Memori Cloud, with background completed-turn capture, tool-aware turn context, and explicit recall tools for facts, summaries, quota, signup, and feedback.
Requirements and Limitations
General
- Only one external provider can be active at a time. The built-in memory (MEMORY.md / USER.md) is always active alongside it.
- The external provider is additive; built-in memory continues to work exactly as before.
Honcho
- Requires
pip install honcho-aiplus an API key or self-hosted instance. - Data storage: Honcho Cloud or self-hosted.
- Cost: Honcho pricing (cloud) / free (self-hosted).
- The legacy
hermes honcho setupcommand is only registered after Honcho is selected as the active memory provider.
OpenViking
- Requires OpenViking initialized, validated, and running.
- Data storage: Self-hosted (local or cloud).
- Cost: Free (open-source, AGPL-3.0).
Mem0
- Requires
pip install mem0aiplus an API key (platform), a running Mem0 server (self-hosted dashboard), or an LLM + vector store (OSS). - Data storage: Mem0 Cloud (platform), your own Mem0 server (self-hosted dashboard), or in-process (OSS).
- Cost: Mem0 pricing (platform) / free (self-hosted or OSS).
- Don't set
mode: osswhen using a host URL, as it takes precedence overhost.
Hindsight
- Requires Cloud: API key from ui.hindsight.vectorize.io. Local: LLM API key (OpenAI, Groq, OpenRouter, etc.).
- Data storage: Hindsight Cloud or local embedded PostgreSQL.
- Cost: Hindsight pricing (cloud) or free (local).
- Requires
hindsight-client >= 0.4.22(auto-upgraded on session start if outdated).
Holographic
- Requires nothing (SQLite is always available). NumPy optional for HRR algebra.
- Data storage: Local SQLite.
- Cost: Free.
RetainDB
- Requires a RetainDB account and API key.
- Data storage: RetainDB Cloud.
- Cost: $20/month.
ByteRover
- Requires ByteRover CLI (
npm install -g byterover-clior install script). - Data storage: Local (default) or ByteRover Cloud (optional sync).
- Cost: Free (local) or ByteRover pricing (cloud).
Supermemory
- Requires
pip install supermemoryplus a cloud API key, or a self-hosted server. - Data storage: Supermemory Cloud or self-hosted.
- Cost: Supermemory pricing (cloud) / free (self-hosted).
Memori
- Requires
pip install hermes-memori+hermes-memori install+ Memori API key. - Data storage: Memori Cloud.
- Cost: Memori pricing.
Troubleshooting
Honcho
Issue: The legacy hermes honcho setup command is not found.
Fix: Select Honcho as the active memory provider first via hermes memory setup or by setting memory.provider: honcho in ~/.hermes/config.yaml. The command is only registered after Honcho is selected.
Issue: No browser available on headless/remote machine for cloud auth. Fix: The wizard defaults to a device-code flow. Pick "device" at the auth-method prompt. The CLI prints a short code and a verification link; open the link in a browser on any other machine, approve, and setup completes. No API key copy-paste is needed.
Issue: Config file not found.
Fix: Config files are resolved in this order: $HERMES_HOME/honcho.json > ~/.hermes/honcho.json > ~/.honcho/config.json. Ensure the file exists in one of these locations.
OpenViking
Issue: Connection values not found.
Fix: hermes memory setup can reuse or copy connection values from ~/.openviking/ovcli.conf. Manual setup uses the active profile's .env file; for the default profile that is ~/.hermes/.env, and for named profiles use ~/.hermes/profiles/<profile-name>/.env.
Mem0
Issue: mode: oss takes precedence over host.
Fix: Don't set mode: oss when using a host URL. If you need to switch modes, re-run hermes memory setup mem0 --mode <mode> or edit mem0.json directly.
Issue: api_key is required but not set.
Fix: Set api_key in mem0.json or as MEM0_API_KEY in ~/.hermes/.env. Omit only for AUTH_DISABLED servers.
Hindsight
Issue: Outdated hindsight-client.
Fix: The plugin auto-upgrades hindsight-client on session start if it is below version 0.4.22. Ensure your environment allows pip upgrades.
Supermemory
Issue: Setup connection probe fails.
Fix: Before running hermes memory setup, set base_url in $HERMES_HOME/supermemory.json to the local server URL (e.g., http://localhost:6767). This ensures the setup connection probe stays local.
Issue: API key not found.
Fix: Set SUPERMEMORY_API_KEY in ~/.hermes/.env or provide it during the setup wizard.
Memori
Issue: hermes-memori not installed.
Fix: Run pip install hermes-memori followed by hermes-memori install.
Sources & References
This page was researched from 1 independent source, combined and verified for completeness.
- 1.Memory ProvidersOfficial documentation · primary source
The #1 AI Newsletter
The most important ai updates, guides, and fixes — one weekly email.
No spam, unsubscribe anytime. Privacy policy