Overview
claude-mem plugs into Hermes Agent as a memory provider. Hermes records its prompts, tool calls and memory notes in claude-mem, and at the start of each turn it is handed the notes that match the prompt. A Hermes session and a Claude Code session in the same checkout read and write the same project memory.Install
-
Copies the provider to
$HERMES_HOME/plugins/claude-mem/. The default home is~/.hermeson macOS and Linux, or%LOCALAPPDATA%\hermeson Windows (%USERPROFILE%\AppData\Local\hermesifLOCALAPPDATAis unset). -
Selects it in
$HERMES_HOME/config.yaml: -
Adds claude-mem’s search tools as an MCP server, unless you already have an
mcp_servers.claude-mementry:
Hermes runs one external memory provider at a time. If another one was selected, the installer says so and
npx claude-mem uninstall puts it back. Hermes’s built-in memory (MEMORY.md / USER.md) stays on; what it saves is also filed in claude-mem.How it works
Recording a prompt does not guarantee a recalled note: the worker can finish a session without producing notes or a summary. Recorded prompts remain searchable through the MCP tools.
- One project key for every agent. Each call carries the session’s working directory and the worker resolves the project the same way it does for Claude Code (git root, worktrees, configured overrides). Excluded projects (
CLAUDE_MEM_EXCLUDED_PROJECTS) are skipped. - Hermes never waits on writes. They go through one background thread, in order. Reads wait at most 3 seconds.
- Fail-soft. If claude-mem is not running, every call returns nothing; after three failures in a row calls pause for 30 seconds.
- Scheduled jobs and other non-primary Hermes agents read memory but record nothing, as Hermes asks of memory providers.
- Tools that are not recorded: Hermes’s
memorytool (its writes arrive throughon_memory_write), claude-mem’s own search tools, and tool calls from delegated child agents.
Hosted server
With these settings (in the environment or~/.claude-mem/settings.json) the provider sends the same events to the hosted server’s /v1 API instead of the local worker:
<repo>/<worktree> for a linked worktree), so Hermes and Claude Code share notes per checkout. The opt-in CLAUDE_MEM_PROJECT_NAME_SOURCE=git-remote keys and configured project environments are not mirrored in hosted mode yet; with the local worker, every key mode applies.
Search from Hermes
The MCP entry gives Hermesmem_search, search, timeline, get_observations and save_memory.
Uninstall
memory.provider you had before (unless you changed it since), and removes mcp_servers.claude-mem only if the installer added it and it has not been edited since.
