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

Contents

Links

Index