# Bm Checkpoint

Save a deliberate work checkpoint to Basic Memory with the story, changed files...

- Repository: https://github.com/basicmachines-co/basic-memory (4440 stars)
- Category: Engineering
- 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 bm-checkpoint -g -a claude-code -y`
Codex: `npx skills add basicmachines-co/basic-memory --skill bm-checkpoint -g -a codex -y`
Cursor: `npx skills add basicmachines-co/basic-memory --skill bm-checkpoint -g -a cursor -y`
Gemini CLI: `npx skills add basicmachines-co/basic-memory --skill bm-checkpoint -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add basicmachines-co/basic-memory`

## 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.

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

# Checkpoint Claude Work

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.

When no project is pinned, discover projects with `bm_project(command="list")`
and pass the selected project's external ID as `project` on note/search calls.
With several addressable projects, these calls require an explicit scope even
when a default is configured.

## Gather

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:

- `primaryProject`, optional; discover and explicitly select the listed default or sole project when absent
- `captureFolder`, default `sessions`
- `placementConventions`, optional
- `sessionProfile`, default `general`
- `repository`, required when `sessionProfile` is `coding`

Apply the `bm-writing` skill before drafting the note.

Gather evidence:

The rest: https://github.com/basicmachines-co/basic-memory/blob/HEAD/plugins/claude-code/skills/bm-checkpoint/SKILL.md
