Ore: an open format for executable notes
Ore is a format for executable notes: Markdown files whose cells run, in order, and write their results back into the note.
What a workflow looks like
A workflow is a note with ore: true in its front matter and fenced code blocks of type ore:ts, ore:shell or ore:ai. The note declares what its cells may do, so you can read the permissions before anything runs.
---
ore: true
name: Hello
permissions:
network: deny
vaultWrite: deny
---
```ore:ts id=greeting
const message = "Hello from Ore";
message;
```
```ore:ts id=shout depends=[greeting]
cell("greeting").toUpperCase();
```greeting, then shout, and writes each output below its cell as an ore-output callout.What makes it Ore
The note is the program
The same Markdown file is the program and its documentation.
Permissions live in the note
network,vaultReadandvaultWrite, eachallow,denyorask. The runner enforces them outside the cell. An answer toaskis asked for again when the workflow changes.Outputs come back into the note
Each output is written into the note, with a record of every run beside it.
Containers for code, the written prompt for AI
Code cells run in containers. AI cells call a provider with the prompt the note spells out, and nothing else from the vault.
An open specification
- Version
- 0.1.1
- Status
- Draft
- Licence
- CC BY 4.0
Under CC BY 4.0, anyone may implement Ore, with credit. The specification describes the format as VaultOre 0.1.x runs it; before 1.0 it may still change.
Origin
Tobias Krug created Ore at CronAI UG. It was first published on 18 January 2026 in the VaultOre repository and has been maintained as its own specification since 18 October 2026.
Reference implementation
The reference implementation is VaultOre, an Obsidian plugin in Obsidian's community plugins.
Have something difficult in mind?
Tell us where the system is today, what is making it hard, and what needs to be true when it is done. We will tell you honestly whether we are the right fit.
Discuss a project