Skip to content

About

馃摝 Prepare selected marimo notebook states once, then consume verified exports from Python, TypeScript, agents, or custom applications

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Latest commit

聽

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽

marimo-export

Prepare notebook results. Share them anywhere.

Documentation 路 Getting started 路 Browser example 路 Reference

CI PyPI npm Supported Python versions Apache License 2.0

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.

Get started

Install with uv in a Python project:

uv add marimo-export

The 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/report

Building 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'}

Explore

See compatibility for runtime and loader requirements, and integrity and trust before mounting executable widgets or custom modules.

Contributing 路 Architecture 路 Security 路 Apache-2.0

About

馃摝 Prepare selected marimo notebook states once, then consume verified exports from Python, TypeScript, agents, or custom applications

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages