marimo  by marimo-team

AI-native reactive notebooks for reproducible Python development

Created 2 years ago
20,664 stars

Top 2.4% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

Marimo addresses Python notebook reproducibility and state management issues by offering a reactive, AI-native notebook environment. Stored as pure Python (.py files), it allows reproducible experiments, SQL querying, script execution, and app deployment, benefiting data scientists, researchers, and developers seeking a modern, integrated workflow.

How It Works

Marimo implements a reactive programming model where cell execution automatically triggers dependent cells, maintaining code and output consistency. Notebooks are pure Python files, enabling direct execution as scripts or deployment as web applications. This design eliminates hidden state and manual re-runs, ensuring deterministic execution based on variable references rather than cell order, and allows for lazy evaluation of expensive computations.

Quick Start & Requirements

  • Installation: pip install marimo or conda install -c conda-forge marimo. For full features (SQL, AI), use pip install "marimo[recommended]".
  • Getting Started: Run marimo tutorial intro or use molab, a free online notebook service. Create/edit notebooks with marimo edit.
  • Execution: Run as an app with marimo run your_notebook.py or as a script with python your_notebook.py.
  • Links: Official Docs, Examples, Gallery, YouTube, Discord community.

Highlighted Details

  • Reactive Execution: Automatically updates dependent cells, marks stale computations, and cleans program state upon cell deletion, ensuring consistency.
  • Pure Python & Git-Friendly: Notebooks are standard .py files, simplifying version control, collaboration, and integration with existing Python tooling.
  • AI-Native Editor: Features integrated AI assistants (e.g., GitHub Copilot, Claude Code) and data-specialized AI capabilities, with support for custom prompts and local models.
  • First-Class SQL Support: Enables direct SQL querying against various data sources (dataframes, databases, CSVs, etc.) within notebooks, returning results as Python dataframes.
  • Reproducibility & Determinism: Guarantees deterministic execution order based on variable dependencies, no hidden state, and built-in package management with isolated virtual environments.
  • Deployable Applications: Notebooks can be deployed as interactive web applications or slides.

Maintenance & Community

Marimo is a NumFOCUS affiliated project, indicating strong community backing and alignment with core Python data science initiatives. Community engagement is fostered through Discord, GitHub Discussions, and various social media channels.

Licensing & Compatibility

The project's license is not explicitly stated in the provided README, which is a critical omission for adoption decisions. It aims to replace tools like Jupyter, Streamlit, and ipywidgets, and is compatible with popular editors like VS Code and Neovim.

Limitations & Caveats

The absence of explicit licensing information in the README is a significant adoption blocker, preventing clear assessment of commercial use or derivative works. Further investigation into the project's long-term maintenance, bus factor, and stability across its broad feature set is recommended.

Health Check
Last Commit

13 hours ago

Responsiveness

Inactive

Pull Requests (30d)
347
Issues (30d)
135
Star History
713 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.