marimo-team/marimo

A reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. Stored as pure Python. All in a modern, AI-native editor.

What it solves

marimo is a reactive Python notebook designed to replace traditional notebooks (like Jupyter) by eliminating hidden state and ensuring that code, outputs, and program state remain consistent. It transforms the notebook from an error-prone JSON scratchpad into a reproducible, git-friendly Python program.

How it works

It uses a reactive programming model where running a cell or interacting with a UI element automatically triggers the execution of all dependent cells. It stores notebooks as pure Python files (.py), allowing them to be executed as scripts, deployed as interactive web apps, or converted from existing Jupyter notebooks. It also includes a built-in SQL engine for querying dataframes and databases directly within the notebook.

Who it’s for

Data scientists, researchers, and developers who need a reproducible and deterministic execution environment for data analysis, creating interactive apps, and collaborating via git.

Highlights

  • Reactive Execution: Automatically runs dependent cells to maintain consistency and
  • Git-Friendly: Notebooks are stored as pure Python files rather than JSON.
  • AI-Native: Built-in AI assistants and integration with AI agents like Claude Code for data-aware code generation.
  • AI-Native: Built-in AI assistants and AI agent pairing (e.g., Claude Code) for data-aware code generation.
  • Interactive UI: Bind sliders, tables, and chat interfaces to Python without needing callbacks.
  • Data-Centric: First-class SQL support and high-performance interactive dataframe viewers.
  • Versatile Deployment: Can be run as a script, a web app, or in the browser via WASM.
  • Built-in Package Management: Supports installing packages on import and serializing requirements within the notebook file.

Related

  • Project
  • Project
  • Project
  • Project
  • Project