basic-memory-pi-setup
Set up Basic Memory for a Pi workspace. Use when Basic Memory is not configured, /bm-status…
Save a deliberate work checkpoint to Basic Memory with the story, changed files, verification, decisions, blockers, and the next action. Use when the user asks to checkpoint, wrap up, hand off, or remember the state of the work.
$ npx -y skills add basicmachines-co/basic-memory --skill bm-checkpoint --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/bm-checkpointContext preview
The summary Claude sees to decide when to auto-load this skill.
Save a deliberate work checkpoint to Basic Memory with the story, changed files, verification, decisions, blockers, and the next action. Use when the user asks to checkpoint, wrap up, hand off, or remember the state of the work.
name: bm-checkpoint description: Save a deliberate work checkpoint to Basic Memory with the story, changed files, verification, decisions, blockers, and the next action. Use when the user asks to checkpoint, wrap up, hand off, or remember the state of the work. argument-hint: (optional short topic for the checkpoint title)
Create a durable handoff note for the current work. Use this when the user asks to checkpoint, wrap up, hand off, remember the state of the work, or before a long context transition. This is the deliberate, high-signal counterpart to the automatic PreCompact checkpoint.
Resolve config: read the `basicMemory` block with the same precedence the hooks use. For the user-level base, append `settings.json` to the literal value of `CLAUDE_CONFIG_DIR` when that environment variable is present; do not trim it, expand `~`, or treat an empty value as unset. Use `~/.claude/settings.json` only when the variable is absent. Then the project's `.claude/settings.json` and `.claude/settings.local.json` override it per key:
Apply the `bm-writing` skill before drafting the note.
Gather evidence:
Do not claim a test passed unless you ran it or the user supplied the result.
A checkpoint is a durable handoff, not a status dump or commit-by-commit changelog. Tell the story for a human or agent returning later.
Write the note with `write_note`, routed to `primaryProject` (pass it as `project`, or as `project_id` if it's an `external_id` UUID). For the `general` profile:
New notes use `agent` and `session_id`, not `claude_session_id`. Existing notes with the legacy field remain valid; do not rewrite them. Session identity is the pair of agent and session ID, never a bare ID shared across hosts.
For the `coding` profile, write `note_type: coding_session` (frontmatter `type: coding_session`) and use the same common frontmatter plus these schema-required fields:
When the current branch has a pull request, also add the typed optional fields `pull_request_number`, `pull_request_title`, `pull_request_url`, lowercase `pull_request_state`, `pull_request_base`, and `pull_request_head`. Resolve the pull request with a read-only GitHub query (e.g. `gh pr view --json ...`); omit those fields when no PR exists. Write the number as a quoted string, for example `pull_request_number: "123"`, so exact metadata queries behave consistently across storage backends. Never infer or copy repository/PR identity only from conversation text. Stop if the required coding fields cannot be proven.
Begin the body with `# <exact note title>`.
Use these sections, omitting optional ones that add no value:
need — the constraint discovered, the boundary made explicit, the shortcut to avoid
Use observations to distill durable facts for structured recall rather than duplicating every narrative sentence:
project memory, not merely supporting detail
Do not create separate Decisions, Blockers, or Next Action sections with plain bullets. Omit empty categories instead of writing placeholder text such as "None."
Relations are not observations. Put them under `## Relations` using Basic Memory relation syntax, for example `- relates_to [[Exact existing note title]]`. Never write `[relates_to]` or a bare `memory://` URL as an observation. Only add a relation when its target is an existing task, decision, spec, issue, or PR note.
Reply with the permalink and the one next action the checkpoint preserves.
AI conversations that actually remember. Never re-explain your project to your AI again. Join our Discord: https://discord.gg/tyvKNccgqN
Repo: basicmachines-co/basic-memory
Set up Basic Memory for a Pi workspace. Use when Basic Memory is not configured, /bm-status…
Use Basic Memory from Pi for durable continuity. Capture checkpoints with bm_capture, recall…
Guide Basic Memory setup in Tau. Use when a user wants to install or configure the Tau memory…
Capture a durable engineering decision in Basic Memory with rationale, alternatives,…
Orient Claude from Basic Memory before substantial repo work by reading active tasks, open…
Quickly capture a thought, fact, or reminder into Basic Memory as a lightweight note. Use…