.prsm is an open, self-contained, interactive document format.
One HTML file. Opens offline in any browser. The PDF of the AI era.
Spec · Make one with any AI · Claude skill · Live demo · prismaview.dotsid.net
AI tools now generate genuinely interactive things — dashboards, KPI reports, one-pagers with charts you can hover. But where do they live?
- A PDF freezes the interactivity into a flat picture.
- A raw
.htmlis a pile of code, not a document you keep and share. - A chat message disappears.
There was no portable container for an AI-made interactive document. PRSM is that container.
A single, self-contained HTML file that:
- opens offline in any browser (and natively in PrismaView, the reference viewer);
- keeps its logical structure separate from its presentation, so it's both machine-readable and free to look however the author wants — the idea behind Tagged PDF;
- is "sealed": it makes no external request to render — everything is inlined, so it works offline, forever.
A conformant .prsm:
- is one valid, self-contained HTML5 file (UTF-8), responsive and accessible, light/dark aware;
- is sealed — no external requests to render (inline all CSS/JS); no trackers, no analytics, no data collection;
- declares the format in
<head>:<meta name="prsm" content="1.0">
- embeds a machine-readable content model, kept separate from the look:
<script type="application/prsm+json" id="prsm-content"> { "schema":"prsm/1.0", "title":"…", "blocks":[ … ] } </script>
- renders that model into a gorgeous, interactive page (charts, tabs, sliders, sortable tables…).
The standard deliberately does not mandate any JavaScript library — a format shouldn't be chained to today's ecosystem. Use whatever you like to author it, then inline it. Most reports need nothing but HTML/SVG/CSS.
Full details in SPEC.md.
You don't write a .prsm by hand — you describe what you want and let an AI produce the whole file in one shot.
- Raw prompt:
skills/prompt.txt— paste it into any assistant, then describe your report. - Reusable skill (Markdown):
skills/prsm-report.skill.md
| Assistant | How |
|---|---|
| Claude | Use the skill in skills/claude/prismaview-report/ (Claude Code / Agent), or paste the prompt into a Project's custom instructions. |
| ChatGPT | Create a Custom GPT (or a Project) and paste the prompt as its instructions. Name it "PRSM Report". |
| Gemini | Create a Gem and paste the prompt into it. |
The AI returns a complete .prsm file — open it in any browser or in PrismaView.
python3 tools/validate_prsm.py your-report.prsmChecks the format marker and the content model (structure); the presentation is intentionally free. Works on .prsm, .html and raw .json models.
A .prsm can be cryptographically signed (Ed25519) so anyone can confirm it
wasn't tampered with. The signature, public key and author travel inside the
file; signing happens on-device (e.g. in PrismaView) and the private key never
leaves it.
pip install cryptography
python3 tools/verify_prsm.py examples/lumina-2026.signed.prsm
# → VALID — signed by 'Sid' · key 599D A40B 755F 2C7FThis proves integrity (the file is byte-identical to when it was signed) and that the holder of a key signed it; the identity is self-asserted — compare the key fingerprint out-of-band to confirm who. Full scheme in SPEC.md → Signing.
examples/lumina-2026.prsm — a real, sealed, interactive report (open it in a browser, or see it live).
.prsm opens in any browser. For a first-class experience there's PrismaView (iOS · iPadOS · Mac): it opens .prsm plus AI-generated HTML, React/JSX/TSX and Markdown, 100% offline, and asks before loading anything from the network. → prismaview.dotsid.net
The format is versioned: prsm/1.0. New versions extend the block vocabulary and capabilities without breaking older files. Legacy files (prismaview-report/1.0) remain valid.
PRSM is an open format. Issues and proposals welcome — especially on the sealed-by-default rule, the structure-vs-presentation split, and the block vocabulary.
MIT — use it, implement it, build on it freely.