Agent skill

Bm Checkpoint

by basicmachines-co in basicmachines-co/basic-memory

Create an immutable Codex handoff in Basic Memory and return an exact bm-orient resume command.

AGPL-3.0Auto-check passedAgent Workflows

Install Bm Checkpoint

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

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

GitHub CLI
$ gh skill install basicmachines-co/basic-memory bm-checkpoint --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-checkpoint .claude/skills/bm-checkpoint && 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-checkpoint
GitHub stars
4.1k
Token cost
~2.5k tokens
SKILL.md length
1,334 words
Files
3 (incl. assets)
Skills in repo
49
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Create an immutable Codex handoff in Basic Memory and return an exact bm-orient resume command.

  • Works in 3 steps: Before writing, search the configured… → Page through both searches, deduplicate,… → Add - continues [[Exact previous…
  • Agent Workflows work in your project
  • SKILL.md covers Gather, Write and Confirm
  • Calls git and codex

What it does

Bm Checkpoint is an agent skill from basicmachines-co/basic-memory. Create an immutable Codex handoff in Basic Memory and return an exact bm-orient resume command.

Its SKILL.md is about 2.5k 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 Agent Workflows. It works with 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

  • Agent Workflows work in your project

Example prompts

  • “/bm-checkpoint”

Workflow steps

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

  1. Before writing, search the configured primaryProject for both
  2. Page through both searches, deduplicate, and select the newest earlier
  3. Add - continues [[Exact previous checkpoint title]] under ## Relations.

What it can do on your machine

Read from SKILL.md and the folder at commit cb7407f. 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:

    • git
    • codex

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

  • Network

    No URLs in SKILL.md. Its commands use git, 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 Checkpoint loads about 2.5k tokens when it runs. Until then it costs about 27 tokens; SKILL.md has 1,334 words of instructions outside code blocks.

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

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 cb7407f, republished under its AGPL-3.0 licence (© basicmachines-co). 1,334 words, ~2,525 tokens.

Download SKILL.mdSave it as .claude/skills/bm-checkpoint/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
bm-checkpoint
description
Create an immutable Codex handoff in Basic Memory and return an exact bm-orient resume command.

Checkpoint Codex Work

Create a durable, immutable handoff note for current Codex work. Use this when the user asks to checkpoint, wrap up, hand off, remember the work state, or when the post-compaction SessionStart context requests the deliberate handoff.

Gather

Read ~/.codex/basic-memory.json, then the nearest project .codex/basic-memory.json; project keys override user keys:

  • primaryProject, default omitted
  • captureFolder, default codex/<git top-level directory name>
  • placementConventions, optional
  • sessionProfile, default general
  • repository, required when sessionProfile is coding

Apply the bm-writing skill before drafting the note.

Gather repo evidence:

  • the original objective that started the thread and why it mattered
  • the latest user intent, including corrections or scope changes that supersede the original objective
  • the approach taken and why it solves the problem
  • the current system state and practical impact
  • tradeoffs, sharp edges, useful simplifications, and intentionally parked work
  • git status --short
  • current branch
  • repository root and current working directory
  • current Git SHA
  • current pull request number, title, URL, state, base, and head when one exists
  • changed files you touched
  • tests or checks actually run
  • failures or skipped checks
  • decisions made in this thread
  • unresolved blockers
  • next action
  • current username, hostname, and timestamp
  • host-provided session_id, agent, codex_turn_id, trigger, and model values from the checkpoint request, when present

Use direct, read-only evidence for repository and pull-request state. Do not claim a test passed unless you ran it or the user supplied the result. Treat host-provided session metadata as opaque identity data. Preserve exact non-empty values; never infer or rewrite them. For older requests supplying only codex_session_id, use that exact value as session_id with agent: codex. Do not emit the legacy field on new checkpoints.

Write

A checkpoint is a durable handoff, not a status dump or commit-by-commit changelog. Tell the story for a human or agent returning later. Treat it as a snapshot plus pointers to authoritative artifacts, not a replacement for tasks, decisions, plans, issues, pull requests, commits, diffs, checked-in docs, or source files.

Every invocation creates a new checkpoint. Never edit, replace, or append to an earlier checkpoint, even when the topic is unchanged.

Use the title:

Codex checkpoint - <UTC YYYY-MM-DDTHH-MM-SSZ> - <short topic>

The UTC timestamp is part of the immutable checkpoint identity and avoids filename-unsafe colons. If write_note reports a title collision, retry with the smallest available numeric suffix such as - 2. Never resolve a collision by modifying the existing note.

Call write_note with project=<configured primaryProject>, overwrite=False, and output_format="json" on every attempt. When primaryProject is omitted, leave the project argument unset so Basic Memory uses its default project. The frontmatter project field is descriptive metadata and does not replace the tool's project argument. The explicit non-overwrite flag must win even when the user's write_note_overwrite_default setting is true. Only accept a successful result with action: created; treat action: conflict or NOTE_ALREADY_EXISTS as the title collision above, and stop on any other action or error.

Write a note to Basic Memory. For the general profile:

  • title: the timestamped checkpoint title above
  • directory: configured captureFolder
  • tags: ["codex", "checkpoint"]
  • frontmatter:
    • type: codex_session
    • status: open
    • project: <primaryProject if known>
    • cwd: <current cwd>
    • started: <current timestamp>
    • username: <current username>
    • hostname: <current hostname>
    • capture: deliberate
    • agent: codex
    • session_id: <host-provided Codex session id>, when supplied
    • codex_turn_id: <host-provided Codex turn id>, when supplied
    • trigger: <host-provided checkpoint trigger>, when supplied
    • model: <host-provided model slug>, when supplied

For the coding profile, write type: coding_session and use the same common frontmatter plus these schema-required fields:

  • repository: <confirmed stable repository identifier>
  • repo_root: <git rev-parse --show-toplevel>
  • cwd: <current cwd>
  • branch: <git rev-parse --abbrev-ref HEAD>
  • git_sha: <git rev-parse HEAD>

When the current branch has a pull request, also add the typed optional fields pull_request_number, pull_request_title, pull_request_url, pull_request_state, pull_request_base, and pull_request_head. Resolve the pull request with a read-only GitHub query; omit those fields when no PR exists. Write the number as a quoted string, for example pull_request_number: "123", so exact metadata queries behave consistently across storage backends. Never infer or copy repository/PR identity only from conversation text. Stop if the required coding fields cannot be proven.

Show full SKILL.md (678 more words)Show less

When session_id is available, pair it with agent: codex for same-chat identity:

  1. Before writing, search the configured primaryProject for both codex_session and coding_session notes with metadata_filters={"agent": "codex", "session_id": "<exact host-provided id>"}. Also search legacy notes with metadata_filters={"codex_session_id": "<exact host-provided id>"}.
  2. Page through both searches, deduplicate, and select the newest earlier checkpoint by its valid started timestamp. Read it directly from primaryProject. Confirm the exact agent/session_id pair, or the exact legacy codex_session_id when shared identity is absent. Reject conflicting agent/session fields; a bare session ID is never cross-agent identity.
  3. Add - continues [[Exact previous checkpoint title]] under ## Relations.

Do not edit the previous immutable checkpoint to add a forward edge; Basic Memory backlinks make the chain navigable in both directions. If there is no verified earlier match, omit the lineage relation. Never infer same-chat lineage from repository, branch, topic, timestamps alone, or lifecycle envelope notes.

Begin the body with # <exact note title>.

Use these sections, omitting optional ones that add no value:

  • ## Summary: one concrete sentence that does not merely repeat the title
  • ## Story: original objective -> latest user intent -> approach -> current state and impact in substantive prose
  • ## Working State: separate durable state from machine-local or fragile state
  • ## Changed Files, when paths are useful for resuming
  • ## Verification, for checks actually run and their outcomes
  • ## References, for verified repository, commit, pull-request, issue, spec, or documentation links
  • ## Observations
  • ## Relations, when the thread has an obvious graph target

Prefer repository-relative paths in the body. Required absolute repo_root and cwd frontmatter remain machine-local evidence. Label dirty or untracked files, ignored files, active processes, dev servers, temporary directories, and local tool caches as machine-local or fragile when they matter to resumption. Do not present them as durable project state.

Make the note pointer-first:

  • name authoritative artifacts and include their stable identifiers or links
  • summarize only the context needed to understand why each pointer matters
  • use a relation for an existing graph note and a normal link or repository path for artifacts outside the graph
  • do not copy large plans, diffs, logs, or source files into the checkpoint

For GitHub-backed repository work, resolve the canonical repository URL with a read-only GitHub query. Render the current repository, current pushed commit, pull request, and any materially relevant GitHub issues or commits as Markdown links under ## References and where they appear in prose. Use the canonical URL returned by GitHub for pull requests and issues. Before linking a commit, verify that GitHub can resolve that SHA in the confirmed repository. If a commit is local or unpushed, keep the SHA as code, label it local or unpushed, and do not construct a GitHub link that may not exist. Do not turn an ambiguous bare issue number or SHA into a link without proving its repository.

Use observations to distill durable facts for structured recall rather than duplicating every narrative sentence:

  • [result] for concrete outcomes
  • [decision] for each decision made or preserved
  • [blocker] for each unresolved blocker
  • [next_step] for the one primary next action; include exactly one
  • [verification] or [changed_file] only when the item is itself important project memory, not merely supporting detail

Do not create separate Decisions, Blockers, or Next Action sections with plain bullets. Omit empty categories instead of writing placeholder text such as "None."

Relations are not observations. Put them under ## Relations using Basic Memory relation syntax, for example - relates_to [[Exact existing note title]]. Never write [relates_to] or a bare memory:// URL as an observation. Only add a relation when its target is an existing checkpoint, task, decision, spec, issue, or PR note. The verified same-chat continues edge is the checkpoint lineage relation; do not add a second generic relation to that same target.

Confirm

Reply with:

  1. one sentence summarizing what the checkpoint preserves
  2. the exact resume identifier selected from the successful JSON result
  3. the one primary next action
  4. exactly one fenced resume command as the final block:
text
$bm-orient "<exact returned resume identifier>"

Choose the first non-empty returned value in this order: permalink, file_path, then title. Use the returned value verbatim; never construct or guess a permalink or file path.

© 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-checkpoint of basicmachines-co/basic-memory.

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

Open the folder on GitHubat commit cb7407f

Compare with similar skills

Bm Checkpoint 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 Checkpoint compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bm Checkpoint this skillbasicmachines-co/basic-memory4.1k—~2.5kAutomated safety check: PassAGPL-3.0
Darwin Skill Optimizeralchaincyf/darwin-skill6.2k1 repos~4.7kAutomated safety check: PassMIT
CodeGraph Agent Evalcolbymchenry/codegraph73k—~950Automated safety check: PassMIT
Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills21k—~1.9kAutomated safety check: PassMIT
O2 Review Loopopenobserve/openobserve22k—~3.7kAutomated safety check: PassAGPL-3.0
Beads Task Memorygastownhall/beads28k—~1.2kAutomated safety check: PassMIT

Similar skills

  • Darwin Skill Optimizer

    alchaincyf/darwin-skill

    Scores SKILL.md files on a nine-dimension rubric, then improves them in a keep-or-revert loop with independent judge agents, test prompts, git history and human checkpoints.

    6.2k GitHub starsUsed in 1 repo~4.7k tokens
    Agent WorkflowsAuto-check passed
  • CodeGraph Agent Eval

    colbymchenry/codegraph

    Benchmarks how much CodeGraph helps a coding agent on a real repository, comparing runs with and without it for a chosen local or published version.

    73k GitHub stars~950 tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Neat-Freak Knowledge Closeout

    KKKKhazix/khazix-skills

    Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.

    21k GitHub stars~1.9k tokensUpdated 7 days ago
    Agent WorkflowsAuto-check passed
  • O2 Review Loop

    openobserve/openobserve

    Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.

    22k GitHub stars~3.7k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Beads Task Memory

    gastownhall/beads

    Tracks multi-session work with dependencies in the bd issue tracker so the agent can find ready tasks and recover its context after conversation compaction.

    28k GitHub stars~1.2k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Searches past Claude Code, Codex and Cursor sessions and summarizes what was worked on, tried or decided, using extraction scripts instead of reading raw logs.

    24k GitHub stars~3.1k tokensUpdated yesterday
    Agent WorkflowsAuto-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

Works with

Categories

Questions about Bm Checkpoint

What does Bm Checkpoint do?

Create an immutable Codex handoff in Basic Memory and return an exact bm-orient resume command. Bm Checkpoint is an agent skill from basicmachines-co/basic-memory. Create an immutable Codex handoff in Basic Memory and return an exact bm-orient resume command.

When should I use Bm Checkpoint?

Bm Checkpoint fits situations like: agent Workflows work in your project.

How do I install Bm Checkpoint in Claude Code?

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

How do I install Bm Checkpoint in Codex?

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

Can I use Bm Checkpoint 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-checkpoint -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-checkpoint, .gemini/skills/bm-checkpoint, .github/skills/bm-checkpoint and .opencode/skills/bm-checkpoint in your project.

What does Bm Checkpoint need to run?

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

Does Bm Checkpoint access the network?

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

Is Bm Checkpoint 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 Checkpoint use?

Bm Checkpoint 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 Checkpoint use?

About 2.5k tokens (SKILL.md is roughly 10k 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 Checkpoint?

Skills that share tags, products or a category with Bm Checkpoint: Darwin Skill Optimizer (alchaincyf/darwin-skill, 6.2k stars), CodeGraph Agent Eval (colbymchenry/codegraph, 73k stars), Neat-Freak Knowledge Closeout (KKKKhazix/khazix-skills, 21k stars) and O2 Review Loop (openobserve/openobserve, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bm Checkpoint?

basicmachines-co (a GitHub organization) maintains it in basicmachines-co/basic-memory, which has 4,115 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.