From inline-viz
Use when the user asks to visualize, plot, diagram, or render any scientific figure inline in the terminal. Supports quantum circuits, tensor networks, QEC codes, BDDs, Feynman diagrams, Bloch spheres, data plots, paper layouts, and pixel art.
How this skill is triggered — by the user, by Claude, or both
Slash command
/inline-viz:inline-vizThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Render typst diagrams and display them via a floating preview window. The window auto-updates on each render.
Render typst diagrams and display them via a floating preview window. The window auto-updates on each render.
Render immediately. No preamble, no narration, no post-render summary. Just write the .typ and call vizrender. The image is the response. Do not describe what you rendered — the user can see it.
Always write .typ files using Bash (cat > file.typ << 'EOF' ... EOF), never the Write tool. These are temporary rendering files. Using Bash avoids "file already exists" errors and lets you write + render in a single call:
cat > /tmp/diagram.typ << 'EOF'
#set page(width: auto, height: auto, margin: 12pt)
// your typst content here
EOF
${CLAUDE_PLUGIN_ROOT}/scripts/vizrender /tmp/diagram.typ
# 1. Write a .typ file and render (one Bash call)
cat > /tmp/hello.typ << 'EOF'
#import "@preview/pixel-family:0.1.0": *
#set page(width: auto, height: auto, margin: 12pt)
#alice(size: 3cm)
EOF
${CLAUDE_PLUGIN_ROOT}/scripts/vizrender /tmp/hello.typ
Output includes file paths:
[vizrender: source=/tmp/hello.typ]
[vizrender: rendered=/tmp/hello.svg]
[vizrender: displayed=/tmp/hello.png]
vizrender compiles .typ → SVG → PNG. Display is automatic:
open (Preview.app on macOS)--open flag: always opens in system viewer--no-display: compile only, no display.typ file via Bash (cat heredoc) — never use the Write tool${CLAUDE_PLUGIN_ROOT}/scripts/vizrender input.typWrite typst directly — import @preview/ packages as needed. Do NOT use sys.inputs.template-dir (it doesn't work for imports).
Reference templates are at ${CLAUDE_PLUGIN_ROOT}/templates/ — read them for API examples, but don't import them. Just write the typst code inline.
| Package | Import | Use For |
|---|---|---|
| pixel-family | #import "@preview/pixel-family:0.1.0": * | Pixel art characters |
| cetz | #import "@preview/cetz:0.4.2": canvas, draw | General drawing (circuits, TN, Feynman) |
| cetz-plot | #import "@preview/cetz-plot:0.1.2": * | Data plots |
| typdd | #import "@local/typdd:0.1.0": * | Binary decision diagrams |
Always set #set page(width: auto, height: auto, margin: 12pt) for inline display.
Default: reason from source. You wrote the .typ file — you know the structure.
User: "move figure B to the left"
Agent: [already knows the .typ structure — it wrote it]
[modifies grid layout in .typ]
[vizrender updated.typ] ← floating window updates
"Done — panel B is now on the left."
# Slow updates (30s+): agent controls the loop
loop:
data = fetch_from_mcp()
write data → plot.typ
vizrender plot.typ ← floating window updates each time
# Fast updates (1-5s): same pattern, floating window handles refresh
Show any existing image:
${CLAUDE_PLUGIN_ROOT}/scripts/vizrender --open existing.png
brew install typst or cargo install typst-cliset -g allow-passthrough on to ~/.tmux.conf and reload (tmux source ~/.tmux.conf). Required for kitty/iTerm2 graphics protocol inside tmux.vizrender input.typ --open to open in Preview.applibrsvg (brew install librsvg) or ImageMagickProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub hmyuuu/skills --plugin inline-viz