Find
findRecursively list files by filename pattern or frontmatter metadata filters, scoped to a project path, to locate notes matching status, tags, ranges, or other predicates.
Instructions
Recursively list files by name glob or metadata predicates (e.g. "status=active"). Paths accept '/path'.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| meta | No | Frontmatter metadata predicates, repeatable; every predicate must hold. One predicate per string, one predicate per key, at least one predicate; omit `meta` entirely for the directory listing. Forms: "status=active" equality "confidence>0.6" comparison: > >= < <= "priority in high,critical" any of the listed values "tags has security,oauth" array contains ALL listed values "score between 0.3,0.8" inclusive range "owner=null" key missing or explicitly null Values are JSON-scalar inferred ("true"/"false"/"null"/numbers become booleans/None/numbers); quote a token to force a literal string (e.g. 'status="true"'), including inside a list, where the quotes also protect a comma ('label in "a,b",c' matches "a,b" or "c") and a value that itself starts with an operator character ('range=">=5"'). Numbers must be finite, and null is only meaningful with "=" — the other operators compare against the value, and a comparison with null is never true. Keys accept dot-paths ("review.approved"); "note_type" aliases the frontmatter "type" key. String equality and "in" on either type spelling use normalized note-type matching ("LiteraryDevice" matches "literary_device"). Other metadata keys and operators retain their usual comparisons. Any other operator fails fast naming the supported set. | |
| name | No | File-name glob to match, e.g. "*.md". None matches everything. Cannot combine with `meta` — scope with `path` instead. | |
| page | No | Page number (1-indexed). | |
| path | No | Directory to start from (default: project root). '<project>/path' routes into that project. With `meta`, scopes the search to this subtree (matched on a directory boundary, so "specs" never admits "specs-archive/"). | / |
| depth | No | How many levels to recurse (1-10, default: 10). A non-default depth cannot combine with `meta` (the subtree scope is all-or-nothing). | |
| fields | No | Frontmatter fields to return per hit (dot-paths allowed), e.g. ["title", "priority"]. Requires `meta`. A field missing on a hit renders as null — rows are never dropped. Requesting fields also narrows each row to the note's identity plus those values: the projection replaces the note body rather than riding alongside it. | |
| project | No | Project name. Optional - qualified paths route themselves; unqualified paths refuse when several projects are addressable. | |
| page_size | No | Nodes per page. | |
| project_id | No | Project external_id (UUID); takes precedence over `project`. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||