Repolode
marimo-team

marimo-team/marimo

A reactive Python notebook that auto-reruns dependent cells, stores notebooks as plain .py files, and can run as scripts or deployed apps.

Open-source alternative to:Jupyter NotebookStreamlit

Stars
23,249
Forks
1,347
Open issues
603
Last commit
8 hours ago

What is it?

marimo is a reactive notebook for Python. When you run a cell or change a UI element such as a slider, marimo automatically runs the cells that depend on the changed variables, or marks them as stale if you configure the runtime to be lazy. Deleting a cell removes its variables from memory, which is meant to prevent the hidden state that makes traditional Jupyter notebooks hard to reproduce.

Notebooks are saved as plain Python files, so they work with git and diff cleanly. The same file can be run as a script from the command line with arguments, served as an interactive web app with code hidden, or opened in VS Code, Cursor, or PyCharm. Cells can also run SQL queries against dataframes, databases, CSVs and other sources, with results returned as Python dataframes.

The editor includes built-in package management, an interactive dataframe viewer, AI code completion with support for bring-your-own API keys or local models, and a pair mode for working with coding agents. marimo also converts existing Jupyter notebooks through its CLI.

Key features

  • 01Automatically reruns cells that depend on changed variables.
  • 02Stores notebooks as plain .py files that work with git.
  • 03Binds sliders, dropdowns, tables and chat inputs to Python code without callbacks.
  • 04Queries dataframes, databases and CSVs with SQL, returning Python dataframes.
  • 05Runs notebooks as scripts with CLI arguments or deploys them as web apps and slides.
  • 06Supports pytest for testing notebook code.

Use cases

  • Exploratory data analysis where results must stay consistent with the code.
  • Turning an analysis notebook into a shareable interactive dashboard.
  • Running parameterized notebooks as scheduled or batch Python scripts.
  • Converting existing Jupyter notebooks to a git-friendly format.

Quick start

  1. 1

    Install marimo with pip

    pip install marimo
  2. 2

    Launch the interactive tutorial

    marimo tutorial intro
  3. 3

    Create or edit a notebook in the browser editor

    marimo edit

Things to know

  • Requires a Python environment to run.

Topics

FAQ

What is marimo?
A reactive Python notebook that auto-reruns dependent cells, stores notebooks as plain .py files, and can run as scripts or deployed apps. marimo is a reactive notebook for Python. When you run a cell or change a UI element such as a slider, marimo automatically runs the cells that depend on the changed variables, or marks them as stale if you configure the runtime to be lazy. Deleting a cell removes its variables from memory, which is meant to prevent the hidden state that makes traditional Jupyter notebooks hard to reproduce.
Is marimo free to use? What license does it have?
marimo is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is marimo still maintained?
Actively maintained. The last commit to marimo was on Oct 20, 2026.
What can I use marimo for?
Exploratory data analysis where results must stay consistent with the code. Turning an analysis notebook into a shareable interactive dashboard. Running parameterized notebooks as scheduled or batch Python scripts. Converting existing Jupyter notebooks to a git-friendly format.
How do I install marimo?
Install marimo with pip: pip install marimo Launch the interactive tutorial: marimo tutorial intro Create or edit a notebook in the browser editor: marimo edit
Where can I get marimo?
The source code and installation instructions are on GitHub: https://github.com/marimo-team/marimo

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects