SVG · PNG · WebP — no browser, no react
Render charts,
anywhere
Vizzo is a lightweight CLI and SDK that turns a Grammar of Graphics definition into pixels. Built so agents, bots, and CI can ship a chart without a browser in the loop.
terminal
$ npx vizzo chart.json chart.png
GitHub
No install — also bunx vizzo or pnpm dlx vizzo
revenue.json → revenue.png
Revenue Costs
Why Vizzo
- Grammar of Graphics
- No browser
- No Playwright
- No Canvas
- Works in CI
- Works in Discord bots
- Works with AI agents
- Deterministic output
Examples
npx vizzo examples/line.jsonnpx vizzo examples/bar.jsonnpx vizzo examples/area.jsonnpx vizzo examples/pie.jsonnpx vizzo examples/multi-series.jsonnpx vizzo examples/time-series.jsonCLI
terminal
$ npx vizzo chart.json
$ npx vizzo chart.json chart.png
$ cat chart.json | npx vizzo > chart.svg
$ npx vizzo '{"definition":{...}}'
$ npx vizzo chart.json --width 1200 --height 630
$ npx vizzo chart.json --format png
$ npx vizzo chart.json --theme dark
$ npx vizzo ./charts/*.jsonTypeScript example
render.ts
import { render } from 'vizzo';
const result = await render({
definition,
width: 1200,
height: 630,
format: 'png',
});