chartjs2img
Chart.js charts, rendered anywhere.
One JSON, two destinations
Chart.js renders the same configuration in a browser for an interactive chart. chartjs2img takes that same JSON and returns a PNG you can attach to Slack, an email, or a PDF report — no browser required on the receiving side.
Chart.js + 12 plugins bundled
Core plus datalabels, annotation, zoom, gradient, treemap, matrix, sankey, wordcloud, geo, graph, venn, and the date-fns adapter. No extra installation.
HTTP API + CLI
POST JSON, get an image back. Or pipe JSON into the CLI and redirect to a file. Same engine, cache, and plugin bundle.
Hash-based caching
Identical requests return cached images instantly. SHA-256 hashes travel in headers so clients can build CDN-friendly URLs.
LLM-native
`chartjs2img llm` dumps the full Chart.js + plugin reference as Markdown. Pipe it into an agent to get valid configs first try.
JSON in, image out
Send any Chart.js configuration as JSON; chartjs2img returns the rendered PNG. Left is the exact output of the config on the right.
…
Complex charts render, too
Multi-plugin composites — time axes, annotations, data labels, stacked and dual-axis layouts — all from a single JSON request.

Revenue with forecast band
Time-series line + gradient stroke, forecast window (annotation), goal threshold, peak-point marker, and on-point data labels.

Ops dashboard snapshot
Stacked-bar ticket backlog with an overlay SLA-breach-rate line on a secondary Y axis, plus threshold line and peak-load window annotations.
Built for LLM agents out of the box
Four first-class integration channels — pick whichever host you already use. Every path speaks the same Chart.js JSON shape, so your configs stay portable between agents.
Claude Code plugin
Marketplace plugin with /chartjs2img-install, /chartjs2img-author, /chartjs2img-render slash commands.
Tutorial →gh skill
Install the same skill bundle into Copilot, Cursor, Gemini CLI, or Codex with one `gh` command.
Tutorial →context7 (MCP)
Zero-install doc retrieval — any MCP-capable agent can query chartjs2img's full reference.
Tutorial →llms.txt
Public discovery files at the site root. curl-able index and ~165 KB full-bundle for context windows.
Reference →
Ready to render?
No signup, no API key — everything runs locally.
Built on open source
chartjs2img stands on the shoulders of these projects. Licenses and notices are reproduced inside the Docker image and the source tree.
- Chart.js ↗ MIT
The chart rendering engine this service wraps
- puppeteer-core ↗ Apache-2.0
Headless Chromium control from Node
- Chrome for Testing ↗ BSD-3-Clause
Bundled Chromium auto-downloaded at first run
- Bun ↗ MIT
Runtime + single-binary compile target
- Noto Sans CJK ↗ OFL-1.1
Japanese / Chinese / Korean glyph fallback in Docker
- VitePress ↗ MIT
This documentation site
- vitepress-daisyui-theme ↗ MIT
VitePress theme using DaisyUI









