VaultQuery

Query, chart, and edit an Obsidian vault with SQLite.

SELECT title, date, event_type
FROM notes_with_properties
WHERE path LIKE 'Events/%'
AND strftime('%Y', date) = '2005'
ORDER BY date;
rendered output
title date event_type
Office vs Warehouse Basketball Game 2005-03-24 competition
Diversity Day 2005-03-29 training
Health Care Planning 2005-04-05 planning
Meredith Birthday Party 2005-04-19 party

What it does

Indexes Markdown structure

Notes, frontmatter, tags, links, headings, tasks, lists, and Markdown tables become structured data in SQLite tables.

Runs real SQL

Use joins, CTEs, window functions, JSON functions, views, and `EXPLAIN QUERY PLAN` against vault data.

Writes back to files

`INSERT`, `UPDATE`, and `DELETE` statements show a preview before applying changes to Markdown.

Render query results

Tables in notes

Use an interactive grid for inspection, or render a Markdown table.

Charts and calendars

Return the expected columns and VaultQuery renders Chart.js charts or FullCalendar calendars.

Inline controls

Inline query results and buttons keep small checks and common actions in the sentence where they belong.

Markdown stays the source

VaultQuery queries a SQLite index, then writes accepted changes back to the Markdown files.

Note-local context Use {this.path}, {this.folder}, and frontmatter placeholders directly in queries.
Reusable SQL Define views once and query them from dashboards, notes, buttons, or the CLI.
Plugin integration Expose provider tables from another plugin, or call VaultQuery through the API.