← Back to archive

Repo of the Day

floorianmb/prism-viz

Published: Oct 9, 2026

Open repository ↗

Prism: sandboxed, themed, interactive visualizations in Obsidian notes

Summary

Prism is an Obsidian community plugin that turns viz code blocks inside notes into interactive charts, tables, diagrams, formulas and small scenes, with Chart.js, D3, Mermaid, three.js and KaTeX bundled so it works offline. It is also designed for AI coding agents: a CLI renders a note invisibly through the running Obsidian app and returns errors with note line numbers plus PNG snapshots, so Claude Code or Codex can write and self-check viz blocks without round-tripping screenshots.

What it is useful for

  • Building dashboards from a plain Markdown table in the same note, using a YAML no-code spec (type: bar, source: ^stats, x: Month); edit the table and the chart updates.
  • Visualizing vault-wide data via prism.notes({ include: ["tasks", "links"] }), including Tasks-plugin metadata and frontmatter.
  • Creating explorable or scrollytelling notes where a slider in one block drives a chart in another (prism.shared, prism.onSection).
  • Letting an agent generate visualizations from a prompt and verify them with node .obsidian/plugins/prism-viz/scripts/prism-render.mjs "Books.md", which exits with status codes for ok / block errors / render failure / Obsidian unreachable.
  • Showing formulas and Mermaid diagrams that respect Obsidian's light/dark theme and export to PDF.

How engineers can use it

Install via Settings → Community plugins → Browse (search "Prism") or BRAT with floorianmb/prism-viz. To use the agent CLI, copy main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/prism-viz/ (the community plugin package omits the render script), then run Prism: Install agent skill or the documented node scripts/install-skill.mjs --vault '/path/to/vault'.

In a note, anchor a Markdown table with ^stats and add:

type: bar
source: ^stats
x: Month

For finer control, use the prism JavaScript API (prism.notes(), prism.data("folder/file.csv"), prism.http.json with an opt-in click, prism.state) inside a viz chart block; the full API is in skill/reference.md. Development uses npm install and npm run build, which also regenerates skill/reference.md. Documented limits: the render CLI needs the desktop app (it launches Obsidian if closed), errors.json reflects only the last render, and PNG snapshots of WebGL canvases require preserveDrawingBuffer: true.