22.7k stars · Apache-2.0 · 0.24.0 (2026-08-17)
Reactive Python notebook stored as a plain .py file — no hidden execution order, and `marimo run` serves it as a web app.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A reactive Python notebook. The file on disk is ordinary .py; change a cell and every cell that depends on it re-runs automatically, so there is no hidden state and no out-of-order execution. It has built-in interface elements — sliders, dropdowns, tables — and the same file can be served as a web app or run as a script.
Why it matters
Count how many entries in this ledger end with "the result is a pandas DataFrame": advertools' crawl tables, tsfresh's features, arch's volatility series, skforecast's fold metrics, quantstats' inputs. You have nowhere good to look at any of them. Jupyter is the usual answer and it is the wrong one for you specifically, on two counts: its hidden execution order quietly produces wrong results, which matters most when the result is a trading decision; and .ipynb files are unreadable in git and awkward for Claude Code to edit. A marimo notebook is a Python file — Claude Code edits it like any other source file — and reactivity means a slider over "window length" or "volatility threshold" re-runs the whole analysis as you drag it. That is the difference between reading a backtest result and interrogating one. And since the same file serves as an app, an internal ScalpingMate research tool costs you nothing extra to build.
- Notebooks are plain
.pyfiles: git-diffable, reviewable, and directly editable by Claude Code - Reactive execution eliminates the "I ran the cells out of order" class of wrong answer, which is the one that costs money here
marimo runserves the same file as a web app, so a research notebook becomes an internal tool for free
- It is not Jupyter and will not run your existing
.ipynbfiles unchanged. There is an importer; expect friction - Reactivity means an expensive cell re-runs whenever anything upstream changes, so long jobs need caching or explicit stops
- A much smaller ecosystem than Jupyter — most tutorials you find in the wild will be written for the other one
source venv/bin/activate pip install marimo marimo edit analysis.py