mirror of
https://github.com/basicmachines-co/basic-memory
synced 2026-06-21 13:47:35 +00:00
5458c35b35
Signed-off-by: phernandez <paul@basicmachines.co> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
143 lines
6.4 KiB
Markdown
143 lines
6.4 KiB
Markdown
# Basic Memory for Claude Code
|
|
|
|
The bridge between **Claude's working memory** and **[Basic Memory](https://basicmemory.com)'s durable knowledge graph**.
|
|
|
|
Claude Code now keeps its own auto-memory — fast, in-context notes Claude writes
|
|
to itself. Basic Memory is the other half: a searchable, portable, semantic graph
|
|
of markdown files you and Claude both own. This plugin connects the two so you get
|
|
the [documented "use both" setup](https://docs.basicmemory.com/concepts/vs-built-in-memory)
|
|
automatically: Claude starts each session briefed from the graph, and checkpoints
|
|
the session back to it before the context window compacts.
|
|
|
|
> This package lives in the canonical [`basic-memory`](https://github.com/basicmachines-co/basic-memory)
|
|
> repository under `plugins/claude-code/` and only works with Claude Code. For
|
|
> framework-agnostic skills that work in any MCP agent, see the top-level
|
|
> [`skills/`](../../skills) directory.
|
|
|
|
## What it does
|
|
|
|
- **Session briefing (SessionStart hook).** When a session begins, the plugin
|
|
queries Basic Memory for your active tasks and recent work and puts a short
|
|
brief in front of Claude — so you start where you left off instead of cold.
|
|
- **Compaction checkpoint (PreCompact hook).** Right before Claude Code compacts
|
|
the context window, the plugin writes a `type: session` checkpoint note to the
|
|
graph, so the texture of the session survives and the next one can resume from
|
|
it.
|
|
- **Capture reflexes (output style).** An opt-in output style teaches Claude to
|
|
search the graph before answering recall questions, capture real decisions as
|
|
typed `decision` notes, and cite permalinks.
|
|
- **Seed schemas.** Picoschema definitions for `session`, `decision`, and `task`
|
|
notes, so the stuff the plugin writes is structured and findable by
|
|
`search_notes` metadata filters — recall is precise, not fuzzy.
|
|
|
|
The full design and rationale live in [DESIGN.md](./DESIGN.md).
|
|
|
|
## Commands
|
|
|
|
Plugin skills are namespaced under the plugin name:
|
|
|
|
| Command | What it does |
|
|
|---------|--------------|
|
|
| `/basic-memory:bm-setup` | One-time guided setup — maps the project to a Basic Memory project, seeds the note schemas, installs the shared `memory-*` skills, optionally learns your conventions, and turns on the capture reflexes. Run this first. |
|
|
| `/basic-memory:bm-remember <text>` | Quick capture — saves the text to the `bm-remember` folder with a `manual-capture` tag. Also fires when you say "remember that…". |
|
|
| `/basic-memory:bm-share <note>` | Promote a personal note to a configured team project, with attribution and confirmation. The deliberate way to write to a shared workspace. |
|
|
| `/basic-memory:bm-status` | Diagnostic — shows the active project, team read-sources and share targets, capture folders, output-style state, recent session checkpoints, and active-task count. |
|
|
|
|
## Requirements
|
|
|
|
- [Basic Memory](https://github.com/basicmachines-co/basic-memory) `>= 0.19.0`
|
|
connected as an MCP server. `uv tool install basic-memory` is recommended (it puts
|
|
a `basic-memory` binary on PATH, which the hooks call directly). A `uvx
|
|
basic-memory mcp`-only setup also works — the hooks fall back to `uvx`/`uv` when no
|
|
binary is on PATH.
|
|
- Claude Code.
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
claude plugin marketplace add basicmachines-co/basic-memory --sparse .claude-plugin plugins/claude-code
|
|
claude plugin install basic-memory@basicmachines-co
|
|
```
|
|
|
|
## Configuration
|
|
|
|
The fastest path is **`/basic-memory:bm-setup`** — a ~2-minute interview that writes
|
|
the config, seeds the schemas, and turns on the capture reflexes. The SessionStart
|
|
hook nudges you toward it on first run.
|
|
|
|
To configure by hand instead: the hooks work out of the box against your **default**
|
|
Basic Memory project — no config required. To pin a specific project (recommended,
|
|
and required for the PreCompact checkpoint to write), add a `basicMemory` block to
|
|
your project's `.claude/settings.json`. Copy
|
|
[`settings.example.json`](./settings.example.json) and set `primaryProject`:
|
|
|
|
```json
|
|
{
|
|
"basicMemory": {
|
|
"primaryProject": "my-project",
|
|
"captureFolder": "sessions"
|
|
}
|
|
}
|
|
```
|
|
|
|
To enable the capture reflexes, also set `"outputStyle": "basic-memory"` in your
|
|
settings (or select it via `/config`).
|
|
|
|
| Key | Default | What it does |
|
|
|-----|---------|--------------|
|
|
| `primaryProject` | _(default project)_ | Where briefs read from and checkpoints write to |
|
|
| `captureFolder` | `sessions` | Folder for PreCompact checkpoint notes |
|
|
| `recallTimeframe` | `3d` | Recency window for the session brief |
|
|
| `recallPrompt` | _(built-in)_ | The instruction appended to the brief |
|
|
| `preCompactCapture` | `extractive` | How checkpoints are produced |
|
|
|
|
See [DESIGN.md](./DESIGN.md) for the complete configuration schema, the
|
|
Claude-Code-project ↔ Basic-Memory-project mapping, and team-workspace behavior.
|
|
|
|
## Teams
|
|
|
|
If you're on Basic Memory Cloud with a team workspace, the plugin reads team context
|
|
into your session brief and gives you a deliberate way to publish back — **without
|
|
ever auto-writing to the shared graph.**
|
|
|
|
- **Read across** — add team projects to `secondaryProjects`. SessionStart pulls their
|
|
open decisions into your brief (in parallel, read-only), so you start oriented on
|
|
what the team has decided.
|
|
- **Capture stays personal** — session checkpoints and `/basic-memory:bm-remember` only
|
|
ever write to your `primaryProject`. Nothing lands in a team project automatically.
|
|
- **Share deliberately** — `/basic-memory:bm-share` copies a chosen note into a
|
|
`teamProjects` target (with attribution and a confirmation step). That's the only
|
|
path to a shared write.
|
|
|
|
Because project names repeat across workspaces, team refs must be **workspace-qualified**
|
|
(`my-team/notes`) or `external_id` UUIDs — `/basic-memory:bm-setup` fills these in for you
|
|
from `list_workspaces`.
|
|
|
|
## Documentation
|
|
|
|
- [Why combine Basic Memory with Claude's built-in memory](./docs/why-combine-memory.md) — the value, the personas, the use cases.
|
|
- [Getting started](./docs/getting-started.md) — a ~5-minute walkthrough from install to a working memory loop.
|
|
- [Architecture](./docs/architecture.md) — how it works, flow by flow, with diagrams.
|
|
- [DESIGN.md](./DESIGN.md) — design rationale, decisions, and roadmap.
|
|
|
|
## Development
|
|
|
|
From the monorepo root:
|
|
|
|
```bash
|
|
just package-check-claude-code
|
|
```
|
|
|
|
From this directory:
|
|
|
|
```bash
|
|
just check
|
|
```
|
|
|
|
`just check` validates the manifests, hooks, output style, and seed schemas, then
|
|
runs `claude plugin validate . --strict`.
|
|
|
|
## License
|
|
|
|
MIT
|