basemind 0.21.1

Full AI context layer over MCP — tree-sitter code-map, document RAG (PDF/Office/HTML/email + OCR + reranker), shared agent memory, on-demand web crawl, git history + blame + per-symbol diff. 300+ languages, 10+ coding-agent harnesses, content-addressed Fjall + LanceDB.
---
name: bm-statusline
description: Enable the basemind status line in your Claude Code user settings (one-time setup).
---

# bm-statusline — enable the basemind status line

Wire the basemind status line into the user's global Claude Code settings, then confirm it
renders.

## When to use

Run this once per machine to enable the basemind status line in Claude Code. Re-run only if the
bar goes blank after an unusual settings edit.

## How to use

Invoke `/bm-statusline`. Use your tools to do this directly — do not ask the user to hand-edit
any files.

1. **Confirm the plugin is installed.** Check that at least one of these exists:
   - `${CLAUDE_PLUGIN_ROOT}/.claude-plugin/statusline.sh` (if that var is set)
   - `~/.claude/plugins/marketplaces/basemind/.claude-plugin/statusline.sh`
   - a match of
     `~/.claude/plugins/cache/basemind/basemind/*/.claude-plugin/statusline.sh`

   If none exists, tell the user the basemind plugin isn't installed and stop.

2. **Update `~/.claude/settings.json`** (treat a missing file as `{}`). Set its
   `statusLine` key to this **version-independent resolver** — do NOT hardcode a
   version-pinned path, which breaks on the next basemind update when the old
   version dir is pruned:

   ```json
   { "type": "command",
     "command": "bash -c 's=$(ls -d \"$HOME\"/.claude/plugins/cache/basemind/basemind/*/.claude-plugin/statusline.sh 2>/dev/null | sort -V | tail -1); [ -f \"$s\" ] || s=\"$HOME/.claude/plugins/marketplaces/basemind/.claude-plugin/statusline.sh\"; [ -f \"$s\" ] && exec bash \"$s\" || printf \"%s\" \"◆ basemind: run /bm-statusline\"'",
     "refreshInterval": 5 }
   ```

   How it resolves, in order: the **highest-versioned** cached copy (`sort -V`, not
   mtime — an older dir touched more recently must never win; this also makes the bar
   track the newest version the moment `/plugin update` installs it), else the
   marketplace clone, else a one-line hint so the bar is never blank. It re-resolves
   at every render, so version bumps never break it and script improvements land
   automatically. Copy the `command` string
   **verbatim** (it self-resolves — `$HOME` is expanded by the `bash -c` it runs
   under, not the settings field). Preserve every other key and verify the file is
   still valid JSON afterward.

3. **Confirm it renders** by running the resolver once:

   ```bash
   printf '{"workspace":{"current_dir":"%s"}}' "$PWD" | bash -c 's=$(ls -d "$HOME"/.claude/plugins/cache/basemind/basemind/*/.claude-plugin/statusline.sh 2>/dev/null | sort -V | tail -1); [ -f "$s" ] || s="$HOME/.claude/plugins/marketplaces/basemind/.claude-plugin/statusline.sh"; [ -f "$s" ] && exec bash "$s" || printf "%s" "◆ basemind: run /bm-statusline"'
   ```

4. Tell the user it's enabled, and that any other running sessions need a
   relaunch to pick it up.