kaleido
Plotly graph export library
Decision gist · record as of 2026-08-14
Yes. Kaleido is actively maintained, has low install friction, carries no security vulnerabilities, and is widely used (top_5000 tier). It solves a specific, well-defined problem—exporting figures to static images—with a straightforward API. The main prerequisite is Chrome installation, which is clearly documented and can be automated. Install it if you need to export visualizations to static formats.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Chrome must be installed on the system.
- If not present, run `kaleido_get_chrome` or call `kaleido.get_chrome_sync()` in Python to install a compatible version.
- Low install friction with a pure-Python wheel.
License · maintenance · safety
(unclear) — Licensed under the MIT License, which permits free use, modification, and redistribution with minimal restrictions. No notable licensing constraints for typical use.
last release 2026-05-04 (102 days) · last repo commit 2026-07-22 · 495 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 11,538,259 downloads/mo, #1,384 on PyPI
Alternatives
Verify before relying
import asyncio
import kaleido
async def export():
async with kaleido.Kaleido(n=4, timeout=90) as k:
await k.write_fig(fig, path="./", opts={"format":"jpg"})
asyncio.run(export())- Whether the four runtime dependencies (choreographer, logistro, orjson, packaging) are internal utilities or external packages with their own maintenance status.
- Performance characteristics when processing large batches of figures or high-resolution exports.
- Compatibility with headless environments or containerized deployments beyond the Chrome requirement.
What it is and what it does
Kaleido is a cross-platform library that converts figures into static image files in formats like PNG, SVG, and PDF. It is primarily designed to work with Plotly.py but can also be used directly in Python code. The library uses Chrome as its rendering engine, which must be installed separately on the system; Kaleido provides tooling to obtain a compatible Chrome version if needed.
The package offers both async and synchronous APIs for image generation. You can create a Kaleido instance to manage multiple concurrent exports with configurable process counts and timeouts, or use shortcut functions for simpler one-off exports. Image options such as scale, format, width, and height can be customized, and error handling can be configured to either halt on the first failure or collect errors and continue processing.
Use it for
- Export dashboards and visualizations to static images for reports, presentations, or archival.
- Batch-convert multiple figures to PNG or PDF in parallel using the async API with configurable worker processes.
- Generate publication-ready charts in SVG or PDF format with custom dimensions and scaling for documents.
- Automate static image export in CI/CD pipelines or server-side applications.
- Create static snapshots of visualizations for embedding in web pages or email.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Kaleido is actively maintained, has low install friction, carries no security vulnerabilities, and is widely used (top_5000 tier). It solves a specific, well-defined problem—exporting figures to static images—with a straightforward API. The main prerequisite is Chrome installation, which is clearly documented and can be automated. Install it if you need to export visualizations to static formats.
Install
kaleido on PyPI
Before you install
Low install friction with a pure-Python wheel. Maintenance is active with recent releases. The main runtime requirement is Chrome, which must be installed separately; Kaleido provides a command-line tool and Python function to install a compatible version if needed.
Chrome must be installed on the system. If not present, run `kaleido_get_chrome` or call `kaleido.get_chrome_sync()` in Python to install a compatible version.
License in practice
Licensed under the MIT License, which permits free use, modification, and redistribution with minimal restrictions. No notable licensing constraints for typical use.
Quickstart
import asyncio
import kaleido
async def export():
async with kaleido.Kaleido(n=4, timeout=90) as k:
await k.write_fig(fig, path="./", opts={"format":"jpg"})
asyncio.run(export())
Verify before relying
- Whether the four runtime dependencies (choreographer, logistro, orjson, packaging) are internal utilities or external packages with their own maintenance status.
- Performance characteristics when processing large batches of figures or high-resolution exports.
- Compatibility with headless environments or containerized deployments beyond the Chrome requirement.
Package facts
| License | Not declared unclear |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packageschoreographerlogistroorjsonpackaging |
| Maintenance | Actively maintained 102 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 11,538,259 / month, #1,384 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: kaleido-1.3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “static image export”
- kaleidoKaleido generates static images (PNG, SVG, PDF, etc.) from figures,…
- vl-convert-pythonConverts Vega-Lite chart specifications to static SVG or PNG images,…
- gh-md-to-htmlConverts GitHub-flavored Markdown to HTML with support for offline…
Give your agent the search over MCP, or paste the wish link into any chat.
More Graphics packages
Pillow adds image processing capabilities to Python, providing file format support, efficient pixel data handling, and image manipulation operations.
Install it if you need to work with images in Python—it is the de facto standard for this task.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Enables matplotlib figures to display inline directly within Jupyter notebooks and IPython environments instead of in separate windows.
PyMuPDF extracts, renders, converts, and manipulates PDF and other document formats (XPS, EPUB, images, Office files via Pro) with high performance, providing text, tables, images, and metadata with precise layout information.
The AGPL license requires careful review if you are building proprietary software—commercial licensing is available from Artifex.
pypdfium2 is a Python binding to PDFium that enables PDF rendering, inspection, manipulation, and creation through a ctypes interface to Google's PDFium library.
Install it if you need PDF rendering, inspection, or manipulation in Python; the medium install friction is offset by comprehensive platform support.
Altair is a declarative Python library for creating interactive statistical visualizations by writing simple, readable code that compiles to Vega-Lite specifications.
See also plotly · chart-studio · CairoSVG · dash-svg · plotly-express · sphinx-plotly-directive · sphinxcontrib-svg2pdfconverter · vl-convert-python · qrcode · typst