skills/vault-search/SKILL.md
Semantic search and Dataview-style queries across the Obsidian vault. Use when searching for notes by meaning, finding related content, querying frontmatter metadata, or answering questions about vault contents. Trigger phrases include "search vault", "find notes about", "what do I have on", "related notes", "list tasks", "show positions".
npx skillsauth add roasbeef/obsidian-claude-code vault-searchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Provides semantic search and SQL queries over the Obsidian vault using sqlite-vec for vector storage and ChromaDB's embedding function.
Interpreter: /Users/roasbeef/vault/.claude/venv/bin/python
Required packages:
Path: /Users/roasbeef/vault/.claude/vault_search/vault.db
Contains:
notes table: frontmatter metadata for all markdown filesvec_chunks table: vector embeddings for semantic searchFind notes by meaning using vector similarity.
# Basic semantic search
python scripts/search.py --query "options trading strategies" --n-results 5
# Filter by folder
python scripts/search.py --query "earnings analysis" --folder "investing"
# Filter by metadata
python scripts/search.py --query "task automation" --where "status='open'"
# Combined: semantic + metadata
python scripts/search.py --query "portfolio risk" --where "folder LIKE 'investing%' AND status='open'"
Arguments:
--query (required): Search query text--n-results: Number of results (default: 5)--folder: Filter by folder prefix--where: SQL WHERE clause for metadata filtering--db-path: Database path (default: .claude/vault_search/vault.db)Output:
Query frontmatter metadata using SQL.
# Open tasks due this week
python scripts/dataview.py --sql "SELECT path, due, priority FROM notes
WHERE status = 'open'
AND due < date('now', '+7 days')
ORDER BY due"
# Tasks by folder
python scripts/dataview.py --sql "SELECT path, status, priority FROM notes
WHERE folder LIKE 'TaskNotes%'
AND status != 'done'"
# Investing positions
python scripts/dataview.py --sql "SELECT path, ticker, strategy, expiry FROM notes
WHERE folder LIKE 'investing/Portfolio/Positions%'"
# Query by tags (using json_each)
python scripts/dataview.py --sql "SELECT DISTINCT n.path, n.title
FROM notes n, json_each(n.tags) t
WHERE t.value = 'automation'"
Arguments:
--sql (required): SQL query to execute--db-path: Database path (default: .claude/vault_search/vault.db)--format: Output format: "table" or "json" (default: table)Available columns:
path, folder, filename, title, modifiedstatus, priority, due, scheduled, tags, projects, contextsticker, strategy, expiryRebuild the search index from vault files.
# Full rebuild
python scripts/index.py --vault-path /Users/roasbeef/vault --rebuild
# Incremental update (default)
python scripts/index.py --vault-path /Users/roasbeef/vault
# Show statistics
python scripts/index.py --stats
Arguments:
--vault-path: Path to vault root (default: /Users/roasbeef/vault)--db-path: Database path (default: .claude/vault_search/vault.db)--rebuild: Force full rebuild--stats: Show index statisticsUse semantic search (search.py) when:
Use dataview queries (dataview.py) when:
Use combined queries when:
User: "What notes do I have about HTLC routing?"
→ python scripts/search.py --query "HTLC routing payment channels" --n-results 5
User: "Show my open high-priority tasks"
→ python scripts/dataview.py --sql "SELECT path, due FROM notes
WHERE status='open' AND priority='high'
ORDER BY due"
User: "Find investing notes about semiconductor supply chain"
→ python scripts/search.py --query "semiconductor supply chain"
--folder "investing"
--n-results 10
Use the /vault-index command to rebuild the index when:
.obsidian, .smart-env, .claude, assets, Templatesdata-ai
Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some waiting on outside answers, and others rolling into a later summary.
data-ai
Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some waiting on outside answers, and others rolling into a later summary.
data-ai
OpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
data-ai
OpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.