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

Line chart rendered by Vizzo
Linenpx vizzo examples/line.json
Bar chart rendered by Vizzo
Barnpx vizzo examples/bar.json
Area chart rendered by Vizzo
Areanpx vizzo examples/area.json
Pie chart rendered by Vizzo
Pienpx vizzo examples/pie.json
Multi-series chart rendered by Vizzo
Multi-seriesnpx vizzo examples/multi-series.json
Time-series chart rendered by Vizzo
Time-seriesnpx vizzo examples/time-series.json

CLI

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/*.json

TypeScript example

render.ts

import { render } from 'vizzo';

const result = await render({
  definition,
  width: 1200,
  height: 630,
  format: 'png',
});