Skip to content

marimo

marimo is a free, open-source reactive notebook for Python that stores each notebook as a plain .py file instead of the JSON .ipynb document that Jupyter Notebook uses.

Its defining feature is reactive execution. marimo tracks the variables that each cell defines and reads, builds a dependency graph from them, and reruns the dependent cells whenever code or an interactive element changes.

A lazy runtime mode marks those cells stale instead, which keeps expensive computations under manual control. Reactivity has a price: no variable may be defined in more than one cell, so notebooks carried over from other tools often need renaming first. Move the slider below to change n, and switch runtimes to compare what happens to the cells that read it:

Interactive diagram — enable JavaScript to view.

Because notebooks are pure Python, they diff under version control, run as scripts, and deploy as web apps or WebAssembly pages. The editor adds interactive elements such as sliders and tables, SQL cells that query dataframes and databases, a variable explorer, Vim keybindings, and Ruff formatting.

marimo runs Python only. It isn’t built on IPython and has no kernels for other languages, so it doesn’t replace a multi-language Jupyter setup, and IPython magic commands don’t carry over. Moving an existing notebook is a conversion rather than a drop-in: marimo convert notebook.ipynb imports it, and marimo export ipynb writes a marimo notebook back out.

marimo can serialize a notebook’s dependencies into the file itself with PEP 723 inline metadata and then run it in an isolated environment through uv.

The editor takes inline completions from GitHub Copilot or Windsurf, and its chat panel connects to OpenAI, Anthropic, Google, Ollama, or any OpenAI-compatible endpoint. Embedding coding agents such as Claude Code and Codex in the chat panel is experimental. Released under the Apache 2.0 license, it requires Python 3.10 or later.

Official website: marimo.io

Marimo: A Reactive, Reproducible Notebook

Tutorial

marimo: A Reactive, Reproducible Notebook

Discover how marimo notebook simplifies coding with reactive updates, UI elements, and sandboxing for safe, sharable notebooks.

intermediate data-science editors python tools

For additional information on related topics, take a look at the following resources:

Have a question about this? Mentor AI can show you examples, compare related terms, and point you to tutorials.


By Martin Breuss • Updated Sept. 26, 2026