Skills

Memory Metadata Search

Search Basic Memory notes by custom frontmatter fields with equality, range, array, and...

Install

npx skills add basicmachines-co/basic-memory --skill memory-metadata-search -g -a claude-code -y
Category
Writing
Updated
3d ago
License
AGPL-3.0
Context cost
Mediumabout 2,042 tokens
Runs scripts
No, instructions only

What it does

Search Basic Memory notes by custom frontmatter fields with equality, range, array, and nested filters. Use when finding notes by status, priority, confidence, or any YAML field, not free text.

Memory Metadata Search

Find notes by their structured frontmatter fields instead of (or in addition to) free-text content. Any custom YAML key in a note's frontmatter beyond the standard set (title, type, tags, permalink, schema) is automatically indexed as entity_metadata and becomes queryable.

Project scope

If the project is unknown, discover it with bm_project(command="list"). Pass a nonempty project on every note, folder, context and schema call, even with one project or a qualified memory:// URL. Use the chosen project's name, workspace/project, or external ID; <project> below is a placeholder for it. Recent activity also requires project. Search accepts project for one project, projects for selected projects, or all_projects=True explicitly. Discovery and bundled manuals need no project. Keep the same scope when following returned paths, paginating, or recovering from a refusal.

When to Use

  • Filtering by status or priority, find all notes with status: draft or priority: high
  • Querying custom fields, any frontmatter key you invent is searchable
  • Range queries, find notes with confidence > 0.7 or score between 0.3 and 0.8
  • Combining text + metadata, narrow a text search with structured constraints
  • Tag-based filtering, find notes tagged with specific frontmatter tags
  • Schema-aware queries, filter by nested schema fields using dot notation

The Tool

Use bm_search for ranked results or bm_find for file discovery with selected fields. Pass frontmatter conditions via filters, including tags and status. Omit query (or pass None) for filter-only searches.

Filter Syntax

Filters are a JSON dictionary. Each key targets a frontmatter field; the value specifies the match condition. Multiple keys combine with AND logic.

Equality

{"status": "active"}

Array Contains (all listed values must be present)

Read the whole SKILL.md on GitHub

More in Writing