Semantic search and Dataview-style queries across the Obsidian vault...
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, Templates