DEV.co
Open-Source Databases · marimo-team

marimo

marimo is a reactive Python notebook that automatically re-runs dependent cells when you change code or interact with UI elements. It stores notebooks as pure Python files (git-friendly), executes as scripts, and deploys as web apps—designed to replace Jupyter, Streamlit, and related tools.

Source: GitHub — github.com/marimo-team/marimo
21.7k
GitHub stars
1.2k
Forks
Python
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorymarimo-team/marimo
Ownermarimo-team
Primary languagePython
LicenseApache-2.0 — OSI-approved
Stars21.7k
Forks1.2k
Open issues639
Latest release0.23.12 (2026-07-01)
Last updated2026-07-08
Sourcehttps://github.com/marimo-team/marimo

What marimo is

A Python-based reactive notebook environment with DAG-based cell dependency tracking, SQL query support, UI binding without callbacks, and deployable as WSGI apps or WASM. Execution order determined by variable references, not cell position; includes integrated package management and AI-assisted code generation.

Quickstart

Get the marimo source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/marimo-team/marimo.gitcd marimo# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Interactive data exploration and dashboards

UI-bound sliders, dataframe filters, and visualizations with automatic reactivity. SQL queries against multiple data sources (databases, warehouses, lakehouses) without manual callback management.

Reproducible ML/data-science workflows

Deterministic execution with no hidden state, built-in dependency management, and testable notebooks via pytest. Pure Python storage enables version control and CI/CD integration.

Rapid prototyping and deployment

Deploy same notebook as script (CLI-parameterized), web app, or slides. AI-native editor with built-in Copilot/Claude integration for quick iteration.

Implementation considerations

  • Reactive execution model differs fundamentally from Jupyter; developers must understand DAG dependencies and avoid circular references to prevent stale cell marking.
  • Package management is built-in but requires review of compatibility with private/internal package repositories and enterprise dependency governance.
  • AI features (Copilot, Claude Code) depend on external API keys; define cost, privacy, and data residency policies before rolling out org-wide.
  • Deployment targets (WSGI, WASM, standalone script) require matching infra; evaluate container strategy, serverless suitability, and auth/session management.
  • SQL cell requires explicit data source configuration; validate query performance and parameterization security against SQL injection in user-generated cells.

When to avoid it — and what to weigh

  • Heavy reliance on Jupyter ecosystem plugins — marimo replaces rather than extends Jupyter. Custom ipywidget extensions, JupyterLab plugins, or notebook-specific extensions may not be directly portable.
  • Real-time collaborative editing required — No explicit mention of multi-user simultaneous editing. Git-based workflows imply file-based collaboration rather than live concurrent sessions.
  • Existing large Jupyter notebook codebases — Migration from .ipynb to .py is possible but requires tooling or manual conversion. No automated migration path documented in provided data.
  • Embedded notebook server in legacy monoliths — Designed as a modern, standalone environment. Integration into pre-existing non-Python or tightly coupled systems may require architectural refactoring.

License & commercial use

Apache License 2.0 (Apache-2.0): permissive OSI license. Allows commercial use, modification, and distribution with attribution and no warranty. No patent retaliation clause unique to Apache 2.0.

Apache-2.0 explicitly permits commercial use, derivative works, and redistribution. Internal business use and SaaS deployment are allowed provided you include a copy of the license and any changes to marimo source code are disclosed (if distributed). Use as-is; no additional commercial license required.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityLow
DEV.co fitGood
Assessment confidenceHigh
Security considerations

No security audit or threat model provided in data. Key concerns: (1) arbitrary Python execution in cells poses sandbox risks if deployed as multi-user SaaS—verify isolation; (2) SQL cells may enable injection if user inputs not parameterized; (3) AI code generation features relay code to external APIs (Copilot, Claude)—define data/privacy boundaries; (4) no mention of notebook signing, audit logging, or role-based access control.

Alternatives to consider

Jupyter + Voila

Mature ecosystem, larger community, extensive extensions. Reactive UI requires Voila overlay. Less git-friendly (stored as .ipynb JSON), execution order still cell-position-based.

Streamlit

Simpler app-focused UI, rapid dashboarding. Not notebook-centric; script-driven development model. No built-in SQL or dataframe query UI. Deployment easier for standalone apps but less flexible for notebooks.

Pluto.jl (Julia)

Reactive notebook with similar DAG execution model. Language-locked to Julia. Smaller ecosystem; primarily for scientific computing.

Software development agency

Build on marimo with DEV.co software developers

Schedule a technical review to assess reactivity model fit, multi-user deployment architecture, and migration costs. Our engineers will validate integration with your data stack and DevOps practices.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

marimo FAQ

Can I convert my Jupyter notebooks to marimo?
marimo is pure Python, but .ipynb (JSON) must be converted to .py format. No automated tool provided in data; manual conversion or custom scripts required.
Is marimo suitable for multi-user production dashboards?
Unknown. Data mentions deployment as web apps and WASM but does not specify auth, session management, rate limiting, or concurrent-user handling. Requires hands-on testing and architectural review.
Can I deploy marimo without external infrastructure?
Yes—as a script (CLI args), or as a web app (WASM in browser or WSGI server). Package management is built-in. Cloud deployment details not provided.
Does marimo support private/internal packages?
Built-in package management supports major package managers. Specific enterprise repository integration (Artifactory, Nexus) not detailed; requires review.

Software developers & web developers for hire

DEV.co is a software development agency delivering custom software development services to companies building on open source. Our software developers and web developers design, integrate, and ship production systems — spanning web development, APIs, AI, data, and cloud. If marimo is part of your open-source databases roadmap, our team can implement, customize, migrate, and maintain it.

Ready to adopt marimo for your data team?

Schedule a technical review to assess reactivity model fit, multi-user deployment architecture, and migration costs. Our engineers will validate integration with your data stack and DevOps practices.