Hermes Plugin - Basic Memory
Basic Memory
Integrations

Hermes Plugin

Give Hermes Agent persistent Basic Memory: search-before-answer recall, per-turn capture, end-of-session summaries, agent tools, slash commands, and a bundled skill.

The hermes-basic-memory plugin connects Basic Memory to Hermes Agent, giving agents a persistent knowledge graph stored as plain Markdown. Hermes ships with no external memory provider by default; this plugin replaces that with a real graph — search-before-answer recall, automatic conversation capture, end-of-session summaries, and a curated set of bm_* tools the agent can call directly. The plugin is open source and lives in the basic-memory monorepo — browse the source in integrations/hermes.

Slash commands may need a Hermes Agent-side patch. The plugin's agent tools (bm_*) and auto-capture work as documented once installed. On affected Hermes Agent releases, the native /bm-*slash commands don't appear in gateway sessions — a Hermes plugin-loading gap (exclusive memory-provider plugins aren't loaded during gateway slash-command discovery), not a plugin bug. How to tell if you're affected: install the plugin, restart the gateway, and type /bm- — if no commands autocomplete, apply the Hermes Agent-side patch in MONKEYPATCH.md (it also lists affected versions). This affects only the slash-command surface; nothing else on this page depends on it.
Hermes Agent (see the installation note below — managed install is blocked on every current release) and uv on your PATH. The plugin auto-installs the bm CLI on first init via uv tool install basic-memory (a one-time ~10s pause if it isn't already present).

Installation

Managed install is currently blocked upstream. This plugin ships manifest_version: 2, but hermes plugins install caps at version 1 on every released Hermes Agent (latest: v0.20.5 / v2026.8.19), so the command fails with "requires manifest_version 2, but this installer only supports up to 1." The fix is an open pull request that has not shipped in a release yet, so updating Hermes will not help.Until it lands, clone the repo and link the plugin in directly — the Hermes runtime loads manifest v2 without trouble; only the installer is capped:
git clone https://github.com/basicmachines-co/basic-memory.git
ln -snf "$PWD/basic-memory/integrations/hermes" ~/.hermes/plugins/basic-memory

Install the plugin:

hermes plugins install basicmachines-co/basic-memory/integrations/hermes

Then activate it in ~/.hermes/config.yaml:

memory:
  provider: basic-memory

If you run the gateway, restart it:

hermes gateway restart

Verify the plugin is live:

hermes memory status

Using Basic Memory Cloud

By default the plugin runs in local mode and writes to a project on that machine. In cloud mode, tool calls route directly through the Basic Memory Cloud API — no local file mirror, no bisync.

Sign in, then create a cloud-routed project:

bm cloud login
bm project add hermes-memory-cloud
bm project set-cloud hermes-memory-cloud --workspace "My Workspace"

--workspace is required if you belong to more than one; otherwise it resolves the only one available.

Then point the plugin at it in ~/.hermes/basic-memory.json (or run hermes memory setup basic-memory):

{
  "mode": "cloud",
  "project": "hermes-memory-cloud"
}

Restart the gateway and confirm with hermes memory status. Check the routing with bm project list — the project's Route column should read cloud.

In cloud mode the plugin does not create the project for you, unlike local mode. Create it first with the commands above, or initialization fails.
  Provider:  basic-memory
  Plugin:    installed ✓
  Status:    available ✓
The plugin needs the mcp Python package in the Hermes venv. hermes plugins install usually installs it from the plugin's pip_dependencies. If it doesn't, run uv pip install --python ~/.hermes/hermes-agent/venv/bin/python mcp.

Configuration

Defaults are reasonable for local use — no configuration required. To override, write ~/.hermes/basic-memory.json or run hermes memory setup basic-memory:

{
  "mode": "local",
  "project": "hermes-memory",
  "project_path": "~/hermes-memory/",
  "capture_per_turn": true,
  "capture_session_end": true,
  "capture_folder": "hermes-sessions",
  "remember_folder": "bm-remember"
}

How It Works

Search-Before-Answer Recall

Before the agent answers a question about prior work, it searches the knowledge graph so it can build on what's already documented instead of starting cold. Recall is injected into context automatically each turn.

Auto-Capture

Every user/assistant exchange is appended to a running session-transcript note. When the session ends, a separate summary note is written and linked back to the transcript via a summary_of relation — so a session is both fully logged and quickly skimmable.

Persistent Connection

The plugin holds a long-lived bm mcp process open over stdio for the agent's lifetime (~0.1s per tool call). Shelling out to the bm CLI would spawn a fresh Python process per call (1–2s cold start) and bypass automatic capture — so the agent is steered to use the bm_* tools directly.

Cross-Project & Workspace Routing

Every read/write tool accepts an optional project (name, optionally workspace-qualified like "personal/main") or project_id (UUID from bm_projects). The agent can read or write against any project in your knowledge base without reconfiguring the plugin — and disambiguate same-named projects across cloud workspaces. See local/cloud routing for how project modes work.

In practice the Hermes agent gets:

  • Its own long-term memory — auto-captured conversations and summaries that persist across sessions
  • Access to external projects — search and write notes in any project, routed per call
  • Local/cloud hybrid — keep the agent's memory local while routing shared projects through Basic Memory Cloud; the tools behave identically either way

Agent Tools

The plugin exposes a curated subset of Basic Memory's MCP surface:

ToolDescription
bm_searchSemantic + full-text search; the agent calls this before answering
bm_readRead a note by title, permalink, or memory:// URL
bm_writeCreate a note (decisions, meeting notes, insights)
bm_editIncremental edits — append, prepend, find/replace, replace-section
bm_contextNavigate the graph via memory:// URLs to find related notes
bm_deleteDelete a note
bm_moveMove a note to a different folder
bm_recentList notes updated within a timeframe (default 7d)
bm_projectsList available projects with their UUIDs for routing
bm_workspacesList Basic Memory Cloud workspaces
Every read/write tool also accepts project / project_id for per-call routing. bm_projects and bm_workspaces are discovery tools — they list across everything and take no routing arguments.

Slash Commands

On affected Hermes Agent releases, these commands require the Hermes Agent-side patch in MONKEYPATCH.md — see the warning at the top of this page. The agent tools above are unaffected.

For direct, in-session use without going through the agent:


Bundled Skill

The plugin ships a basic-memory skill — a longer reference doc on top of the short usage guidance the plugin always injects into the agent's context. It covers the note format, cross-project routing, permalink shapes, and a worked discovery → route → write → verify recipe. It's opt-in via skill:view basic-memory:basic-memory.


Next Steps

MCP Tools Reference

Full reference for all Basic Memory MCP tools.

Local & Cloud Routing

Run some projects locally and others in the cloud.

Memory URLs

How memory:// addressing and permalinks work.

OpenClaw Plugin

The sibling plugin for OpenClaw agents.

GitHub Repository

Source code, issues, and contributing guide.
Copyright © 2026