i. Persistence
Cannot be unshared.
Once a capsule reaches you, the bytes are yours. No retraction, no expiring link, no platform that revokes access.
enforced by · core rule 10
Open spec · 2026
One file. Everything inside it. No network, no platform.
I. Promises
Most documents phone home. Most platforms let you unshare. Capsules do neither — not by policy, by construction.
i. Persistence
Once a capsule reaches you, the bytes are yours. No retraction, no expiring link, no platform that revokes access.
enforced by · core rule 10
ii. Silence
Zero fetch. Zero analytics. Zero tracking pixels. Once a capsule opens, the recipient is unobservable.
enforced by · core rule 02
II. Anatomy
Every capsule contains the same five inline blocks — the same shape holds a research note, a decision board, a design system, or a map.
Machine-readable identity, generator, source, privacy, capabilities. Validates against the reference validator.
Visible in iOS Files, email previews, screen readers — anywhere JS doesn't run, the page still works.
III. The contract
Each rule names a failure we hit and fixed. Pasteable into any LLM prompt. See CAPSULE_CORE.md for the canonical version.
R-01
A single .html document. No companions, no sidecars.
R-02
Zero fetch, CDN, ES modules. Works identically over file:// and http://.
R-03
manifest, data, style, root, runtime.
R-04
Identity, generator, source, privacy, capabilities. Optional: parents[].
R-05
generator.kind: compiler · llm · human · hybrid.
R-06
Runtime never mutates the data block.
R-07
Every declared capability has a working implementation.
R-08
capsule_reference + payload, per response schema.
R-09
Semantic HTML, ARIA, keyboard, prefers-reduced-motion, lang.
R-10
Once sent, the bytes are theirs. Redact before sharing.
R-11
Multi-line strings in runtime JS use template literals.
R-12
Content lives in the body, not behind a script tag.
IV. Produce one
The simplest path from a conversation to a sealed HTML file.
Drop the prompt fragment into the system message and paste your data underneath. Tested in Claude, ChatGPT, Gemini, Codex.
prompt · 412 bytes · utf-8
Produce a Capsule per Core v0.3.0. Output a single .html file with five inline blocks: capsule-manifest, capsule-data, capsule-style, capsule-root, capsule-runtime. Set generator.kind to "llm" and version to your model ID. Include the "about" capability plus copy_as_json. Pre-render content in HTML (rule 12). Use backtick template literals for multi-line strings (rule 11). [paste the twelve rules from CAPSULE_CORE.md] Data to embed: [paste your data]
V. Status
The format exists. The compiler is half-built. The network layer may never come — that's a feature, not a delay.
i.
Single-file HTML, manifest, sealed convention. Core v0.3.0, full v0.3.2.
Existsii.
Reference compiler, validator, two templates. Mintel validates clean at 26/26.
Half-builtiii.
implementation_notes, design_system, exploration_map shipped. Map, dataset, deal pending.
Partialiv.
Registry, lineage, importers. Deferred — possibly never. Local files travel further.
Not builtThis page is itself a Capsule per Core v0.3.0 (full spec v0.3.2). Five required blocks, all inline. No network, no analytics. Validates against the reference validator.
Loading manifest…