Hermes Plugin
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.
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.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
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.
Provider: basic-memory
Plugin: installed ✓
Status: available ✓
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:
| Tool | Description |
|---|---|
bm_search | Semantic + full-text search; the agent calls this before answering |
bm_read | Read a note by title, permalink, or memory:// URL |
bm_write | Create a note (decisions, meeting notes, insights) |
bm_edit | Incremental edits — append, prepend, find/replace, replace-section |
bm_context | Navigate the graph via memory:// URLs to find related notes |
bm_delete | Delete a note |
bm_move | Move a note to a different folder |
bm_recent | List notes updated within a timeframe (default 7d) |
bm_projects | List available projects with their UUIDs for routing |
bm_workspaces | List Basic Memory Cloud workspaces |
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
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.


