marimo is a reactive notebook for Python that models notebooks as dataflow graphs: run a cell or interact with a UI element, and marimo automatically runs affected cells, keeping code and outputs consistent and preventing bugs before they happen. Every marimo notebook is stored as pure Python, executable as a script, and deployable as an app.
Built from the ground up
marimo was built from the ground up to solve well-known problems associated with traditional notebooks.
pip install marimo && marimo tutorial intro
conda install -c conda-forge marimo && marimo tutorial intro
Developer experience is core to marimo, with an emphasis on reproducibility, maintainability, composability, and shareability.
Highlights.
reactive: run a cell and marimo automatically runs affected cells and updates their outputs
interactive: bind sliders, tables, plots, and more to Python — no callbacks required
reproducible: no hidden state, deterministic execution order — code with confidence in your notebook’s correctness
deployable: executable as a script, deployable as an app
developer-friendly: git-friendly
.py
file format, GitHub Copilot, fast autocomplete, code formatting, and more
⚡ marimo notebooks run automatically with interactions and code changes
✨ express yourself with markdown, LaTeX, tables, accordions, tabs, grids, and more
🔬 do reproducible science in an environment that makes your data tangible
🚀 deploy as interactive web apps