Marimo 0.10.18

marimo is a reactive Python notebook: run a cell or interact with a UI element, and marimo automatically runs dependent cells (or marks them as stale), keeping code and outputs consistent. marimo notebooks are stored as pure Python, executable as scripts, and deployable as apps. Highlights. 🚀 batteries-included: replaces jupyter, streamlit, jupytext, ipywidgets, papermill, and more ⚡️ reactive: run a cell, and marimo reactively runs all dependent cells or marks them as stale 🖐️ interactive: bind sliders, tables, plots, and more to Python — no callbacks required 🔬 reproducible: no hidden state, deterministic execution, built-in package management 🏃 executable: execute as a Python script, parameterized by CLI args 🛜 shareable: deploy as an interactive web app or slides, run in the browser via WASM 🛢️ designed for data: query dataframes and databases with SQL, filter and search dataframes 🐍 git-friendly: notebooks are stored as .py files ⌨️ a modern editor: GitHub Copilot, AI assistants, vim keybindings, variable explorer, and more

Tags data-science data-visualization machine-learning notebooks ai python typescript
License Apache
State stable

Recent Releases

0.10.1831 Jan 2025 03:15 minor feature: lt;h2 gt;Highlights lt;/h2 gt;. lt;ul gt;. lt;li gt; Added lt;strong gt; lt;a href="https://docs.marimo.io/guides/editor_features/ai_completion/?h=deepseek#using-other-ai-providers" rel="nofollow" gt;DeepSeek lt;/a gt; lt;/strong gt; support and documentation for AI completions lt;/li gt;. lt;li gt; New lt;code gt;mo.ui.app_meta().request lt;/code gt; API to access incoming request context (headers, query params, and user info) lt;/li gt;. lt;li gt; Various to lt;code gt;mo.Thread lt;/code gt;, Altair charts, and table formatting. lt;/li gt;. lt;/ul gt;. lt;h2 gt;What's Changed lt;/h2 gt;. lt;ul gt;. lt;li gt;: allow editable installs when devloping locally with sandbox by lt;a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mscolnick/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mscolnick" gt;@mscolnick lt;/a gt; in lt;a class="-link js--link" data-error-text="Failed to load title" data-id="2810398831" data-permission-text="Title is private" data-url="https://github.com/marimo-team/marimo//3568" data-hovercard-type="pull_request" data-hovercard-url="/marimo-team/marimo/pull/3568/hovercard" href="https://github.com/marimo-team/marimo/pull/3568" gt;#3568 lt;/a gt; lt;/li gt;. lt;li gt;feat: add wasm watch and some docs on set up by lt;a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Light2Dark/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Light2Dark" gt;@Light2Dark lt;/a gt; in lt;a class="-link js--link" data-error-text="Failed to load title" data-id="2810693796" data-permission-text="Title is private" data-url="https://github.com/marimo-team/marimo//3572" data-hovercard-type="pull_request" data-hovercard-url="/marimo-team/marimo/pull/3572/hovercard" href="https://github.com/marimo-team/marimo/pull/3572" gt;#3572 lt;/a gt; lt;/li gt;. lt;li gt;:
0.10.1727 Jan 2025 03:15 minor feature: lt;h2 gt;What's Changed lt;/h2 gt;. lt;p gt;Quality-of-life improvements: lt;/p gt;. lt;ul gt;. lt;li gt; Improvements to multi-column notebooks lt;/li gt;. lt;li gt; A for timezone rendering in altair charts lt;/li gt;. lt;li gt; API improvements to persistent caching lt;/li gt;. lt;/ul gt;. lt;h2 gt;All changes lt;/h2 gt;. lt;ul gt;. lt;li gt;: column grouping by lt;a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mscolnick/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mscolnick" gt;@mscolnick lt;/a gt; in lt;a class="-link js--link" data-error-text="Failed to load title" data-id="2805978877" data-permission-text="Title is private" data-url="https://github.com/marimo-team/marimo//3547" data-hovercard-type="pull_request" data-hovercard-url="/marimo-team/marimo/pull/3547/hovercard" href="https://github.com/marimo-team/marimo/pull/3547" gt;#3547 lt;/a gt; lt;/li gt;. lt;li gt;style: column background by lt;a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/akshayka/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/akshayka" gt;@akshayka lt;/a gt; in lt;a class="-link js--link" data-error-text="Failed to load title" data-id="2805925040" data-permission-text="Title is private" data-url="https://github.com/marimo-team/marimo//3544" data-hovercard-type="pull_request" data-hovercard-url="/marimo-team/marimo/pull/3544/hovercard" href="https://github.com/marimo-team/marimo/pull/3544" gt;#3544 lt;/a gt; lt;/li gt;. lt;li gt;improvement: support data uris in table by lt;a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mscolnick/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mscolnick" gt;@mscolnick lt;/a gt; in lt;a class="-link js--link" data-error-text="Fai
0.10.1623 Jan 2025 03:15 minor feature: lt;h2 gt;Highlights lt;/h2 gt;. lt;p gt; lt;strong gt;Tracing panel lt;/strong gt;: This release includes a new helper panel for cell tracing and observability. This can be used for real-time tracking of slow cells, visualizing execution order, and monitoring of execution statuses. This feature was built by lt;a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Light2Dark/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Light2Dark" gt;@Light2Dark lt;/a gt;. lt;/p gt;. lt;details open="" class="details-reset border rounded-2" gt;. lt;summary class="px-3 py-2" gt;. lt;svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-camera-video" gt;. lt;path d="M16 3.75v8.5a.75.75 0 0 1-1.136.643L11 10.575v.675A1.75 1.75 0 0 1 9.25 13h-7.5A1.75 1.75 0 0 1 0 11.25v-6.5C0 3.784.784 3 1.75 3h7.5c.966 0 1.75.784 1.75 1.75v.675l3.864-2.318A.75.75 0 0 1 16 3.75Zm-6.5 1a.25.25 0 0 0-.25-.25h-7.5a.25.25 0 0 0-.25.25v6.5c0.138.112.25.25.25h7.5a.25.25 0 0 0.25-.25v-6.5ZM11 8.825l3.5 2.1v-5.85l-3.5 2.1Z" gt; lt;/path gt;. lt;/svg gt;. lt;span aria-label="Video description videoo.mp4" class="m-1" gt;videoo.mp4 lt;/span gt;. lt;span class="dropdown-caret" gt; lt;/span gt;. lt;/summary gt;. lt;video src="https://private-user-images.githubusercontent.com/19585239/397919308-1c042e0b-2f70-4ec0-ad63-a0c59d5a89a4.mp4?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzc2MDI0MDIsIm5iZiI6MTczNzYwMjEwMiwicGF0aCI6Ii8xOTU4NTIzOS8zOTc5MTkzMDgtMWMwNDJlMGItMmY3MC00ZWMwLWFkNjMtYTBjNTlkNWE4OWE0Lm1wND9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAxMjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMTIzVDAzMTUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUzN
0.10.1419 Jan 2025 10:09 minor feature: Highlights Lay out notebooks in columns! Thanks to work by @wasimsandhu, you can now arrange cells into multiple columns while editing use your screen real-estate to the fullest! (Docs.) Edit notebooks using your own editor. Announcing initial support for one of our most asked-for features: you can now edit notebook files using your editor of choice (neovim, Cursor, VS Code, ...) and stream changes to a running edit session. To opt-in, start your edit session with --watch: marimo edit --watch my_notebook.py When editing my_notebook.py in your text editor, changes are sent to the browser on save. Expect quality-of-life improvements to the external editor experience in the future. Re-run all cells. A new command in the command palette lets you re-run all cells; you can assign a keyboard shortcut to this in the notebook settings. All changes docs: add pip usage instruction to Jupyter guide by @Haleshot in #3431 fix: handle marimo extras in --sandbox and package installation by @mscolnick in #3425 fix(deps): update ruff, mkdocs, pytest by @renovate in #3427 fix(deps): update dependency @textea/json-viewer to v4 by @renovate in #3430 Typo: pandas - polars by @ushuz in #3434 fix: use relative path in asgi redirect by @mscolnick in #3433 feat: marimo edit --watch by @mscolnick in #3437 improve: always add marimo in sandbox by @akshayka in #3439 docs: update watching documentation by @akshayka in #3440 docs: fix tiny typo by @akshayka in #3442 Fix broken link by @hattajr in #3443 fix: Add missing open bracket in docs/faq.md by @AVHopp in #3446 fix: fallback on readText permisisons by @mscolnick in #3444 feat: re-run all cells action (useful for external queries/dashboards) by @mscolnick in #3448 docs: fix links, add ci by @mscolnick in #3450 improvement: intelligently keep order of cells when running --watch by @mscolnick in #3451 docs: add llm.txt file by @mscolnick in #3452