Apps & documents

Everything is a document. Every document has a home.

The agent doesn’t answer next to your work — it works in it. Pages, boards, sheets, canvas, handwriting, audio: each is a document of some kind, each kind has an editor, and the apps on top are just folders that know how to show them. Agents create, fill and reshape all of it with the same tools you use.


Cortex

Chat, document and execute on one surface.

Cortex is where most work happens: a file tree on the left, the open document in the middle, the agent on the right — and a run panel when a document can execute. Whatever kind you open, Cortex picks the right editor.

  • Quick-open with ⌘O / ⌘P across the whole project.
  • Discussions tab: the inbox threads about the open document, right next to it.
  • PDF export with report themes — one CSS layer per customer or purpose.
  • Translate a selection, play audio and video in the preview, open encrypted documents locally.

Cortex tour →

# one surface, any kind
notes/kickoff.md          markdown
plan/q4-budget            sheet      =SUM(B2:B9)
ideas/map                 canvas     12 nodes · 3 groups
release/checklist         checklist  7 / 9
sketch/whiteboard         scribble   A4 · 3 sheets
analysis/run              compose    python ▶ ✓ 2.1s
private/keys.md           age        🔒 decrypt locally

Apps

Fifteen apps, one data model.

An app is a folder with a manifest. Its pages are ordinary documents — so the agent can read and write them, you can link to a place inside them, and they show up in search, WebDAV and exports like everything else.



Document kinds

Thirty-odd kinds, one API.

A kind says what a document is — and so which editor opens it and what the agent can do with it. They all share the same read/write/version/lock surface, so a new kind is a new editor, not a new storage system.

workpage markdown sheet canvas mindmap diagram chart slides timeline map graph tree list records checklist calendar finance-tree scribble questions qrcode data formula tex compose age application app-view vance-recipe vance-workflow vance-scheduler vance-guard vance-hook vance-wizard vance-model vance-research-source vance-chat-theme

The vance-* kinds are the system’s own configuration — recipes, workflows, schedules, guards, models. They get form views and templates like any other document, which is why an agent can set up an automation by writing one.


Bistromath

Apps the agent builds for you.

Need a little tool nobody ships — a tracker, a calculator, a dashboard over your own documents? Ask for it. The app-builder recipe writes an app view: a document with a main.js that runs sandboxed in a null-origin iframe and talks to your data only through a narrow API.

  • Five bundled libraries — core, api, db, fmt, ui — so apps stay small.
  • Governance: apps are forbidden by default; each one asks for approval through your inbox.
  • Just a document: versioned, shareable, changeable by the next prompt.

Bistromath spec →

# view.yaml — the widget names a state key
  - type: table
    from: invoices
    columns: [nr, customer, amount]

// main.js — runs in a null-origin sandbox
async function onAppInit() {
  const files = await vance.documents.list('invoices/')
  const rows = []
  for (const f of files)
    rows.push(await vance.documents.read(f.path))
  vance.state.set('invoices', rows)
}