Loading...
Loading...
Structured metadata search for Basic Memory: query notes by custom frontmatter fields using equality, range, array, and nested filters. Use when finding notes by status, priority, confidence, or any custom YAML field rather than free-text content.
npx skill4agent add basicmachines-co/basic-memory-skills memory-metadata-searchtitletypetagspermalinkschemaentity_metadatastatus: draftpriority: highconfidence > 0.7score between 0.3 and 0.8search_notesmetadata_filterstagsstatusqueryNone{"status": "active"}{"tags": ["security", "oauth"]}$in{"priority": {"$in": ["high", "critical"]}}$gt$gte$lt$lte{"confidence": {"$gt": 0.7}}$between{"score": {"$between": [0.3, 0.8]}}{"schema.version": "2"}| Operator | Syntax | Example |
|---|---|---|
| Equality | | |
| Array contains | | |
| | |
| | |
| | |
| | |
| Nested | | |
[A-Za-z0-9_-]+$in$between[min, max]Warning: Operators MUST include theprefix — write$, not$gte. Without the prefix the filter is treated as an exact-match key and will silently return no results. Correct:gte. Wrong:{"confidence": {"$gte": 0.7}}.{"confidence": {"gte": 0.7}}
search_notesmetadata_filterstagsstatussearch_notesquery# Filter-only — find all notes with a given status
search_notes(metadata_filters={"status": "in-progress"})
# Filter-only — high-priority specs in a specific project
search_notes(
metadata_filters={"type": "spec", "priority": {"$in": ["high", "critical"]}},
project="research",
page_size=10,
)
# Filter-only — notes with confidence above a threshold
search_notes(metadata_filters={"confidence": {"$gt": 0.7}})
# Convenience shortcuts for tags and status
search_notes(status="active")
search_notes(tags=["security", "oauth"])
# Text search narrowed by metadata
search_notes("authentication", metadata_filters={"status": "draft"})
# Mix text, tag shortcut, and advanced filter
search_notes(
"oauth flow",
tags=["security"],
metadata_filters={"confidence": {"$gt": 0.7}},
)tagsstatusmetadata_filterssetdefaultmetadata_filterstag:# These are equivalent:
search_notes("tag:tier1")
search_notes("", tags=["tier1"])
# Multiple tags (comma or space separated) — all must match:
search_notes("tag:tier1,alpha")---
title: Auth Design
type: spec
tags: [security, oauth]
status: in-progress
priority: high
confidence: 0.85
---
# Auth Design
## Observations
- [decision] Use OAuth 2.1 with PKCE for all client types #security
- [requirement] Token refresh must be transparent to the user
## Relations
- implements [[Security Requirements]]# By status and type
search_notes(metadata_filters={"status": "in-progress", "type": "spec"})
# By numeric threshold
search_notes(metadata_filters={"confidence": {"$gt": 0.7}})
# By priority set
search_notes(metadata_filters={"priority": {"$in": ["high", "critical"]}})
# By tag shorthand
search_notes("tag:security")
# Combined text + metadata
search_notes("OAuth", metadata_filters={"status": "in-progress"}){"status": "active", "priority": "high"}querysearch_notes(metadata_filters={"status": "active"}){"schema.version": "2"}versionschematagsstatusmetadata_filters