Prepare notebook results. Share them anywhere.
Documentation 路 Getting started 路 Browser example 路 Reference
Precompute selected input combinations from a marimo reactive Python notebook and share the results as a notebook export. Applications and agents read its static files without running Python or receiving the notebook source.
- Choose the results. Publish named data, tables, charts, rendered cells, and interactive widgets for a finite set of states.
- Reuse the computation. Reuse prepared states across exports and marimo's native cell cache when a new state needs to run.
- Build your own application. Read through Python, TypeScript, or the documented export format. Your application owns presentation and deployment.
- Verify what you read. Readers validate the index and check asset sizes and hashes before decoding.
Try the exported application or compare deployment options.
Install with uv in a Python project:
uv add marimo-exportThe quickstart creates report.py and
report.export.yaml, selecting weekly and monthly reports. Build and verify them:
mkdir -p dist
uv run marimo-export build report.py --spec report.export.yaml --output dist/report
uv run marimo-export verify dist/reportBuilding executes notebook code with your Python environment's access. The
result is index.json and its assets, ready to read or serve from a static host.
from marimo_export import open_export
export = open_export("dist/report")
print(dict(export.state("monthly").output("summary").json()))
# {'days': 30, 'label': 'Last 30 days'}- Choose states and outputs, build or capture a live session, and understand caching.
- Read an export, build a browser application, or deploy updates.
- Look up the Python API, TypeScript API, CLI, and export format.
See compatibility for runtime and loader requirements, and integrity and trust before mounting executable widgets or custom modules.