# Bm Orient

Orient Claude from Basic Memory before substantial repo work by reading active tasks...

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

## Description

Orient Claude from Basic Memory before substantial repo work by reading active tasks, open decisions, recent checkpoints, and repo conventions. Use when resuming old work or when the user asks where things stand.

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

# Orient From Basic Memory

Use this before substantial work in a repo, before resuming an old thread, or when
the user asks where things stand. The SessionStart hook already briefs the start
of a session; this is the deliberate mid-session version with deeper reads.

## Steps

1. 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. Use `primaryProject`,
   `secondaryProjects`, `recallTimeframe`, `sessionProfile`, `repository`, and
   `placementConventions`. If no config is present, continue against the default
   Basic Memory project and mention that setup has not been run. Scope queries to
   `primaryProject` by passing it as `project`, including when it is an
   `external_id` UUID.

2. Query the primary project with `bm_search`:
   - active tasks: `filters={"type": "task", "status": "active"}`
   - open decisions: `filters={"type": "decision", "status": "open"}`
   - recent sessions: `filters={"type": "session"}`, with
     `since=<recallTimeframe>`
   - recent coding sessions: `filters={"type": "coding_session",
     "repository": "<configured repository>"}`, with `since=<recallTimeframe>`, when
     `sessionProfile` is `coding`

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