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>
139 lines
5.3 KiB
Markdown
139 lines
5.3 KiB
Markdown
# Getting started
|
|
|
|
A ~5-minute walkthrough from zero to a working memory bridge. New to the idea? Read
|
|
[why-combine-memory.md](./why-combine-memory.md) first.
|
|
|
|
## 1. Prerequisites
|
|
|
|
- **Claude Code.**
|
|
- **Basic Memory** (`>= 0.19.0`) installed and connected as an MCP server:
|
|
```bash
|
|
uv tool install basic-memory
|
|
```
|
|
Then add it to Claude Code (`claude mcp add` or your MCP config). Confirm it's
|
|
reachable — Claude should be able to call `list_memory_projects`.
|
|
|
|
You don't need a Basic Memory Cloud account. Everything works local-first; cloud and
|
|
teams are optional (see step 5).
|
|
|
|
## 2. Install the plugin
|
|
|
|
```bash
|
|
claude plugin marketplace add basicmachines-co/basic-memory --sparse .claude-plugin plugins/claude-code
|
|
claude plugin install basic-memory@basicmachines-co
|
|
```
|
|
|
|
Verify it loaded:
|
|
|
|
```bash
|
|
claude plugin details basic-memory@basicmachines-co
|
|
```
|
|
|
|
You should see **Skills (4): remember, setup, share, status** and **Hooks (2):
|
|
SessionStart, PreCompact**.
|
|
|
|
## 3. Run setup
|
|
|
|
In a project (repo) where you want memory, run:
|
|
|
|
```
|
|
/basic-memory:bm-setup
|
|
```
|
|
|
|
It's a short interview. It will:
|
|
- map this project to a Basic Memory project (pick an existing one or create a new one),
|
|
- seed the `session` / `decision` / `task` schemas so notes are findable by structured
|
|
search,
|
|
- install the shared `memory-*` skills (`npx skills add …`) — the plugin ships only the
|
|
Claude-Code-specific glue and pulls the canonical skills on demand,
|
|
- optionally learn your existing folder/naming conventions,
|
|
- enable the capture reflexes (output style),
|
|
- write a `basicMemory` block to `.claude/settings.json`.
|
|
|
|
> No cloud, no interview yet? The plugin still works against your **default** Basic
|
|
> Memory project with zero config — but pinning a project (which setup does) is what
|
|
> lets the PreCompact checkpoint write, and stops the first-run nudge.
|
|
|
|
When it finishes, run:
|
|
|
|
```
|
|
/basic-memory:bm-status
|
|
```
|
|
|
|
to see exactly what the plugin is tracking.
|
|
|
|
## 4. See it work
|
|
|
|
1. **Capture a decision.** In normal conversation, make a decision — e.g. *"Let's use
|
|
Postgres, not SQLite, because we need concurrent writers."* With the output style on,
|
|
Claude writes a `type: decision` note and tells you the permalink.
|
|
2. **Quick-capture something.** `/basic-memory:bm-remember switch the staging job to the
|
|
new image after the rebase lands` → saved to `bm-remember/`.
|
|
3. **Start a fresh session.** Open a new Claude Code session in the same project. The
|
|
**SessionStart brief** appears first thing, showing your active tasks and the open
|
|
decision you just captured — Claude is oriented before you type anything.
|
|
4. **(Optional) Trigger compaction** on a long session and resume: the next session's
|
|
brief includes the checkpoint the PreCompact hook wrote.
|
|
|
|
That loop — capture → checkpoint → brief — is the whole point. It gets richer as the
|
|
graph accumulates.
|
|
|
|
## 5. Add your team (optional)
|
|
|
|
On Basic Memory Cloud with a team workspace, you can read team context into your brief
|
|
and publish back deliberately.
|
|
|
|
Re-run `/basic-memory:bm-setup` (or edit `.claude/settings.json`). Because project names
|
|
repeat across workspaces, team projects use **workspace-qualified names**
|
|
(`my-team/notes`) or `external_id` UUIDs — setup finds these for you via
|
|
`list_workspaces`.
|
|
|
|
```json
|
|
{
|
|
"basicMemory": {
|
|
"primaryProject": "my-org/main",
|
|
"secondaryProjects": ["my-team/main", "my-team/notes"],
|
|
"teamProjects": { "my-team/notes": { "promoteFolder": "shared" } }
|
|
},
|
|
"outputStyle": "basic-memory"
|
|
}
|
|
```
|
|
|
|
Now:
|
|
- SessionStart folds the team's **open decisions** into your brief (read-only).
|
|
- Your captures still go **only** to `primaryProject` — never to the team.
|
|
- `/basic-memory:bm-share <note>` publishes a chosen note to `my-team/notes/shared`, with
|
|
attribution and a confirmation step.
|
|
|
|
Tip: a team brief is only as rich as the team's typed notes. Share an existing decision
|
|
into a team project and watch it appear in the next session's brief.
|
|
|
|
## 6. Tune it (optional)
|
|
|
|
Everything is in the `basicMemory` block of `.claude/settings.json`. Common knobs:
|
|
|
|
| Key | Default | What it does |
|
|
|-----|---------|--------------|
|
|
| `primaryProject` | (default project) | where briefs read from and captures write to |
|
|
| `secondaryProjects` | `[]` | team/shared projects read for recall (read-only) |
|
|
| `teamProjects` | `{}` | share targets for `/basic-memory:bm-share` |
|
|
| `captureFolder` | `sessions` | folder for PreCompact checkpoints |
|
|
| `rememberFolder` | `bm-remember` | folder for `/basic-memory:bm-remember` |
|
|
| `recallTimeframe` | `3d` | recency window for the brief |
|
|
| `preCompactCapture` | `extractive` | how checkpoints are produced |
|
|
|
|
See [settings.example.json](../settings.example.json) for the full shape.
|
|
|
|
## Troubleshooting
|
|
|
|
- **No brief at session start?** Confirm Basic Memory is connected (`/basic-memory:bm-status`).
|
|
The hooks are silent if `basic-memory` isn't on PATH.
|
|
- **Checkpoints aren't being written?** A `primaryProject` must be set — the PreCompact
|
|
hook never writes to an un-pinned/default project on its own.
|
|
- **Commands not showing?** They're namespaced: type `/basic-memory:` to see them.
|
|
- **Team brief is empty?** Those projects may have no `type: decision` notes yet — the
|
|
brief surfaces typed decisions, which accumulate as the team captures them.
|
|
|
|
For the design and internals, see [architecture.md](./architecture.md) and
|
|
[DESIGN.md](../DESIGN.md).
|