dataview code block in a note, as you would in Obsidian, and Maestro renders its result instead of the code. A People note that lists every meeting linking to it shows that list as a table in File Preview, and it stays current as you add meetings.
Dataview is an Encore Feature, off by default. Maestro carries the query engine of the Obsidian Dataview plugin (version 0.5.68) itself, so queries mean the same thing they mean in Obsidian. You do not need Obsidian installed.
What renders
Queries support
FROM (tags, folders, links, and and / or / - combinations), WHERE, SORT, GROUP BY, FLATTEN, LIMIT, and WITHOUT ID, plus Dataview’s full function library. For example:
Key:: value, [key:: value], (key:: value)), tags, wiki links and markdown links in both directions, aliases, tasks and list items, and the implicit file.* fields (file.name, file.cday, file.outlinks, file.inlinks, file.tasks, and the rest).
Results behave like the rest of the preview:
- Links open the note they name, the same as clicking a
[[wiki link]]. - Task checkboxes in a
TASKresult rewrite that task’s line in the note it came from. - Live refresh. Edit, add, or delete a note and every block whose result could change runs again.
- Errors show inside the block with Dataview’s own message. A broken query never breaks the rest of the preview.
Turning it on
- Open Settings > Plugins, select Dataview, and turn it on (or run
maestro-cli encore enable dataview).dataviewblocks and inline=spans render from now on. - To run DataviewJS too, turn on Run DataviewJS in the Dataview tile’s settings. It is off by default.
- Trust a vault before its scripts run. Open a note with a
dataviewjsblock: it shows the script and two buttons.- Run once runs that block for this app session. Editing the script asks again.
- Always trust this vault adds the vault to Trusted Vaults, and every DataviewJS block in it runs from then on.
maestro-cli dataview untrust. Turning the feature off stops every index and watcher, and Dataview blocks render as plain code again.
How the vault is chosen
A query runs against the vault the note sits in:- The vault root is the nearest folder above the note that holds an
.obsidian/folder. - With no
.obsidian/folder above it, the root is the working directory of the agent that owns the note.
.git, .obsidian, and the like) and node_modules. Notes larger than 2 MB keep their file.* fields but are not read. The first index of a vault takes a moment; after that Maestro keeps a cache on disk, so reopening a vault shows results at once and catches up in the background.
Agents on an SSH remote work too. Their vault is indexed over SSH and checked for changes every 30 seconds instead of being watched. An index nobody has used for 10 minutes closes.
DataviewJS
DataviewJS blocks are JavaScript in your notes, with Dataview’sdv object in scope. Maestro supports the documented dv API: page queries (dv.pages, dv.page, dv.current), rendering (dv.table, dv.list, dv.taskList, dv.header, dv.paragraph, dv.el, and the markdown* variants), DQL from a script (dv.query, dv.execute, dv.evaluate), file reads (dv.io.load, dv.io.csv), dv.view for a view.js (and optional view.css) stored in the vault, and the utilities (dv.date, dv.duration, dv.luxon, dv.array, and so on).
A script that takes longer than 5 seconds is stopped, and its block shows a timeout error. The other blocks in the note keep running.
What is not supported
Security model
DQL queries only read your notes, so they run whenever the feature is on. DataviewJS runs code someone wrote into a note, possibly a note you downloaded or cloned. Maestro treats it as untrusted:- Off until you say so. The Run DataviewJS switch is off by default, and a vault must be trusted (or the block run once) before any script in it runs.
- Isolated. Each script runs in a separate sandboxed process with no Node.js, no access to Maestro, no network, and no way to open windows or navigate.
- Read-only, inside the vault. A script can read files inside its own vault and nothing outside it. It cannot write any file. The only actions it can ask for are opening a link and ticking a task, the same things you can click in the result.
- Time-limited. A script that runs longer than 5 seconds is killed.
CLI
Every result the preview shows is available frommaestro-cli, with the app running. See the CLI reference for every flag.
dataview query on a dataviewjs block prints “DataviewJS renders in the desktop app only” and exits with code 2.