A sealed HTML memory object
for AI work worth preserving.
Single-file, self-contained, sealed at the moment work was done. Human-readable, machine-readable, and provenance-bearing in one object. LLMs, deterministic compilers, and human authors all produce the same envelope shape — that's the multi-producer interop story, and it's what makes capsules different from yet another save format.
The substrate has settled.
Claude, ChatGPT, Gemini, and Codex all default to producing self-contained HTML files for rich output. Plans. Specs. Mockups. Briefings. Dashboards. The files open in any browser, work offline, and carry their own structure.
"HTML is the new markdown."
— Thariq Shihipar (Claude Code), How I AI podcast
"The format you ask for is part of the runtime contract."
— Blake Crosley, HTML Is the Format AI Agents Want
Three voices, one substrate, three positions on the lifecycle:
- Thariq makes the substrate case. HTML as the editing medium during work.
- Blake makes the control-surface case. HTML as the agent UI users inspect live.
- This project makes the contract case. HTML as the sealed handoff once the live work is done.
Same substrate. Three slots on the lifecycle. The capsule contract is what turns those one-off HTML files into something that travels across tools, time, and people after the work is done.
The seal layer everyone skips.
Canvas and Artifacts are about live editing. Repos are about production. Between them is the moment when something is done changing and needs to leave the workspace cleanly. That's where capsules sit.
What capsules guarantee.
Most modern documents phone home. Most sharing platforms let you "unshare." Capsules do neither, on purpose. Two load-bearing trust properties, both by construction:
Once a capsule reaches a recipient, the bytes are theirs. No retraction, no expiring link that revokes access, no "deleted from your view." Same contract as a paper memo or a sent email. This forces honest authoring discipline: redact and audience-scope before sharing, because there's no undo. Core Rule 10.
Zero fetch, zero analytics, zero tracking pixels. Once a capsule opens, the recipient's view is unobservable to the author — no view counts, no "X opened your capsule," no engagement metrics. Hosting platforms can track wrapper-level activity; the capsule itself is mute. Privacy by construction, not by policy. Core Rule 2.
Twelve rules. One page.
Pasteable into any LLM prompt. See CAPSULE_CORE.md for the canonical version.
.html document.fetch, CDN, external CSS.generator.kind: compiler, llm, human, hybrid.capsule_reference.Same outer rules. Different content.
Conversation Capsule
Sealed summary of an AI work session. What was figured out, decided, left open.
Domain Capsule
Sealed export of a domain object. Named schema per type. See below.
Project Capsule
Snapshot of where a sustained thing stands. Composes other capsules plus synthesis.
Already use Obsidian, Tana, or a second-brain system? Capsules don't replace it. They're the layer where your finished thinking exits your knowledge base as a portable, sealed artifact someone else can open — months later, on a different machine, with no platform login. The workshop stays in your PKM. The capsules are the finished products that ship out of it.
Two formal schemas. More coming.
Domain Capsules formalize the patterns already in use. The namespace is open: anyone can declare domain.<name>. See spec/DOMAIN_CAPSULES.md for the catalog.
Origin: Thariq's viral implementation-notes.html prompt. Captures the gap between a spec and what got built.
design_decisions[]: { decision, context, rationale, alternatives_considered }
deviations[]: { spec_section, deviation, why, reversible }
tradeoffs[]: { question, options_considered, chosen, why }
open_questions[]: { question, context, urgency }
ai_usage_guidance — advisory, non-enforceable; under review for v0.4 (see spec Appendix E.3)
Origin: Thariq's living-design-system pattern from the How I AI podcast. Portable design system as a single file.
tokens: { colors, typography, spacing, radius, shadows }
components[]: { name, variants, states, props, usage_notes }
patterns[]: { name, when_to_use, components_used }
ai_usage_guidance — advisory, non-enforceable; under review for v0.4 (see spec Appendix E.3)
Canonical example forthcoming
Paste this. Get a capsule.
The simplest production path. Works in Claude, ChatGPT, Gemini.
Produce a Capsule per Core v0.3.0. Output a single .html file with the five embedded blocks: capsule-manifest, capsule-data, capsule-style, capsule-root, capsule-runtime. Set generator.kind to "llm" and generator.version to your model ID. Include the "about" capability plus at least one export (copy_as_json recommended). Pre-render content in the HTML body (rule 12). Use backtick template literals for multi-line strings in runtime JS (rule 11). [paste the twelve rules from CAPSULE_CORE.md] The data to put in the capsule: [paste your data]
Sharp negative space.
Four phases. One shipped.
Format
Single-file HTML, manifest, sealed convention. Twelve rules.
Compiler
Reference compiler + validator + two compiler templates. First independent compiler-kind producer (Mintel) has shipped capsules that validate at 26/26 against the reference. Definition of done still TBD.
Domain capsules
Schemas shipped for implementation_notes and design_system. Map, dataset, deal pending.
Network layer
Registry, lineage, importers. Deferred. Possibly never.
About this capsule
This page is itself a Capsule per Core v0.3.0 (full spec v0.3.2). All five required blocks inline, no network, no analytics.
Export this page
Manifest
Loading manifest...