marimo logo

marimo

Reactive Python notebooks that stay reproducible, git‑friendly, and deployable

marimo is a reactive Python notebook that automatically updates dependent cells, stores notebooks as pure .py files, supports UI interactivity, SQL, AI assistance, and can be run as scripts or web apps.

marimo banner

Overview

Highlights

Reactive execution automatically updates dependent cells
Pure Python notebooks are git‑friendly and script‑runnable
Built‑in UI widgets and AI‑assisted cell generation
SQL integration and data‑aware interactive dataframes

Pros

  • Deterministic, reproducible runs
  • No hidden state; easy version control
  • Rich interactivity without callbacks
  • Deployable as web apps or CLI scripts

Considerations

  • Learning curve for the reactive model
  • Smaller ecosystem compared to Jupyter extensions
  • Static analysis can add overhead on very large notebooks
  • UI widgets may not cover all custom needs

Managed products teams compare with

When teams consider marimo, these hosted platforms usually appear on the same shortlist.

COC

CoCalc

Collaborative cloud notebooks (Jupyter, LaTeX, SageMath) with real-time editing

Databricks Notebooks logo

Databricks Notebooks

Real-time collaborative notebooks for data & AI on Databricks

Deepnote logo

Deepnote

Collaborative data notebook for Python & SQL with real-time teamwork

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Data scientists who need reproducible analyses
  • Developers building shareable data apps
  • Teams using Git for notebook versioning
  • Users wanting AI‑assisted coding in notebooks

Not ideal when

  • Heavy reliance on existing Jupyter widget ecosystem
  • Very large notebooks where static analysis slows down
  • Environments requiring extensive custom JavaScript extensions
  • Users preferring notebook formats other than .py

How teams use it

Exploratory data analysis with live filters

Analysts adjust sliders and instantly see updated visualizations, keeping results consistent and reproducible.

Automated reporting pipeline

Run notebooks as scripts with CLI arguments to generate reproducible reports on a schedule.

Deploying an interactive dashboard

Convert a notebook to a web app that stakeholders can use without installing Python.

AI‑augmented notebook authoring

Generate data‑aware code snippets via the built‑in AI assistant, accelerating prototyping.

Tech snapshot

Python59%
TypeScript40%
CSS1%
HTML1%
JavaScript1%
Jupyter Notebook1%

Tags

dataflowreactivedata-visualizationpipelineweb-appmachine-learningartificial-intelligencedagpythonsqlnotebooksdeveloper-toolsdata-science

Frequently asked questions

How do I install marimo?

Use `pip install marimo` or `conda install -c conda-forge marimo`. For extra features, install with `marimo[recommended]`.

Can I convert Jupyter notebooks to marimo?

Yes, run `marimo convert your_notebook.ipynb > your_notebook.py` or use the web conversion interface.

How does reactivity work?

When a cell runs, marimo statically analyzes variable references and automatically runs all dependent cells or marks them stale.

Is the notebook version‑control friendly?

Notebooks are stored as plain `.py` files, making them fully compatible with Git and other VCS tools.

Can I deploy a notebook as a web app?

Use `marimo run your_notebook.py` to launch an interactive web app, or share via the molab cloud service.

Project at a glance

Active
Stars
18,571
Watchers
18,571
Forks
873
LicenseApache-2.0
Repo age2 years old
Last commit10 hours ago
Primary languagePython

Last synced 3 hours ago