Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The standalone viewer

The playground is for authoring; the standalone viewer is for sharing. thoughtml --html bakes a document into a single, self-contained HTML file that opens in any browser — no server, no install, no network.

thoughtml grant-panel.thml --html -o decision-record.html

Open the result and you get the same time-driven view the playground shows under “Viewer”: semantic node silhouettes, clean relation routing, reasoning laid out along time (earlier left, later right), pan / zoom, an as-of bar with replay, and light / dark—all running on a model baked into the file. Click a node for the same floating Reasoning Card used by the playground and live stream: readable prose first, source provenance and high-signal facts next, complete technical detail on demand. Press play (or drag the bar) and beliefs fade in as of when they were asserted. --html turns on the full mirror compute stack automatically, so the derived readings have data to show.

For a compiled multi-file project, imported conclusions can be expanded directly inside the unified graph. The stacked-node/branch marker means supporting module reasoning is folded behind the conclusion; Expand reasoning reveals it and Collapse reasoning restores the overview. The source map stays in the HTML, so the card can identify quality.thml:18 even though the source text and parser are not embedded.

What’s in the file

The exported artifact is the canonical JSON, its project source map, and a small renderer, inlined into one self-contained HTML file (~600 KB). There is no WebAssembly and no parser inside it—parsing already happened when you ran the command. That is why it is small, offline, and deterministic: it carries the result, not the compiler. The fonts are the reader’s system fonts, so nothing is fetched.

A snapshot, by design

The viewer renders a snapshot of the model at export time. There is no live re-parsing inside the file — re-run thoughtml --html after editing the source to refresh it, the same way you would recompile.

Which surface when

You want to…Use
Author live, edit, experimentthe playground
Check a document in CI or a scriptthoughtml doc.thml → JSON + exit code
Hand someone an interactive, time-driven viewthoughtml doc.thml --html -o doc.html
Observe a changing local projectthoughtml stream

Every surface renders from the same parser and the same time-driven renderer—one canonical model, many faithful projections.