# Bm Status

Show the Basic Memory plugin's current state for this project, active project, capture...

- 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-status -g -a claude-code -y`
Codex: `npx skills add basicmachines-co/basic-memory --skill bm-status -g -a codex -y`
Cursor: `npx skills add basicmachines-co/basic-memory --skill bm-status -g -a cursor -y`
Gemini CLI: `npx skills add basicmachines-co/basic-memory --skill bm-status -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add basicmachines-co/basic-memory`

## Description

Show the Basic Memory plugin's current state for this project, active project, capture folders, output style, recent session checkpoints, and whether Basic Memory is reachable.

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

# Basic Memory status

Report the plugin's current state for this project, then present a concise summary.
This is a quick diagnostic, gather the facts and lay them out; don't over-investigate.

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

1. **CLI reachable?** Run `basic-memory --version`, then `bm --version`, then
   `uvx --prerelease=allow basic-memory --version`. If no launcher resolves, report the CLI status as
   unavailable and continue with MCP/config checks. The plugin hooks can still use
   their uv-managed environment.

2. **Configuration.** Read the `basicMemory` block with the hooks' precedence.
   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 per key. Report the result, noting when
   a value comes from the user-level block versus the project:
   - From the `basicMemory` block: `primaryProject` (or note none is pinned, the
     listed default or sole project is selected explicitly), `secondaryProjects` (team/shared read sources),
     `teamProjects` (share targets for `/basic-memory:bm-share`), `captureFolder`
     (default `sessions`), `rememberFolder` (default `bm-remember`),
     `preCompactCapture` mode (default `extractive`), `sessionProfile` (default
     `general`), `repository` (coding profile only), `captureEvents` (default
     `true`).
   - From the **root** settings object (not `basicMemory`): whether `outputStyle` is
     `basic-memory`, i.e. whether the capture reflexes are on.

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