Hermes Agent × Nowledge Mem
Native memory provider for Hermes v0.7.0+. Working Memory loads automatically, relevant knowledge surfaces before every turn, and Hermes gets native save tools with built-in guidance for cross-tool knowledge.
bash <(curl -sL https://raw.githubusercontent.com/nowledge-co/community/main/nowledge-mem-hermes/setup.sh)Plugin-Native
Hermes v0.7.0+ supports memory providers. Install the plugin once for built-in behavior: Working Memory loads at session start, relevant memories surface before each turn, and Hermes gets native Nowledge tools plus save guidance. No SOUL.md guidance needed.
Before Upstream Merge
Until this provider is accepted upstream by NousResearch/hermes-agent, the supported install path is the Nowledge community installer on this page. The upstream path is the official long-term home; this guide keeps the pre-merge path explicit so users are not blocked while review is pending.
Your cross-tool knowledge, accessible in every Hermes session. Decisions from Claude Code, preferences from Cursor, insights from ChatGPT: one knowledge graph, always available.
Your first success state
Install the plugin, restart Hermes, and start a new session. Working Memory should appear in the system prompt. Ask "what decisions have I made recently?" and Hermes should search your knowledge graph without you pointing it at a tool.
Before You Start
- Nowledge Mem running locally (installation) or a reachable remote server
- Hermes Agent v0.7.0+ installed (v0.6.x works with MCP mode)
nmem status # Nowledge Mem is running
hermes --version # Hermes is availableSetup
Plugin install (recommended)
bash <(curl -sL https://raw.githubusercontent.com/nowledge-co/community/main/nowledge-mem-hermes/setup.sh)Installs the native memory provider plugin. Restart Hermes after running.
Or install manually:
- Copy plugin files to
~/.hermes/plugins/nowledge-mem/:mkdir -p ~/.hermes/plugins/nowledge-mem cd ~/.hermes/plugins/nowledge-mem for f in plugin.yaml __init__.py provider.py client.py; do curl -sLO "https://raw.githubusercontent.com/nowledge-co/community/main/nowledge-mem-hermes/$f" done - Set the provider in
~/.hermes/config.yaml:memory: provider: "nowledge-mem" - Restart Hermes.
MCP mode (Hermes < v0.7.0)
If you are on an older version of Hermes or prefer a standard MCP connection:
bash <(curl -sL https://raw.githubusercontent.com/nowledge-co/community/main/nowledge-mem-hermes/setup.sh) --mcpThis adds the MCP server to config.yaml and installs behavioral guidance in ~/.hermes/SOUL.md. Tools appear with the mcp_nowledge_mem_ prefix.
Without behavioral guidance, MCP mode gives Hermes tools but no instruction on when to use them proactively. If Hermes recalls but never saves, this is usually why. The plugin mode does not need guidance because behavior is built into the provider lifecycle.
Verify
Ask Hermes something that depends on your past work:
What decisions have I made recently?In plugin mode, Hermes should call nmem_search. In MCP mode, it should call mcp_nowledge_mem_memory_search. Then ask Hermes to save a conclusion or watch whether it chooses the native nmem_save tool when the conversation reaches a durable decision.
What Happens Automatically
The plugin hooks into Hermes' memory provider lifecycle. No manual tool calls needed for these:
- Working Memory loads at the start of every session
- Relevant memories surface before each turn (proactive recall)
- User profile facts from Hermes sync to your cross-tool knowledge graph
- Context compressor knows external knowledge can be recovered via search
In MCP mode, these behaviors depend on the SOUL.md guidance and are not guaranteed.
Hermes Memory vs Nowledge Mem
Hermes has a built-in memory system for facts specific to Hermes sessions. Nowledge Mem is complementary: it stores knowledge that spans tools. Use both:
- Hermes memory: Hermes-specific preferences, environment details, tool quirks
- Nowledge Mem: Decisions, procedures, and learnings that future sessions in any tool should know about
The plugin automatically mirrors user profile facts from Hermes to Nowledge Mem, so cross-tool knowledge stays in sync.
What You Can Do
Find knowledge from other tools. Ask "what did we decide about the database?" and Hermes searches across decisions you made in Claude Code, insights from ChatGPT, notes from Cursor.
Save knowledge for everywhere. When you reach a conclusion in Hermes, it saves to your knowledge graph so your next Claude Code session, Cursor project, or ChatGPT conversation can find it too.
Search past conversations. Find past conversations by keyword across every tool. Retrieve the full exchange with pagination.
In MCP mode, you also get graph exploration tools to trace how decisions evolved and discover related memories.
Tools
Plugin mode uses clean nmem_ names. MCP mode uses the mcp_nowledge_mem_ prefix.
| Plugin | MCP | Purpose |
|---|---|---|
nmem_search | memory_search | Search memories |
nmem_save | memory_add | Save or upsert a decision, insight, or learning |
nmem_update | memory_update | Refine an existing memory |
nmem_delete | memory_delete | Remove one or more memories |
nmem_thread_search | thread_search | Search past conversations |
nmem_thread_messages | thread_fetch_messages | Fetch messages from a thread |
MCP mode also includes list_memory_labels, memory_neighbors, and memory_evolves_chain. These will be added to the plugin when the nmem CLI supports them.
Configuration
No configuration needed for local use. The plugin calls the nmem CLI, which handles server URL and API key.
If the Nowledge Mem desktop app is on the same machine, nmem is already bundled. For remote-only setups without the desktop app: pip install nmem-cli.
Remote access
Configure the local nmem client to point at your remote server:
nmem config client set url https://your-server:14242
nmem config client set api-key your-keyThis updates the client-side connection settings for the machine running Hermes. It is separate from server-side Access Anywhere or LAN bind configuration on the Mem host.
The only plugin-specific setting is request timeout, in ~/.hermes/nowledge-mem.json:
{
"timeout": 60
}Spaces
Hermes supports three clean mapping levels:
space: one fixed lane for this Hermes profilespace_by_identity: a small explicit map from Hermes identities to named spacesspace_template: one derived lane per Hermes identity, for exampleagent-{identity}
If none of those are set, Hermes can still inherit NMEM_SPACE.
For MCP mode, update the URL directly in config.yaml:
mcp_servers:
nowledge-mem:
url: "https://your-server/mcp"
headers:
Authorization: "Bearer your-key"
timeout: 120See Access Mem Anywhere.
Update
The MCP tools are defined by the Nowledge Mem server and update with the desktop app. For plugin updates, re-run the setup command.
Troubleshooting
Cannot connect to Nowledge Mem. Confirm the server is running with nmem status. Check that the URL matches the address shown by nmem status.
Hermes recalls but never saves (MCP mode). Behavioral guidance is missing. Run the setup command, then restart Hermes. The guidance must be in ~/.hermes/SOUL.md (always loaded) or a HERMES.md at the git root. In plugin mode, saving is built into the provider lifecycle and does not depend on guidance.
Tools not appearing (plugin). Confirm memory.provider: "nowledge-mem" in config.yaml and plugin files exist in ~/.hermes/plugins/nowledge-mem/. Restart Hermes.
Tools not appearing (MCP). Confirm the mcp_servers.nowledge-mem block in config.yaml. Restart Hermes. Verify the YAML is valid (correct indentation, no tabs).
Slow responses. Default timeout is 30 seconds. Increase in nowledge-mem.json (plugin) or config.yaml (MCP). If the issue persists, check nmem status for server health.
Related
- Integrations overview
- Claude Code · OpenCode · Pi · OpenClaw · Alma · Bub
- Source: nowledge-mem-hermes