Agent skill

Memory Curate

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

Curate the Basic Memory knowledge graph: find orphan notes and suggest links, propose typed relations, merge duplicates, audit tags and folders, and build hub notes.

AGPL-3.0Auto-check passedKnowledge Management

Install Memory Curate

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

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

GitHub CLI
$ gh skill install basicmachines-co/basic-memory memory-curate --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/skills/memory-curate .claude/skills/memory-curate && 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
memory-curate
GitHub stars
4.1k
Token cost
~1.9k tokens
SKILL.md length
764 words
Files
1
Skills in repo
49
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Curate the Basic Memory knowledge graph: find orphan notes and suggest links, propose typed relations, merge duplicates, audit tags and folders, and build hub notes.

  • Works in 7 steps: Find Orphan Notes → Suggest Typed Relations → Identify Similar / Duplicate Notes → …
  • Improve a knowledge base as notes accumulate
  • SKILL.md covers When to Use, Curation Capabilities, Curation Workflows and Best Practices, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Memory Curate is an agent skill from basicmachines-co/basic-memory. Curate the Basic Memory knowledge graph: find orphan notes and suggest links, propose typed relations, merge duplicates, audit tags and folders, and build hub notes. Use to organize, connect, and improve a knowledge base as notes accumulate.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Knowledge Management, covering Knowledge graphs and Knowledge bases. 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

  • Improve a knowledge base as notes accumulate
  • Tasks that involve Knowledge graphs
  • Tasks that involve Knowledge bases

Example prompts

  • “/memory-curate”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Find Orphan Notes
  2. Suggest Typed Relations
  3. Identify Similar / Duplicate Notes
  4. Folder Organization Review
  5. Tag Consistency
  6. Create Index / Hub Notes
  7. Enrich Sparse Notes

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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

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

  • Network

    No URLs in SKILL.md.

    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

Memory Curate loads about 1.9k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 764 words of instructions outside code blocks.

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

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). 764 words, ~1,872 tokens.

Download SKILL.mdSave it as .claude/skills/memory-curate/SKILL.md (or your agent's skills folder).
name
memory-curate
description
Curate the Basic Memory knowledge graph: find orphan notes and suggest links, propose typed relations, merge duplicates, audit tags and folders, and build hub notes. Use to organize, connect, and improve a knowledge base as notes accumulate.

Memory Curate

Maintain a healthy, well-connected knowledge graph. As notes accumulate, it pays to periodically organize, link, and curate the knowledge base so isolated notes become a connected graph.

This skill curates the knowledge graph — the notes, relations, and tags that make up the knowledge base. (For hygiene on an agent's own memory files — splitting bloated files, pruning stale entries — see memory-defrag.)

When to Use

  • Asked to organize, clean up, or improve the knowledge base
  • Asked to find connections between notes, or what isn't linked yet
  • Orphan or unlinked notes are mentioned
  • Asked about duplicate or similar notes
  • Asked for help with folder organization or tag consistency
  • Phrases like "help me organize", "find related notes", "what's not linked", "clean up my notes"

Curation Capabilities

1. Find Orphan Notes

Orphans have no relations to other notes — they're islands in the graph.

python
# List notes, then read each to inspect its Relations section
search_notes(query="*", page_size=50)
read_note(identifier="note-to-check")
# Orphans have an empty (or missing) Relations section

If the bm CLI is available, bm orphans lists notes with no relations in one call.

What to do with orphans:

  • Suggest relations based on content similarity
  • Ask whether they should connect to existing topics
  • Propose hub notes to gather related orphans (see capability 6)
2. Suggest Typed Relations

Analyze a note's content and propose meaningful connections.

python
read_note(identifier="note-to-analyze")
# Pull out key terms, then search for related notes
search_notes(query="key terms from the note")

Suggest relations based on shared topics, complementary content (problem/solution, question/answer), sequence (part 1 → part 2), or hierarchy (parent concept → detail).

Relation-type vocabulary:

  • relates_to — general topical connection
  • extends — builds upon or elaborates
  • implements — realizes a concept or spec
  • depends_on — requires understanding of
  • part_of — hierarchy or composition
  • contrasts_with — presents an alternative view
  • inspired_by — source of insight
  • enables — makes something possible

Custom relation types are fine — use whatever verb is descriptive.

Add a confirmed relation with edit_note:

python
edit_note(
    identifier="API Design Decisions",
    operation="insert_after_section",
    section="Relations",
    content="- depends_on [[Rate Limiter]]",
)
3. Identify Similar / Duplicate Notes

Find notes that may cover the same ground.

python
search_notes(query="topic keywords")
# Compare results for: similar titles, overlapping observations,
# shared tags, close-together timestamps

Actions for duplicates:

  • Merge into a single comprehensive note, then redirect the loser with a relation
  • Link with supersedes / updates when one revises the other
  • Differentiate by adding context that clarifies each note's distinct focus
python
# Point an older note at the one that replaces it
edit_note(
    identifier="DB Schema v1",
    operation="insert_after_section",
    section="Relations",
    content="- updates [[DB Schema v2]]",
)
4. Folder Organization Review
python
list_directory(dir_name="/", depth=3)

Look for overcrowded folders, single-note folders, inconsistent naming, and notes that belong elsewhere. Suggest grouping related notes into topic folders, adding subfolders for large categories, and a consistent naming convention. Move misplaced notes with move_note. By default the permalink stays the same after a move, so links keep resolving. Projects with update_permalinks_on_move enabled rewrite it from the new path.

python
move_note(
    identifier="API Design Decisions",
    destination_path="architecture/api-design-decisions.md",
)
5. Tag Consistency
python
search_notes(query="*", page_size=100)
# Inspect tag patterns across results

Look for:

  • Variant tags — architecture vs arch; pick one and standardize
  • Unused tags — present on a single note, no longer carrying weight
  • Over-used generic tags — so broad they don't aid discovery
  • Missing tags — relevant notes lacking an obvious tag
6. Create Index / Hub Notes

After finding a cluster of related notes, build a navigation hub.

python
write_note(
    title="Architecture Decisions Index",
    directory="indexes",
    tags=["architecture", "index"],
    note_type="index",
    content="""# Architecture Decisions Index

A hub linking architecture-related decisions and patterns.

## Decisions
- [[Database Selection Decision]]
- [[API Design Patterns]]
- [[Authentication Architecture]]

## Patterns
- [[Repository Pattern]]
- [[Async Client Pattern]]

## Observations
- [index] Central hub for architecture knowledge #navigation

## Relations
- indexes [[Architecture]]""",
)
Show full SKILL.md (324 more words)Show less
7. Enrich Sparse Notes

Find notes lacking structure and fill them in.

python
read_note(identifier="sparse-note")

If the note is missing an Observations section, suggest categories. If it has no Relations, suggest links. If it has no tags, suggest relevant ones. If it lacks context, suggest adding background. Apply with edit_note.

Curation Workflows

Scale the pass to the request. A health check reports orphans, likely duplicates, recent activity (recent_activity), and folder distribution. A deep session works through the capabilities above in whatever order the findings suggest. A topic pass maps one subject with search_notes and build_context, fills the gaps it finds, and ends with a hub note.

Best Practices

  1. Work incrementally. Don't reorganize everything at once.
  2. Confirm before changing. Always ask before moving, merging, or editing notes.
  3. Preserve permalinks. Changing a permalink breaks inbound memory:// links. Moves keep the permalink by default (unless the project enables update_permalinks_on_move).
  4. Explain suggestions. Say why a relation or merge makes sense.
  5. Respect the existing system. Enhance the user's organization — don't impose a new taxonomy.
  6. Show the graph. Use build_context to help the user see how notes connect.

Example Conversations

User: "Help me organize my notes"

The assistant:

  1. Runs a health check on the knowledge base
  2. Reports: "You have 47 notes. I found 12 orphans and 3 potential duplicates."
  3. Asks: "Want to start by connecting the orphans, or review the duplicates first?"

User: "Find notes that should link to my API design note"

The assistant:

  1. Reads the API design note
  2. Searches for related content
  3. Suggests: "5 notes could relate —
    • 'REST Best Practices' → relates_to
    • 'Authentication Flow' → implements
    • 'Rate Limiting Decision' → extends Should I add any of these relations?"

User: "Are there notes on similar topics?"

The assistant:

  1. Analyzes titles and content for clusters
  2. Reports: "Possible overlaps —
    • 'Auth Flow' and 'Authentication Design' cover similar ground
    • 'DB Schema v1' and 'DB Schema v2' likely want a supersedes relation Want to review either?"

© 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

Just SKILL.md in skills/memory-curate of basicmachines-co/basic-memory.

Open the folder on GitHubat commit 6982cfc

Compare with similar skills

Memory Curate 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.

Memory Curate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Memory Curate this skillbasicmachines-co/basic-memory4.1k—~1.9kAutomated safety check: PassAGPL-3.0
LLM Wiki Knowledge GraphEgonex-AI/Understand-Anything85k1 repos~1.5kAutomated safety check: PassMIT
Knowledge Graphnimbalyst/nimbalyst1.8k—~3.5kAutomated safety check: PassMIT
Knowledge Setupnimbalyst/nimbalyst1.8k—~1.8kAutomated safety check: PassMIT
My WikiNimaChu/my-wiki124—~674Automated safety check: PassMIT
Openloomi Memorymelandlabs/openloomi1k—~6kAutomated safety check: PassApache-2.0

Similar skills

  • LLM Wiki Knowledge Graph

    Egonex-AI/Understand-Anything

    Detects a Karpathy-pattern LLM wiki and builds an interactive knowledge graph with entities, implicit relationships and topic clusters.

    85k GitHub starsUsed in 1 repo~1.5k tokens
    Knowledge ManagementAuto-check passed
  • Knowledge Graph

    nimbalyst/nimbalyst

    Write a project's knowledge pages in Nimbalyst Pages -- record what people said and decided in the page it affects, keep typed pages for the things the team tracks (its own types, such as modules…

    1.8k GitHub stars~3.5k tokensUpdated yesterday
    Knowledge ManagementAuto-check passed
  • Knowledge Setup

    nimbalyst/nimbalyst

    Set up or check a project's knowledge pages in Nimbalyst Pages -- install the editable "How we write this wiki" guide page, define the team's own page types (and subtypes) and the named relations…

    1.8k GitHub stars~1.8k tokensUpdated yesterday
    Knowledge ManagementAuto-check passed
  • My Wiki

    NimaChu/my-wiki

    Work with a local My Wiki knowledge base, Dashboard, and knowledge graph.

    124 GitHub stars~674 tokensUpdated 21 days ago
    Knowledge ManagementAuto-check passed
  • Openloomi Memory

    melandlabs/openloomi

    openloomi Memory tools - search and manage the holistic context (people, projects, decisions, knowledge base, chat insights).

    1k GitHub stars~6k tokensUpdated 13 days ago
    Knowledge ManagementAuto-check passed
  • Hypatia

    MarchLiu/hypatia

    Interact with the Hypatia AI memory system using natural language.

    239 GitHub stars~7.9k tokensUpdated 8 days ago
    Knowledge ManagementAuto-check: notes

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

Questions about Memory Curate

What does Memory Curate do?

Curate the Basic Memory knowledge graph: find orphan notes and suggest links, propose typed relations, merge duplicates, audit tags and folders, and build hub notes. Memory Curate is an agent skill from basicmachines-co/basic-memory. Curate the Basic Memory knowledge graph: find orphan notes and suggest links, propose typed relations, merge duplicates, audit tags and folders, and build hub notes.

When should I use Memory Curate?

Memory Curate fits situations like: improve a knowledge base as notes accumulate; tasks that involve Knowledge graphs; tasks that involve Knowledge bases.

How do I install Memory Curate in Claude Code?

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

How do I install Memory Curate in Codex?

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

Can I use Memory Curate 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 memory-curate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/memory-curate, .gemini/skills/memory-curate, .github/skills/memory-curate and .opencode/skills/memory-curate in your project.

What does Memory Curate need to run?

SKILL.md names no scripts, command-line tools or credentials: Memory Curate is instructions for the agent only. Our summary lists: Python 3.

Does Memory Curate access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Memory Curate 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 Memory Curate use?

Memory Curate 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 Memory Curate use?

About 1.9k tokens (SKILL.md is roughly 7.5k 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 Memory Curate?

Skills that share tags, products or a category with Memory Curate: LLM Wiki Knowledge Graph (Egonex-AI/Understand-Anything, 85k stars), Knowledge Graph (nimbalyst/nimbalyst, 1.8k stars), Knowledge Setup (nimbalyst/nimbalyst, 1.8k stars) and My Wiki (NimaChu/my-wiki, 124 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Memory Curate?

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.