# Basic Memory

Use the Basic Memory knowledge graph for persistent memory across sessions.

- Repository: https://github.com/basicmachines-co/basic-memory (4440 stars)
- Category: Writing
- License: AGPL-3.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add basicmachines-co/basic-memory --skill basic-memory -g -a claude-code -y`
Codex: `npx skills add basicmachines-co/basic-memory --skill basic-memory -g -a codex -y`
Cursor: `npx skills add basicmachines-co/basic-memory --skill basic-memory -g -a cursor -y`
Gemini CLI: `npx skills add basicmachines-co/basic-memory --skill basic-memory -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add basicmachines-co/basic-memory`

## Description

Use the Basic Memory knowledge graph for persistent memory across sessions. Search before answering; capture decisions, meetings, and insights as notes.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Basic Memory Knowledge Graph

You have access to a persistent knowledge graph backed by Basic Memory. The graph survives across sessions and is shared with other tools (Claude Desktop, Obsidian, the `bm` CLI). Use the `bm_*` tools below to recall and capture information.

## Use `bm_*`, not the `bm` CLI

Use the `bm_*` tools for note operations rather than shelling out to the `bm` CLI.

The `bm_*` tools route through a persistent MCP connection, roughly 0.1 seconds per call. Running `bm` from the shell spawns a fresh Python process per call (1-2 seconds of cold-start every time) and bypasses Hermes's automatic per-turn capture, so the session-transcript and summary notes won't reflect what you did.

The CLI is fine when you genuinely need a feature these wrappers don't expose (rare). Otherwise, prefer:

| Use case | Tool (not CLI) |
|---|---|
| Search the graph | `bm_search` |
| Read a note | `bm_read` |
| Create / update a note | `bm_write` / `bm_edit` |
| Navigate relations | `bm_context` |
| Move / delete | `bm_move` / `bm_delete` |
| What's been touched lately | `bm_recent` |
| List available projects | `bm_projects` |
| List cloud workspaces | `bm_workspaces` |

These are Hermes-native wrappers, with their own argument schemas. For example,
`bm_recent`, `bm_projects`, `bm_workspaces`, `limit`, `folder`, and `operation`
below belong to Hermes. Direct Basic Memory 1.0 MCP tools use `bm_project`,
`page_size`, `directory`/`identifier`, and `command` instead. Follow the active
Hermes tool schema when adapting examples from the shared memory skills.

## Tool reference

### `bm_search`, search the graph
Use **before** answering questions about prior decisions, projects, meetings, or anything that might already be documented.

```
bm_search({ query: "auth strategy decision", limit: 5 })
```

### `bm_read`, fetch a note's full content
After search shows a relevant note, read it for context.

The rest: https://github.com/basicmachines-co/basic-memory/blob/HEAD/integrations/hermes/skill/SKILL.md
