A drop-in Jupyter replacement with an AI agent, a `.deepnote` YAML notebook format, and a block-based editor for Python, R, and SQL.
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 Notebook
Streamlit
- 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
Install marimo with pip
pip install marimo - 2
Launch the interactive tutorial
marimo tutorial intro - 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
Apache Superset is a self-service business intelligence web app for exploring data, building charts, dashboards and running SQL against many databases.
Python library that turns scripts into interactive web apps for data dashboards, reports and chat apps.
Python package for quickly building and sharing web demos and UIs for machine learning models, APIs, or any Python function.
A 10-week, 20-lesson beginner curriculum from Microsoft covering core data science topics with Python, quizzes and projects.
Python command-line tool that generates minimalist, printable map posters of any city from OpenStreetMap data, with selectable color themes.