roasbeef/obsidian-claude-code
Overview
This skill provides semantic search and Dataview-style SQL queries across an Obsidian vault. It surfaces related notes by meaning, queries frontmatter metadata, and returns programmatic JSON or human-readable results. Use it to find notes by topic, list tasks, or answer questions about vault contents.
How this skill works
The skill builds a vector index of note chunks and stores frontmatter metadata in a sqlite database. Semantic queries use embeddings and sqlite-vec vector search; metadata queries run SQL over the notes table. Results include snippets, metadata columns, and optional JSON output for automation.
When to use it
- Find notes by meaning or related concepts (semantic search).
- Locate or filter notes by frontmatter metadata (Dataview-style SQL).
- List tasks, open items, or items due within a range.
- Build dashboards or aggregate counts across tags, folders, or projects.
- Combine semantic relevance with metadata filters (e.g., related notes that are open tasks).
Best practices
- Rebuild the index after many file changes or bulk imports to keep results fresh.
- Use --folder or SQL WHERE filters to narrow results and reduce noise.
- Limit semantic results (n-results) when exploring; increase only for broad discovery.
- Use the JSON output for downstream scripts or integrations.
- Exclude system folders and large binary assets from indexing to save space and speed up queries.
Example use cases
- Find notes related to a research topic: semantic search returns the most relevant chunks and source paths.
- Show open high-priority tasks: run a dataview SQL query filtering status and priority.
- List investing positions by folder and metadata like ticker and expiry via SQL.
- Combine: find notes about “portfolio risk” that are in the investing folder and marked open.
- Rebuild the index after a vault import to ensure new notes appear in searches.
FAQ
Call the search script with --query and optional --n-results, --folder, or --where filters; results include snippets and JSON output.
Can I query frontmatter like Dataview?
Yes—use the dataview script to run SQL against the notes table and output as table or JSON.
When should I rebuild the index?
Rebuild after many file changes, bulk imports, or if search results appear stale; incremental updates are available for regular use.