{"id":13468659,"url":"https://github.com/marimo-team/marimo","last_synced_at":"2026-02-22T22:49:38.455Z","repository":{"id":188337733,"uuid":"678526156","full_name":"marimo-team/marimo","owner":"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.","archived":false,"fork":false,"pushed_at":"2026-01-31T06:04:54.000Z","size":196705,"stargazers_count":18784,"open_issues_count":565,"forks_count":891,"subscribers_count":61,"default_branch":"main","last_synced_at":"2026-01-31T10:35:44.652Z","etag":null,"topics":["artificial-intelligence","dag","data-science","data-visualization","dataflow","developer-tools","machine-learning","notebooks","pipeline","python","reactive","sql","web-app"],"latest_commit_sha":null,"homepage":"https://marimo.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marimo-team.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2023-08-14T18:56:20.000Z","updated_at":"2026-01-31T09:58:11.000Z","dependencies_parsed_at":"2023-10-14T15:32:14.168Z","dependency_job_id":"c70623ab-5bf5-4304-94a2-8f7f3cde8dec","html_url":"https://github.com/marimo-team/marimo","commit_stats":{"total_commits":2270,"total_committers":71,"mean_commits":"31.971830985915492","dds":0.5158590308370044,"last_synced_commit":"89e5175ce1c5f138d1f690fe9cfaa91d48af7335"},"previous_names":["marimo-team/marimo"],"tags_count":369,"template":false,"template_full_name":null,"purl":"pkg:github/marimo-team/marimo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marimo-team%2Fmarimo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marimo-team%2Fmarimo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marimo-team%2Fmarimo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marimo-team%2Fmarimo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marimo-team","download_url":"https://codeload.github.com/marimo-team/marimo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marimo-team%2Fmarimo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29140049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T23:14:48.546Z","status":"ssl_error","status_checked_at":"2026-02-05T23:14:35.724Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","dag","data-science","data-visualization","dataflow","developer-tools","machine-learning","notebooks","pipeline","python","reactive","sql","web-app"],"created_at":"2024-07-31T15:01:16.002Z","updated_at":"2026-02-06T00:01:24.970Z","avatar_url":"https://github.com/marimo-team.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/marimo-team/marimo/main/docs/_static/marimo-logotype-thick.svg\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eA reactive Python notebook that's reproducible, git-friendly, and deployable as scripts or apps.\u003c/em\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://docs.marimo.io\" target=\"_blank\"\u003e\u003cstrong\u003eDocs\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"https://marimo.io/discord?ref=readme\" target=\"_blank\"\u003e\u003cstrong\u003eDiscord\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/marimo-team/marimo/tree/main/examples\" target=\"_blank\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eEnglish | \u003c/b\u003e\n  \u003ca href=\"https://github.com/marimo-team/marimo/blob/main/README_Chinese.md\" target=\"_blank\"\u003e\u003cb\u003e简体中文\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://pypi.org/project/marimo/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/marimo?color=%2334D058\u0026label=pypi\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://anaconda.org/conda-forge/marimo\"\u003e\u003cimg src=\"https://img.shields.io/conda/vn/conda-forge/marimo.svg\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://marimo.io/discord?ref=readme\"\u003e\u003cimg src=\"https://shields.io/discord/1059888774789730424\" alt=\"discord\" /\u003e\u003c/a\u003e\n\u003cimg alt=\"Pepy Total Downloads\" src=\"https://img.shields.io/pepy/dt/marimo?label=pypi%20%7C%20downloads\"/\u003e\n\u003cimg alt=\"Conda Downloads\" src=\"https://img.shields.io/conda/d/conda-forge/marimo\" /\u003e\n\u003ca href=\"https://github.com/marimo-team/marimo/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/pypi/l/marimo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n**marimo** is a reactive Python notebook: run a cell or interact with a UI\nelement, and marimo automatically runs dependent cells (or \u003ca href=\"#expensive-notebooks\"\u003emarks them as stale\u003c/a\u003e), keeping code and outputs\nconsistent. marimo notebooks are stored as pure Python, executable as scripts,\nand deployable as apps.\n\n**Highlights**.\n\n- 🚀 **batteries-included:** replaces `jupyter`, `streamlit`, `jupytext`, `ipywidgets`, `papermill`, and more\n- ⚡️ **reactive**: run a cell, and marimo reactively [runs all dependent cells](https://docs.marimo.io/guides/reactivity.html) or \u003ca href=\"#expensive-notebooks\"\u003emarks them as stale\u003c/a\u003e\n- 🖐️ **interactive:** [bind sliders, tables, plots, and more](https://docs.marimo.io/guides/interactivity.html) to Python — no callbacks required\n- 🔬 **reproducible:** [no hidden state](https://docs.marimo.io/guides/reactivity.html#no-hidden-state), deterministic execution, [built-in package management](https://docs.marimo.io/guides/editor_features/package_management.html)\n- 🏃 **executable:** [execute as a Python script](https://docs.marimo.io/guides/scripts.html), parameterized by CLI args\n- 🛜 **shareable**: [deploy as an interactive web app](https://docs.marimo.io/guides/apps.html) or [slides](https://docs.marimo.io/guides/apps.html#slides-layout), [run in the browser via WASM](https://docs.marimo.io/guides/wasm.html)\n- 🛢️ **designed for data**: query dataframes and databases [with SQL](https://docs.marimo.io/guides/working_with_data/sql.html), filter and search [dataframes](https://docs.marimo.io/guides/working_with_data/dataframes.html)\n- 🐍 **git-friendly:** notebooks are stored as `.py` files\n- ⌨️ **a modern editor**: [GitHub Copilot](https://docs.marimo.io/guides/editor_features/ai_completion.html#github-copilot), [AI assistants](https://docs.marimo.io/guides/editor_features/ai_completion.html#using-ollama), vim keybindings, variable explorer, and [more](https://docs.marimo.io/guides/editor_features/index.html)\n\n```python\npip install marimo \u0026\u0026 marimo tutorial intro\n```\n\n_Try marimo at [our online playground](https://marimo.app/l/c7h6pz), which runs entirely in the browser!_\n\n_Jump to the [quickstart](#quickstart) for a primer on our CLI._\n\n## A reactive programming environment\n\nmarimo guarantees your notebook code, outputs, and program state are consistent. This [solves many problems](https://docs.marimo.io/faq.html#faq-problems) associated with traditional notebooks like Jupyter.\n\n**A reactive programming environment.**\nRun a cell and marimo _reacts_ by automatically running the cells that\nreference its variables, eliminating the error-prone task of manually\nre-running cells. Delete a cell and marimo scrubs its variables from program\nmemory, eliminating hidden state.\n\n\u003cimg src=\"https://raw.githubusercontent.com/marimo-team/marimo/main/docs/_static/reactive.gif\" width=\"700px\" /\u003e\n\n\u003ca name=\"expensive-notebooks\"\u003e\u003c/a\u003e\n\n**Compatible with expensive notebooks.** marimo lets you [configure the runtime\nto be\nlazy](https://docs.marimo.io/guides/configuration/runtime_configuration.html),\nmarking affected cells as stale instead of automatically running them. This\ngives you guarantees on program state while preventing accidental execution of\nexpensive cells.\n\n**Synchronized UI elements.** Interact with [UI\nelements](https://docs.marimo.io/guides/interactivity.html) like [sliders](https://docs.marimo.io/api/inputs/slider.html#slider),\n[dropdowns](https://docs.marimo.io/api/inputs/dropdown.html), [dataframe\ntransformers](https://docs.marimo.io/api/inputs/dataframe.html), and [chat\ninterfaces](https://docs.marimo.io/api/inputs/chat.html), and the cells that\nuse them are automatically re-run with their latest values.\n\n\u003cimg src=\"https://raw.githubusercontent.com/marimo-team/marimo/main/docs/_static/readme-ui.gif\" width=\"700px\" /\u003e\n\n**Interactive dataframes.** [Page through, search, filter, and\nsort](https://docs.marimo.io/guides/working_with_data/dataframes.html)\nmillions of rows blazingly fast, no code required.\n\n\u003cimg src=\"https://raw.githubusercontent.com/marimo-team/marimo/main/docs/_static/docs-df.gif\" width=\"700px\" /\u003e\n\n**Performant runtime.** marimo runs only those cells that need to be run by\nstatically analyzing your code.\n\n**Dynamic markdown and SQL.** Use markdown to tell dynamic stories that depend on\nPython data. Or build [SQL](https://docs.marimo.io/guides/working_with_data/sql.html) queries\nthat depend on Python values and execute them against dataframes, databases,\nCSVs, Google Sheets, or anything else using our built-in SQL engine, which\nreturns the result as a Python dataframe.\n\n\u003cimg src=\"https://raw.githubusercontent.com/marimo-team/marimo/main/docs/_static/readme-sql-cell.png\" width=\"700px\" /\u003e\n\nYour notebooks are still pure Python, even if they use markdown or SQL.\n\n**Deterministic execution order.** Notebooks are executed in a deterministic\norder, based on variable references instead of cells' positions on the page.\nOrganize your notebooks to best fit the stories you'd like to tell.\n\n**Built-in package management.** marimo has built-in support for all major\npackage managers, letting you [install packages on import](https://docs.marimo.io/guides/editor_features/package_management.html). marimo can even\n[serialize package\nrequirements](https://docs.marimo.io/guides/package_reproducibility.html)\nin notebook files, and auto install them in\nisolated venv sandboxes.\n\n**Batteries-included.** marimo comes with GitHub Copilot, AI assistants, Ruff\ncode formatting, HTML export, fast code completion, a [VS Code\nextension](https://marketplace.visualstudio.com/items?itemName=marimo-team.vscode-marimo),\nan interactive dataframe viewer, and [many more](https://docs.marimo.io/guides/editor_features/index.html)\nquality-of-life features.\n\n## Quickstart\n\n**Installation.** In a terminal, run\n\n```bash\npip install marimo  # or conda install -c conda-forge marimo\nmarimo tutorial intro\n```\n\n**Create notebooks.**\n\nCreate or edit notebooks with\n\n```bash\nmarimo edit\n```\n\n**Run apps.** Run your notebook as a web app, with Python\ncode hidden and uneditable:\n\n```bash\nmarimo run your_notebook.py\n```\n\n\u003cimg src=\"https://raw.githubusercontent.com/marimo-team/marimo/main/docs/_static/docs-model-comparison.gif\" style=\"border-radius: 8px\" width=\"450px\" /\u003e\n\n**Execute as scripts.** Execute a notebook as a script at the\ncommand line:\n\n```bash\npython your_notebook.py\n```\n\n**Automatically convert Jupyter notebooks.** Automatically convert Jupyter\nnotebooks to marimo notebooks with the CLI\n\n```bash\nmarimo convert your_notebook.ipynb \u003e your_notebook.py\n```\n\nor use our [web interface](https://marimo.io/convert).\n\n**Tutorials.**\nList all tutorials:\n\n```bash\nmarimo tutorial --help\n```\n\n## Questions?\n\nSee the [FAQ](https://docs.marimo.io/faq.html) at our docs.\n\n## Learn more\n\nmarimo is easy to get started with, with lots of room for power users.\nFor example, here's an embedding visualizer made in marimo\n([video](https://marimo.io/videos/landing/full.mp4)):\n\n\u003cimg src=\"https://raw.githubusercontent.com/marimo-team/marimo/main/docs/_static/embedding.gif\" width=\"700px\" /\u003e\n\nCheck out our [docs](https://docs.marimo.io),\nthe [`examples/`](examples/) folder, and our [gallery](https://marimo.io/gallery) to learn more.\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://docs.marimo.io/getting_started/key_concepts.html\"\u003e\n        \u003cimg src=\"https://docs.marimo.io/_static/reactive.gif\" style=\"max-height: 150px; width: auto; display: block\" /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://docs.marimo.io/api/inputs/index.html\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/marimo-team/marimo/main/docs/_static/readme-ui.gif\" style=\"max-height: 150px; width: auto; display: block\" /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://docs.marimo.io/guides/working_with_data/plotting.html\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/marimo-team/marimo/main/docs/_static/docs-intro.gif\" style=\"max-height: 150px; width: auto; display: block\" /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://docs.marimo.io/api/layouts/index.html\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/marimo-team/marimo/main/docs/_static/outputs.gif\" style=\"max-height: 150px; width: auto; display: block\" /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://docs.marimo.io/getting_started/key_concepts.html\"\u003e Tutorial \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://docs.marimo.io/api/inputs/index.html\"\u003e Inputs \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://docs.marimo.io/guides/working_with_data/plotting.html\"\u003e Plots \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://docs.marimo.io/api/layouts/index.html\"\u003e Layout \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://marimo.app/l/c7h6pz\"\u003e\n        \u003cimg src=\"https://marimo.io/shield.svg\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://marimo.app/l/0ue871\"\u003e\n        \u003cimg src=\"https://marimo.io/shield.svg\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://marimo.app/l/lxp1jk\"\u003e\n        \u003cimg src=\"https://marimo.io/shield.svg\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca target=\"_blank\" href=\"https://marimo.app/l/14ovyr\"\u003e\n        \u003cimg src=\"https://marimo.io/shield.svg\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Contributing\n\nWe appreciate all contributions! You don't need to be an expert to help out.\nPlease see [CONTRIBUTING.md](https://github.com/marimo-team/marimo/blob/main/CONTRIBUTING.md) for more details on how to get\nstarted.\n\n\u003e Questions? Reach out to us [on Discord](https://marimo.io/discord?ref=readme).\n\n## Community\n\nWe're building a community. Come hang out with us!\n\n- 🌟 [Star us on GitHub](https://github.com/marimo-team/marimo)\n- 💬 [Chat with us on Discord](https://marimo.io/discord?ref=readme)\n- 📧 [Subscribe to our Newsletter](https://marimo.io/newsletter)\n- ☁️ [Join our Cloud Waitlist](https://marimo.io/cloud)\n- ✏️ [Start a GitHub Discussion](https://github.com/marimo-team/marimo/discussions)\n- 🦋 [Follow us on Bluesky](https://bsky.app/profile/marimo.io)\n- 🐦 [Follow us on Twitter](https://twitter.com/marimo_io)\n- 🕴️ [Follow us on LinkedIn](https://www.linkedin.com/company/marimo-io)\n\n## Inspiration ✨\n\nmarimo is a **reinvention** of the Python notebook as a reproducible, interactive,\nand shareable Python program, instead of an error-prone JSON scratchpad.\n\nWe believe that the tools we use shape the way we think — better tools, for\nbetter minds. With marimo, we hope to provide the Python community with a\nbetter programming environment to do research and communicate it; to experiment\nwith code and share it; to learn computational science and teach it.\n\nOur inspiration comes from many places and projects, especially\n[Pluto.jl](https://github.com/fonsp/Pluto.jl),\n[ObservableHQ](https://observablehq.com/tutorials), and\n[Bret Victor's essays](http://worrydream.com/). marimo is part of\na greater movement toward reactive dataflow programming. From\n[IPyflow](https://github.com/ipyflow/ipyflow), [streamlit](https://github.com/streamlit/streamlit),\n[TensorFlow](https://github.com/tensorflow/tensorflow),\n[PyTorch](https://github.com/pytorch/pytorch/tree/main),\n[JAX](https://github.com/google/jax), and\n[React](https://github.com/facebook/react), the ideas of functional,\ndeclarative, and reactive programming are transforming a broad range of tools\nfor the better.\n\n\u003cp align=\"right\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/marimo-team/marimo/main/docs/_static/marimo-logotype-horizontal.png\" height=\"200px\"\u003e\n\u003c/p\u003e\n","funding_links":[],"categories":["Python","TypeScript","Interactive Interpreter","Data Science Notebook","Projects with Great Documentation","artificial-intelligence","Repos","web-app","🐍 Python Programming","Coding Tools for Economists","⚡ Productivity","Resources","Data Exploration","\u003ca name=\"Python\"\u003e\u003c/a\u003ePython"],"sub_categories":["📚 Interactive Notebooks","Resources","Official Resources"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarimo-team%2Fmarimo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarimo-team%2Fmarimo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarimo-team%2Fmarimo/lists"}