Memory Curate logo

Memory Curate

OrganizationPopular
basicmachines-co
memory-curate

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.

Overview

Publisherbasicmachines-co
Repositorybasic-memory
Skill namememory-curate
Stars
4K
Forks
283
Bundled files
Instructions only
LicenseAGPL-3.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by basicmachines-co on GitHub. Read the source before you install it.

Installation

Install the Memory Curate AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git /tmp/basic-memory
mkdir -p .claude/skills
cp -r /tmp/basic-memory/skills/memory-curate .claude/skills/memory-curate
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Memory Curate in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Memory Curate on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Memory Curate is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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

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="append",
    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="append",
    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 — the permalink stays stable, so wiki-links keep resolving.

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 tagsarchitecture 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]]""",
)

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

Quick Health Check

A fast overview of knowledge base status:

  1. Count total notes
  2. Identify orphan count
  3. List recently modified (recent_activity)
  4. Check for obvious duplicates
  5. Report folder distribution

Deep Organization Session

Thorough review and improvement:

  1. Audit — catalog all notes, identify issues
  2. Orphans — address unlinked notes
  3. Relations — suggest new connections
  4. Duplicates — merge or differentiate similar notes
  5. Structure — reorganize folders if needed
  6. Index — create hub notes for major topics

Topic-Focused Organization

Organize around a specific subject:

  1. Find all notes related to the topic (search_notes)
  2. Map existing relations with build_context(url="memory://...")
  3. Identify gaps in the topic graph
  4. Suggest new notes to fill them
  5. Create a topic index 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. Moving a note is fine; changing its permalink breaks inbound links.
  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?"

Frequently asked questions

What does the Memory Curate AI skill 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. Use to organize, connect, and improve a knowledge base as notes accumulate.

Why use Memory Curate on TypingMind?

Because you install it once and use it with any model. Memory Curate is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Memory Curate in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/basicmachines-co/basic-memory/tree/main/skills/memory-curate. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Memory Curate?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Memory Curate?

As many as you like. As long as a model supports skills, you can use Memory Curate with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Memory Curate AI skill free?

Yes. It is published on GitHub by basicmachines-co under the AGPL-3.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇