brmem

Stores and retrieves branch-scoped text entries in Git via the brmem CLI.

2|Updated Apr 2, 2026
One-click install
npx skills add https://github.com/nseng-ai/ns --skill brmem-nseng-ai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: brmem
Source: https://github.com/nseng-ai/ns/tree/main/skills/incubating/brmem
Command: npx skills add https://github.com/nseng-ai/ns --skill brmem-nseng-ai

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Agents and developers lose scratch notes, session context, and branch-specific state when switching branches or ending sessions. brmem keeps small text entries attached to a Git branch without polluting the working tree, commits, PR comments, or issues. ## Core Features & Use Cases - Branch-scoped storage: Put, get, check, list, export, and delete text entries tied to a specific Git branch, organized into a base namespace or named namespaces. - Cross-branch operations: Copy entries between branches with dry-run previews and glob filtering, and garbage-collect snapshots for deleted branches. - Prompt plugin resolution: Resolve repo-level .ns/prompts/ or XDG global prompt files for skills that support customization. - Use Case: While working on feature/add-cache, store a design note with brmem put notes/add-cache.md --file note.md, then retrieve it days later in a new session with brmem get notes/add-cache.md. ## Quick Start Ask the agent to store the current session's notes into branch memory for the current Git branch using brmem, then list what is stored.

Frequently Asked Questions about brmem

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I store notes attached to a Git branch?

Use brmem put with an entry key and file, for example brmem put notes/design.md --branch feature/x --file note.md. Entries are stored in branch memory, not as working-tree files or commits, and can be retrieved later with brmem get.

How do I copy branch memory between Git branches?

Use brmem copy with exactly one scope: --base for the base namespace or --namespace <ns> for a named one, plus --from-branch and --to-branch. Preview with --dry-run first, and add --overwrite only when replacing destination entries is intentional.

What is the difference between base and named namespaces in brmem?

The base namespace holds ad-hoc scratch entries when --namespace is omitted, while named namespaces are workflow-owned buckets that prevent unrelated workflows from colliding. Namespace names must be single path segments with no slashes.

Can brmem store secrets or large binary files?

No. brmem is durable and inspectable, not secret, so credentials and tokens must not be stored. It accepts UTF-8 text only, rejects likely binary content, and caps entries at 1 MiB unless --force is explicitly supplied.

Why does brmem check exit 0 when an entry is missing?

Default check is a presence probe that exits 0 for both present and absent entries, reporting data.present as true or false. Use --require to make absence exit 1 when later work depends on the entry existing.