marimo
A reactive Python notebook keeps code and outputs in sync, runs locally, and supports SQL, interactive apps, and local or hosted AI models.

marimo is a Python notebook for data analysis, machine learning, and interactive experiments. It keeps results consistent as code changes, reducing the manual reruns and hidden state that can make notebooks hard to trust.
- Reactive execution: Changes automatically rerun dependent cells, or mark their outputs as stale when you want to avoid expensive computations.
- Interactive data exploration: Sliders, dropdowns, selectable plots, and searchable dataframe tables connect directly to Python, so inputs and results stay in sync.
- Python and SQL together: Query dataframes and databases in SQL cells, with support for Pandas, Polars, DuckDB, SQLite, Postgres, and MySQL.
- Reusable notebooks and apps: Plain
.pyfiles work with Git and can run as scripts, supply reusable Python functions, or become interactive web apps and slides. - AI coding assistance: The editor includes completion, inline edits, and context-aware chat with local or hosted models, plus connections to agents such as Claude Code.
marimo is open source under Apache 2.0 and can run on your own machine or serve apps from your own server. WebAssembly exports let shared notebooks run in a browser. AI assistance can use local models; choosing a hosted model sends requests to that provider. Notebook execution follows a deterministic order, and package requirements can live alongside the code for reproducible environments.