marimo

marimo

Reactive Python notebook stored as pure .py files: no hidden state, Git-friendly, SQL built in, deploys as apps or WASM.

🔗 Visit marimo
📁 Editors, IDEs & Dev Tools🗣️ English📅 July 20, 2026

Description

Data scientists write their analyses in 'notebooks' — documents that mix code, text and charts. The standard tool, Jupyter, has old design flaws: results can silently get out of sync with the code, and its files don't work well with team collaboration tools. marimo is a modern replacement that fixes those flaws, and it can even turn a notebook into a small interactive web page.

marimo is a reactive Python notebook that fixes the two structural problems of Jupyter: hidden state and unversionable files. Notebooks are stored as pure Python files, so they diff cleanly in Git and run as scripts; execution is a reactive dependency graph, so changing a cell automatically re-runs everything that depends on it and stale state simply cannot exist. SQL is first class — cells can query dataframes (Polars, Pandas), DuckDB, PostgreSQL, MySQL or SQLite and return results as dataframes. Interactive UI elements like sliders, dropdowns, dataframe viewers and chat panels bind directly to Python values without callback plumbing, which lets a notebook double as a deployable web application, a slide deck, or a WebAssembly page that runs entirely in the browser. AI-assisted coding is built in, and a VS Code extension plus CLI cover both editor camps. In one tool it replaces Jupyter, Jupytext, ipywidgets, Papermill and part of Streamlit. marimo is Apache 2.0 with no paid tier, has 21k+ GitHub stars, and is used at Stanford, UC Berkeley, OpenAI, BlackRock, Shopify and Moderna.

💬 Our review

The short version: if you're starting a new Python data project today, this is probably the notebook to pick — free, modern, and it removes Jupyter's classic traps.

marimo attacks the two things everyone quietly hates about Jupyter — hidden out-of-order state and JSON files that make code review impossible — and its answers are the right ones: a reactive dependency graph and pure-Python storage. The deploy-as-app story is a real bonus; many teams can delete a Streamlit wrapper that existed only to share a notebook. Adoption names (OpenAI, BlackRock, Stanford) and 21k+ stars say this is past the experiment phase. The honest costs: the reactive model enforces discipline — no cyclic dependencies, no redefining a variable across cells — so gnarly legacy notebooks won't port without refactoring; the Jupyter extension and widget ecosystem doesn't carry over; and very expensive cells need explicit lazy execution configuration to avoid unwanted re-runs. Against alternatives: Jupyter still wins on ecosystem breadth, Hex on hosted team collaboration, Observable on JS-native data apps. But marimo is free, Apache 2.0, with no paid tier and no lock-in — for new Python data and ML projects in 2026, it should honestly be the default choice.

💰 Pricing

FreeFully open source under Apache 2.0; no paid tier
Open Source 0

📊 Global score

58Average
🌐Availability15/100Faible

1 language · 0 platform

📄Profile100/100Excellent

Profile completeness

🤖 AI-enriched data

💰 Pricing model
🆓 Free

Apache 2.0 open source, no paid tier

👥 Target audienceData scientists | ML engineers | Educators
🗣️ Languagesen
🌍 Target countriesWorldwide
👍

Pros

No hidden state (reactive execution)

Pure .py files, Git-friendly

Deploys as web app or WASM

👎

Cons

Jupyter widgets don't carry over

Legacy notebooks need refactoring

❓ Frequently asked questions

Can I convert my existing Jupyter notebooks?
What happens when a cell is expensive to run?
How do I share a notebook as an app?
Is there a paid version?
Is it worth the money compared to alternatives?
Which notebook tool should you pick for your case?