marimo
by
marimo-team

Description: 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.

View marimo-team/marimo on GitHub ↗

Summary Information

Updated 44 minutes ago
Added to GitGenius on May 7th, 2025
Created on August 14th, 2023
Open Issues/Pull Requests: 590 (+1)
Number of forks: 931
Total Stargazers: 19,308 (+4)
Total Subscribers: 63 (+0)
Detailed Description

Marimo is a Python library aiming to bridge the gap between data science scripting and fully-fledged web applications, specifically focusing on interactive data exploration and building shareable, reproducible analyses. It allows users to create dynamic, web-based user interfaces directly from their existing Python code (primarily Jupyter Notebooks) with minimal modification. Unlike traditional web frameworks requiring separate frontend and backend development, Marimo handles both, letting data scientists concentrate on the core logic and analysis.

At its heart, Marimo introduces the concept of "cells" which are essentially chunks of Python code that can be executed independently and whose outputs are automatically tracked and displayed. These cells are not just about displaying values; they can produce rich outputs like plots, tables, HTML, and even other interactive Marimo components. The key innovation is *reactive programming*. When a cell's input changes (e.g., a slider value is adjusted, a file is uploaded), Marimo automatically re-executes dependent cells, updating the UI in real-time. This eliminates the need for manual UI updates and complex event handling. The library leverages Python's type hints and a dependency tracking system to efficiently determine which cells need to be re-run.

The repository contains the core Marimo library (`marimo`), example notebooks demonstrating various features, a CLI tool for running Marimo apps, and documentation. The `marimo` package itself provides the core reactive primitives, UI components (sliders, buttons, text inputs, etc.), and the runtime environment for executing and rendering Marimo apps. The examples showcase how to build interactive dashboards, data explorers, and even simple machine learning demos. The CLI (`marimo run`) is used to start a local development server and view your Marimo app in a web browser.

A significant aspect of Marimo is its focus on reproducibility. Because the app is defined as a Python script (typically a notebook), it's inherently version-controllable and easily shared. The reactive nature ensures that changes to the underlying data or code are automatically reflected in the UI, making it easier to experiment and iterate. Furthermore, Marimo apps can be deployed to various platforms, including cloud services, allowing for easy sharing and collaboration. The project is actively developing deployment options, including a dedicated cloud platform.

The repository also includes a growing ecosystem of community contributions and integrations. While still relatively young, Marimo is gaining traction within the data science community due to its ease of use and powerful reactive capabilities. The project is open-source and welcomes contributions, with a clear roadmap outlining future features and improvements, including enhanced component libraries, improved deployment options, and better integration with existing data science tools. Essentially, Marimo aims to empower data scientists to build interactive applications without needing to become full-stack web developers.

marimo
by
marimo-teammarimo-team/marimo

Repository Details

Fetching additional details & charts...