Set up Basic Memory for Codex at user or project level by mapping a Basic Memory project and seeding schemas.

AGPL-3.0Auto-check passedDevelopment

Install Bm Setup

skills CLI
$ npx skills add basicmachines-co/basic-memory --skill bm-setup -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install basicmachines-co/basic-memory bm-setup --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/codex/skills/bm-setup .claude/skills/bm-setup && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
bm-setup
GitHub stars
4.1k
Token cost
~2.4k tokens
SKILL.md length
1,231 words
Files
3 (incl. assets)
Skills in repo
49
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Set up Basic Memory for Codex at user or project level by mapping a Basic Memory project and seeding schemas.

  • Works in 4 steps: Prefer MCP: call list_memory_projects. → If MCP tools are not available, run… → If neither works, stop and tell the user… → …
  • Development work in your project
  • SKILL.md covers Preconditions, Interview, Apply and Seed Schemas, plus 1 more section
  • Calls uvx

What it does

Bm Setup is an agent skill from basicmachines-co/basic-memory. Set up Basic Memory for Codex at user or project level by mapping a Basic Memory project and seeding schemas.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including assets (for example `agents/openai.yaml`).

It sits in Development. It works with Model Context Protocol and Git. The repository describes itself as: AI conversations that actually remember. Never re-explain your project to your AI again. Join our Discord: https://discord.gg/tyvKNccgqN. The licence is AGPL-3.0.

When your agent uses it

  • Development work in your project

Example prompts

  • “/bm-setup”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Prefer MCP: call list_memory_projects.
  2. If MCP tools are not available, run basic-memory --version or bm --version.
  3. If neither works, stop and tell the user to install Basic Memory and connect the
  4. List available projects before the interview. Include cloud/local source,

What it can do on your machine

Read from SKILL.md and the folder at commit 6982cfc. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • uvx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uvx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bm Setup loads about 2.4k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 1,231 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from basicmachines-co/basic-memory at commit 6982cfc, republished under its AGPL-3.0 licence (© basicmachines-co). 1,231 words, ~2,416 tokens.

Download SKILL.mdSave it as .claude/skills/bm-setup/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
bm-setup
description
Set up Basic Memory for Codex at user or project level by mapping a Basic Memory project and seeding schemas.

Basic Memory for Codex Setup

Set up the current repo so Codex can orient from Basic Memory and checkpoint work back into it. Keep the interview short, but always ask before choosing where data will be written.

Preconditions

Confirm Basic Memory is reachable before changing files:

  1. Prefer MCP: call list_memory_projects.
  2. If MCP tools are not available, run basic-memory --version or bm --version.
  3. If neither works, stop and tell the user to install Basic Memory and connect the MCP server. The plugin bundles an .mcp.json that starts uvx --prerelease=allow basic-memory mcp.
  4. List available projects before the interview. Include cloud/local source, workspace, qualified name, and project id when available.

Interview

Ask the user to choose the project mapping. Do not infer write targets from the repo, default project, current directory, or previous local state.

  • config level: user-level ~/.codex/basic-memory.json or project-level .codex/basic-memory.json. Ask explicitly and recommend user level by default. Project settings override user settings key by key.
  • storage mode: cloud, local, or mixed. Prefer the user's stated mode over any CLI default.
  • focus: code/dev, research, writing, planning, or mixed.
  • sessionProfile: coding or general. Recommend coding for code/dev. For mixed use, ask whether this repository should capture Git and pull-request context. Do not infer coding merely because the current directory is a Git checkout.
  • primaryProject: an existing Basic Memory project or a new one to create.
  • secondaryProjects: optional read-only projects for session-start context.
  • teamProjects: optional share targets for bm-share.
  • captureFolder: default codex/<repo-dir>, derived from the Git top-level directory. Ask only when the user wants an explicit override.
  • rememberFolder: default codex/remember.
  • placementConventions: a short note about where decisions, tasks, and research notes should land. Default decisions to codex/decisions so Codex-authored memory stays under one tree.
  • checkpointOnCompact: whether post-compaction SessionStart asks Codex to run bm-checkpoint. Default to true; an explicit JSON boolean false opts out.
  • captureEvents: whether to record lifecycle-event envelopes in the local hook inbox. Default to true; an explicit JSON boolean false opts out.
  • MCP approvals: ask the user to choose exactly one of these two modes:
    1. Keep Codex's default approval behavior. This requires no Codex config change.
    2. Pre-approve eligible tools from the Basic Memory MCP server. This sets default_tools_approval_mode = "approve" only for Basic Memory. Do not offer a per-tool or write-only trust profile. Explain that server trust changes Codex's approval UX but does not grant Basic Memory access to any new workspace, project, or files. Codex still requires approval for tools that advertise a destructive annotation, including Basic Memory's write, edit, and delete tools.

For the coding session profile, verify the current directory is inside a Git repository. Resolve a stable repository identifier such as owner/name from the current GitHub repository or origin remote, show it to the user, and ask for confirmation. Do not guess when the remote is missing or ambiguous. Explain that coding checkpoints store structured repository, branch, SHA, working-directory, and optional pull-request metadata in Basic Memory.

Explain the capture tradeoff before asking: enabled capture adds a local event trail that stays queued until bm hook flush archives it locally. It never creates knowledge-graph notes or writes to team projects. The default is enabled; an explicit JSON boolean false disables it, and malformed values fail closed.

If there are duplicate names, show qualified names and ask the user which one to use. Prefer qualified project names or project ids for cloud projects. Never pick between cloud and local variants without confirmation.

For a new or empty project, suggest a light convention instead of creating empty folders. For an existing project, inspect list_directory and a few notes before summarizing the real convention.

Apply

After confirming the plan, write the shared settings to the chosen user-level or project-level file:

json
{
  "basicMemory": {
    "primaryProject": "<project-ref>",
    "secondaryProjects": [],
    "projectMode": "cloud",
    "teamProjects": {},
    "focus": "<focus>",
    "sessionProfile": "<general-or-coding>",
    "rememberFolder": "codex/remember",
    "recallTimeframe": "7d",
    "checkpointOnCompact": true,
    "captureEvents": true,
    "placementConventions": "Put decisions in codex/decisions/ and work checkpoints in codex/<repo-dir>/."
  }
}

Omit captureFolder to use codex/<repo-dir>; persist it only for an explicit override. Preserve unrelated keys if the chosen file already exists. Include projectMode when the user chose cloud, local, or mixed routing. Always persist checkpointOnCompact and captureEvents as JSON booleans. These files are intentionally Codex-specific; do not write .claude/settings.json.

For a user-level coding setup, omit sessionProfile from the shared user file and keep both the coding profile and confirmed repository identifier in the project file so neither can affect other repositories:

json
{
  "basicMemory": {
    "sessionProfile": "coding",
    "repository": "owner/name"
  }
}

For a project-level setup, add repository to the shared settings in that same project file.

Persist sessionProfile explicitly in the chosen file, except for a user-level coding setup where it belongs in the project file alongside repository. Persist repository only for the coding profile, after the user confirms it. A coding setup is incomplete without a repository identifier because the coding_session schema requires queryable Git identity fields.

Show full SKILL.md (477 more words)Show less
Apply MCP Approval Choice

The approval choice belongs in ~/.codex/config.toml, not .codex/basic-memory.json.

If the user keeps Codex's default approval behavior, do not change ~/.codex/config.toml.

If the user chooses to pre-approve eligible Basic Memory tools, inspect the existing Codex configuration and identify which Basic Memory server entry is active:

  • For the marketplace plugin, use:

    toml
    [plugins."codex@basic-memory".mcp_servers.basic-memory]
    default_tools_approval_mode = "approve"
  • For a standalone MCP server, add the setting to its existing table:

    toml
    [mcp_servers.basic-memory]
    default_tools_approval_mode = "approve"

If both entries exist and the active route is unclear, ask the user which one Codex should use. Do not set both silently. Before editing the user-level Codex configuration, show the exact change and get explicit confirmation. Preserve all unrelated TOML keys and never create a duplicate table. If the file cannot be edited safely, provide the exact applicable snippet as a pending setup step.

This server-scoped setting reduces prompts for eligible tools without weakening Codex's global approval policy. It cannot suppress Codex's mandatory approval for MCP tools that advertise a destructive annotation, so Basic Memory writes, edits, and deletes may still prompt. Do not set approval_policy = "never" or change sandbox settings. Tell the user to start a new Codex thread after the config change. Managed organization policy may impose additional approvals.

Seed Schemas

Read the schema files from <plugin-root>/schemas/. This skill lives at <plugin-root>/skills/bm-setup/SKILL.md, so the schemas are two directories up.

Seed the session schema relevant to the selected profile into the chosen primaryProject if it does not already exist:

  • coding-session.md for sessionProfile: coding
  • codex-session.md for sessionProfile: general

Then seed these schemas for both profiles:

  • decision.md
  • task.md

These schemas cover notes Codex writes directly. Lifecycle envelopes are not notes: bm hook flush archives that operational trace locally, so there is no projected session or tool-ledger schema to seed.

Use write_note with directory="schemas", note_type="schema", schema frontmatter as metadata, and the markdown body as content. Do not paste the YAML frontmatter into content.

Before seeding schemas, restate the exact target project and ask for confirmation if it differs from the user's selected primary project or if routing is ambiguous.

Verify

Before closing, prove the mapping works:

  • Search the primary project for type=schema with page size 10. For a coding setup, confirm the Coding Session schema is present.
  • Search one shared project for open decisions if shared projects were configured.
  • Run basic-memory hook status --harness codex --project-dir <repo-root> (using bm or uvx --prerelease=allow basic-memory if needed). Confirm that it finds this repo's settings, reports the selected project, session profile, repository, and intended checkpoint-prompt and capture states. Its inbox counts are shared across harnesses.
  • If any check errors, fix the project ref or hook launcher before finishing.

Finish with the project mapping, schemas seeded or skipped, checkpoint prompt, capture choice, MCP approval mode, shared inbox status, and the verification result. Tell the user that plugin hooks need to be reviewed and trusted in Codex before they run.

© basicmachines-co, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (assets) in plugins/codex/skills/bm-setup of basicmachines-co/basic-memory.

  • SKILL.md
  • agents/openai.yaml
  • assets/icon.svg

Open the folder on GitHubat commit 6982cfc

Compare with similar skills

Bm Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Bm Setup compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bm Setup this skillbasicmachines-co/basic-memory4.1k—~2.4kAutomated safety check: PassAGPL-3.0
Cut Releasespiculedata/saiku1.3k—~502Automated safety check: PassApache-2.0
Liveagent Code ReviewStack-Cairn/LiveAgent2.2k—~2kAutomated safety check: PassMIT
Zhtw Conventionssysprog21/zhtw-mcp488—~2kAutomated safety check: PassMIT
Close Task Commit Push PRdevoxx/DevoxxGenieIDEAPlugin684—~1kAutomated safety check: NotesMIT
Git Releasewesammustafa/opencode-primer397—~409Automated safety check: PassMIT

Similar skills

  • Cut Release

    spiculedata/saiku

    Cut a Saiku release via Gitflow — version bump, release branch, PR to main, tag, back-merge, and post-release chores.

    1.3k GitHub stars~502 tokensUpdated today
    DevelopmentAuto-check passed
  • Liveagent Code Review

    Stack-Cairn/LiveAgent

    Review an open GitHub pull request or the current local branch and working tree with parallel, independent reviewers and evidence-based validation.

    2.2k GitHub stars~2k tokensUpdated today
    DevelopmentAuto-check passed
  • Zhtw Conventions

    sysprog21/zhtw-mcp

    The zhtw-mcp conventions no gate enforces - the register a comment, a commit message and a PR reply are written in, where Chinese belongs in the tree and where it does not, the untracked working…

    488 GitHub stars~2k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Close Task Commit Push PR

    devoxx/DevoxxGenieIDEAPlugin

    Close the active backlog task (detected from branch name), commit all changes, push to remote, and open a pull request.

    684 GitHub stars~1k tokensUpdated 8 days ago
    DevelopmentAuto-check: notes
  • Git Release

    wesammustafa/opencode-primer

    Draft release notes from merged PRs, propose a semver bump, and emit a copy-pasteable gh release create command.

    397 GitHub stars~409 tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • E2b Sandbox

    agent-sandbox/agent-sandbox

    Create, manage, and use E2B sandboxes — run commands, manage files, use git, persist state, and configure networking.

    218 GitHub stars~2.6k tokensUpdated 17 days ago
    DevelopmentAuto-check passed

More from basicmachines-co/basic-memory

All 49 skills in this repo
  • cmux Settings Editor

    basicmachines-co/basic-memory

    Views, sets, unsets and validates cmux settings in ~/.config/cmux/cmux.json with a helper script that checks keys against the schema.

    4.1k GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • cmux Window and Pane Control

    basicmachines-co/basic-memory

    End-user control of cmux topology and routing (windows, workspaces, panes/surfaces, focus, moves, reorder, identify, trigger flash). Use when automation needs…

    4.1k GitHub starsUsed in 2 repos~842 tokens
    Auto-check passed
  • Cmux Markdown Viewer Panel

    basicmachines-co/basic-memory

    Opens markdown files in a formatted cmux panel beside the terminal that re-renders on every change, handy for plans and task lists.

    4.1k GitHub starsUsed in 2 repos~527 tokens
    Auto-check passed
  • cmux Workspace Scoping

    basicmachines-co/basic-memory

    Keeps agent actions scoped to the cmux workspace and terminal that invoked it, and lays out pane and surface commands that avoid disrupting the user's own focus.

    4.1k GitHub starsUsed in 2 repos~1.7k tokens
    Auto-check passed
  • Basic Memory Repo Images

    basicmachines-co/basic-memory

    Produces PR, changelog and two-week retro images for the Basic Memory repository from evidence in PR bodies, saved to fixed paths under docs/assets/infographics.

    4.1k GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Logfire Instrumentation

    basicmachines-co/basic-memory

    Adds Pydantic Logfire tracing, logging and metrics to Python, JavaScript or TypeScript and Rust projects, with the correct setup order and library extras.

    4.1k GitHub stars~2.3k tokensUpdated today
    Auto-check passed

Categories

Questions about Bm Setup

What does Bm Setup do?

Set up Basic Memory for Codex at user or project level by mapping a Basic Memory project and seeding schemas. Bm Setup is an agent skill from basicmachines-co/basic-memory. Set up Basic Memory for Codex at user or project level by mapping a Basic Memory project and seeding schemas.

When should I use Bm Setup?

Bm Setup fits situations like: development work in your project.

How do I install Bm Setup in Claude Code?

Run `npx skills add basicmachines-co/basic-memory --skill bm-setup -a claude-code`. Or copy the skill folder (plugins/codex/skills/bm-setup in basicmachines-co/basic-memory) into .claude/skills/bm-setup in your project. Claude Code loads it when a task matches its description.

How do I install Bm Setup in Codex?

Run `npx skills add basicmachines-co/basic-memory --skill bm-setup -a codex`. Or copy the skill folder (plugins/codex/skills/bm-setup in basicmachines-co/basic-memory) into .agents/skills/bm-setup in your project. Codex loads it when a task matches its description.

Can I use Bm Setup in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add basicmachines-co/basic-memory --skill bm-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bm-setup, .gemini/skills/bm-setup, .github/skills/bm-setup and .opencode/skills/bm-setup in your project.

What does Bm Setup need to run?

Going by SKILL.md and its folder, Bm Setup needs the command-line tools its instructions call (uvx).

Does Bm Setup access the network?

SKILL.md contains no URLs. Its commands use uvx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Bm Setup safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Bm Setup use?

Bm Setup is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bm Setup use?

About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Bm Setup?

Skills that share tags, products or a category with Bm Setup: Cut Release (spiculedata/saiku, 1.3k stars), Liveagent Code Review (Stack-Cairn/LiveAgent, 2.2k stars), Zhtw Conventions (sysprog21/zhtw-mcp, 488 stars) and Close Task Commit Push PR (devoxx/DevoxxGenieIDEAPlugin, 684 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bm Setup?

basicmachines-co (a GitHub organization) maintains it in basicmachines-co/basic-memory, which has 4,107 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 7, 2026.

Source: basicmachines-co/basic-memory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.