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 (or marks them as stale), 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 dependent cells

  • interactive: bind sliders, tables, plots, and more to Python — no callbacks required

  • reproducible: no hidden state, deterministic execution order

  • executable: execute as a Python script, parametrized by CLI args

  • shareable: deploy as an interactive web app, or run in the browser via WASM

  • data-centric: built-in SQL support and data sources panel

  • 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

Index