NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2518 most downloaded on PyPI
A library for making reactive notebooks and apps
Last release 3 days ago
01 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 54 of the last 60 stable releases
6 versions withdrawn
withdrawn after publishing
5 years old
392 releases · first in 2022
One column per quarter.
chore(deps): update github artifact actions to v4 (major) by @renovate in https://github.com/marimo-team/marimo/pull/2803
Custom-AI-rules; docs touchups by @Haleshot in https://github.com/marimo-team/marimo/pull/2795Full Changelog: https://github.com/marimo-team/marimo/compare/0.9.15...0.9.16
The release contains many improvements and fixes.
The release contains many improvements and fixes.
mo.ui.table: https://github.com/marimo-team/marimo/pull/2730Thanks for the contributions!
mo.ui.table by @metaboulie in https://github.com/marimo-team/marimo/pull/2730Groq for mo.ui.chat by @Haleshot in https://github.com/marimo-team/marimo/pull/2757Full Changelog: https://github.com/marimo-team/marimo/compare/0.9.14...0.9.15
Nothing published for this version
fix: version in snapshot by @mscolnick in https://github.com/marimo-team/marimo/pull/2690
Full Changelog: https://github.com/marimo-team/marimo/compare/0.9.12...0.9.13
mo.Thread: mo.Thread has the same API as threading.Thread, but mo.Threads are able to communicate with the marimo frontend, whereas threading.Thread c
mo.Thread has the same API as threading.Thread, but mo.Threads are able to communicate with the marimo frontend, whereas threading.Thread can’t.Full Changelog: https://github.com/marimo-team/marimo/compare/0.9.11...0.9.12
fix rendering of ui.date_range embedded example by @AdamRJensen in https://github.com/marimo-team/marimo/pull/2640
Full Changelog: https://github.com/marimo-team/marimo/compare/0.9.10...0.9.11
example: seam carving by @akshayka in https://github.com/marimo-team/marimo/pull/2613
Full Changelog: https://github.com/marimo-team/marimo/compare/0.9.9...0.9.10
Nothing published for this version
fix: don't show errors in run mode when re-running by @mscolnick in https://github.com/marimo-team/marimo/pull/2595
Full Changelog: https://github.com/marimo-team/marimo/compare/0.9.7...0.9.8
🤖 Custom AI assistant rules. Customize the rules for your AI assistant in the user configuration
Full Changelog: https://github.com/marimo-team/marimo/compare/0.9.6...0.9.7
Nothing published for this version
experimental data editor Use mo.ui.experimental_data_editor() to create an editable table. This feature is subject to change and light on features: pl
mo.ui.experimental_data_editor() to create an editable table. This feature is subject to change and light on features: please let us know if you have feedback or feature requests.Full Changelog: https://github.com/marimo-team/marimo/compare/0.9.4...0.9.5
This release includes small improvements and fixes:
This release includes small improvements and fixes:
uv sourcesFull Changelog: https://github.com/marimo-team/marimo/compare/0.9.3...0.9.4
Nothing published for this version
🛠 Quality of life improvements and bug fixes.
🛠 Quality of life improvements and bug fixes.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.9.1...0.9.2
This patch release includes small bug fixes for 0.9.0.
This patch release includes small bug fixes for 0.9.0.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.9.0...0.9.1
For a deep dive into this release, check out our blog post.
For a deep dive into this release, check out our blog post.
This release drops support for Python 3.8, which has reached its end-of-life.
mo.notebook_dir(). avoid relative paths for better reproducibility by @mscolnick in https://github.com/marimo-team/marimo/pull/2464_repr_*_()_ protocol by @akshayka in https://github.com/marimo-team/marimo/pull/2470Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.22...0.9.0
Important bug fixes for running sandboxed notebooks
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.21...0.8.22
🪐 ➡️ 🍃 A new and improved auto-converter from Jupyter to marimo. This release substantially improves our tool for converting Jupyter notebooks to mari
🪐 ➡️ 🍃 A new and improved auto-converter from Jupyter to marimo. This release substantially improves our tool for converting Jupyter notebooks to marimo notebooks — you no longer have to resolve multiple definition errors on your own, and some popular magic commands are replaced with marimo equivalents.
Try it at the command-line: marimo convert nb.ipynb > nb.py.
Converting from Jupyter to marimo gets you freebies like a much more powerful dataframe viewer and editor (including GitHub copilot, AI completion, and data source panels), with zero effort required on your part.
📦 Making it easier to start sandboxed notebooks. If a notebook encapsulates its own dependencies, marimo now prompts you to open it an a temporary venv, with its packages automatically installed:
✅ -y option for our CLI. Adds a CLI -y option that when enabled automatically confirms "yes" for interactive prompts.
🖱️Multi-select improvements Select and unselect all, with one click.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.20...0.8.21
📦 Package manager panel. This release adds a new panel — the package manager panel. From this panel, you can view all packages installed in your envir
📦 Package manager panel. This release adds a new panel — the package manager panel. From this panel, you can view all packages installed in your environment, as well as add and remove packages. When running with --sandbox, adding and removing packages also updates your notebook's inline script metadata.
🖼️ mo.iframe(): Use mo.iframe to create iframes that properly resize their content.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.19...0.8.20
🥧 pyecharts support: You can now use pyecharts in marimo! 🛠️ `marimo run` reliability: This release fixes an issue some users saw when running marimo
🥧 pyecharts support: You can now use pyecharts in marimo!
🛠️ marimo run reliability: This release fixes an issue some users saw when running marimo apps in production.
📦 Package manager improvements: marimo's package installer now lets you choose a package version.
🏠 XDG-compliant configuration. marimo's local configuration is now XDG compliant. Thanks @pakelley for the contribution!
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.18...0.8.19
Quality of life improvements and fixes, as well as a new feature:
Quality of life improvements and fixes, as well as a new feature:
🍞 Use mo.status.toast() to render ephemeral alerts 🚨
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.17...0.8.18
Nothing published for this version
🎥 Conditionally show a cell's code in its output. Use `mo.show_code()` to include the cell's code in the output area, so that the code is visible even
🎥 Conditionally show a cell's code in its output. Use mo.show_code() to include the cell's code in the output area, so that the code is visible even in the app view, when running with marimo run, and in HTML exports.
🌺Improved Ibis support. Performance improvements for our integration with Ibis, including native Ibis support in mo.ui.table and mo.ui.dataframe.
⌨ Improved settings menu. marimo is packed with configurable features, so many that we outgrew our simple user configuration menu. We've replaced it with a more easily navigable modal, making it easier for you to discover and configure our many settings.
Arviz plotting library fix by @Haleshot in https://github.com/marimo-team/marimo/pull/2311Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.15...0.8.16
📸 Automatically snapshot notebooks as HTML This release includes a notebook-level configuration that, when enabled, periodically and automatically sna
📸 Automatically snapshot notebooks as HTML This release includes a notebook-level configuration that, when enabled, periodically and automatically snapshots your notebook as HTML, saving the snapshot to a folder .marimo in the notebook directory.
This allows you to enjoy the best of both worlds — your notebooks are stored as pure Python, while your outputs are automatically stashed to a directory for later viewing.
📦 Packge sandbox improvements. We've simplified marimo's package sandbox: now, when you open a marimo notebook with
marimo edit --sandbox notebook.py
marimo will automatically track the packages used by your notebook and save them in the notebook as inline script metadata, along with their versions.
🐍 IPython/Jupyter compatibility. We've increased our compatibility with Jupyter/IPython rendering, adding support for _repr*_ methods as well as mimebundles.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.14...0.8.15
This release adds support for duckdb 1.1.0, rendering of SymPy expressions, and includes a number of improvements and fixes.
This release adds support for duckdb 1.1.0, rendering of SymPy expressions, and includes a number of improvements and fixes.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.13...0.8.14
fix: improve copilot debounce logic by @mscolnick in https://github.com/marimo-team/marimo/pull/2249
Copilot and runtime fixes.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.12...0.8.13
Improvements to GitHub Copilot, marimo slides, and other quality-of-life fixes.
Improvements to GitHub Copilot, marimo slides, and other quality-of-life fixes.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.11...0.8.12
This release adds --sandbox as a flag to marimo new, meaning you can create empty notebooks with sandboxed venvs from the CLI
This release adds --sandbox as a flag to marimo new, meaning you can create empty notebooks with sandboxed venvs from the CLI
marimo new --sandbox
This can be helpful when using marimo as a scratchpad.
To learn more about the sandbox feature, view our docs
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.10...0.8.11
fix: upgrade cmd-k to fix html query selector bug crash by @mscolnick in https://github.com/marimo-team/marimo/pull/2213
🐞🔨
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.9...0.8.10
Update docs for ai features by @akshayka in https://github.com/marimo-team/marimo/pull/2201
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.8...0.8.9
🤖🛢 An AI assistant that knows your dataframe/table schemas. Starting with this release, marimo's built-in AI assistant doesn't just understand your co
🤖🛢 An AI assistant that knows your dataframe/table schemas. Starting with this release, marimo's built-in AI assistant doesn't just understand your code -- it also understands your data. When you use our "Generate with AI" feature to generate code, you can now give the AI context about your dataframe and table schemas by tagging it in your query with @dataframe ....
https://github.com/user-attachments/assets/0e22a99e-c6ed-4b96-a881-7c0830a707e5
To get started with our AI assistant, visit our docs: https://docs.marimo.io/guides/editor_features/ai_completion.html#using-ai-to-modify-cells
📆 New date components. We've added two new date components: mo.ui.datetime and mo.ui.date_range.
🖊 Realtime markdown rendering. Markdown cells now render as you type!
🛢 Ibis support in mo.ui.dataframe. Transform Ibis dataframes without writing code using mo.ui.dataframe.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.7...0.8.8
highlight sandbox/pkgs on readme by @akshayka in https://github.com/marimo-team/marimo/pull/2169
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.6...0.8.7
fix: handle escaped table names in SQL statements by @mscolnick in https://github.com/marimo-team/marimo/pull/2161
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.5...0.8.6
SQL Reactivity! ⚡🛢 This release adds reactivity across SQL cells. When you run a cell that creates a table or view, or attaches a schema, cells that r
SQL Reactivity! ⚡🛢 This release adds reactivity across SQL cells. When you run a cell that creates a table or view, or attaches a schema, cells that refer to the table, view, or schema are marked as stale. When you delete a cell, any in-memory tables/views are dropped and schemas are detached, and SQL cells referring to them are invalidated.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.4...0.8.5
Fixes and quality-of-life improvements.
Fixes and quality-of-life improvements.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.2...0.8.3
chore: profile kernel execution by @akshayka in https://github.com/marimo-team/marimo/pull/2088
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.1...0.8.2
Quality-of-life improvements and bug fixes ~
Quality-of-life improvements and bug fixes ~
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.0...0.8.1
🏃 Fewer cell re-runs when importing modules. In version 0.8.0, marimo minimizes cell re-runs when importing modules: if you incrementally add imports
🏃 Fewer cell re-runs when importing modules. In version 0.8.0, marimo minimizes cell re-runs when importing modules: if you incrementally add imports to the same cell, only cells depending on the newly imported modules will run. This means that you can now collect all your imports in a single cell without having to worry about marimo running cells unrelated to the new imports. Learn more here: https://github.com/marimo-team/marimo/pull/1955
👌 Quality-of-life improvements. Toggle presentation view from the notebook menu; use Meta+z to undo cell deletion; faster table loads for large tables; create files and folders from the file explorer; undo splitting cells; and more!
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.20...0.8.0
Support for altair `5.4.0`. Accommodate a breaking change in Altair 5.4.0.
Redirect console logs to the browser console in marimo run: Use marimo run notebook.py --redirect-console-to-browser to redirect console logs to the browser console, which can help in debugging.
Support for altair 5.4.0. Accommodate a breaking change in Altair 5.4.0.
Return to notebook directory page. If marimo was launched with marimo edit, the notebook menu will now include an option that lets you return to the notebook directory with one click.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.19...0.7.20
Fixes a bug with drag-and-drop scrolling.
Fixes a bug with drag-and-drop scrolling.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.18...0.7.19
You can now skip the marimo upgrade check in the CLI
mo.image() now expands user directories in pathsmarimo edit by @mutongx in https://github.com/marimo-team/marimo/pull/1948Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.17...0.7.18
Fixes a bug with dark mode styles.
Fixes a bug with dark mode styles.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.16...0.7.17
fix: shutdown should only shutdown current notebook by @akshayka in https://github.com/marimo-team/marimo/pull/1944
🐞 fix release.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.15...0.7.16
Fullscreen outputs! View any output as full-screen by clicking the expand icon in the top right of a cell.
Fullscreen outputs! View any output as full-screen by clicking the expand icon in the top right of a cell.
📂 Open marimo notebooks from the file explorer panel.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.14...0.7.15
Print to PDF. We know that marimo users like PDFs; we do too! You can now print notebooks to PDF.
Print to PDF. We know that marimo users like PDFs; we do too! You can now print notebooks to PDF.
tqdm.notebook support. Basic usage of tqdm.notbook now works.
Plotly zoom. The default drag action for plotly plots has been changed to be "zoom", similar to other notebooks.
All changes.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.13...0.7.14
Improvements (better tracebacks!) and bug fixes, as well as a new feature: tables now support columnwise formatting!
Improvements (better tracebacks!) and bug fixes, as well as a new feature: tables now support columnwise formatting!
# format_mapping is a dict keyed by column names,
# with values as formatting functions or strings
def format_name(name):
return name.upper()
table = mo.ui.table(
data=[
{"first_name": "Michael", "last_name": "Scott", "age": 45},
{"first_name": "Dwight", "last_name": "Schrute", "age": 40},
],
format_mapping={
"first_name": format_name, # Use callable to format first names
"age": "{:.1f}".format, # Use string format for age
},
label="Format Mapping",
)
Thanks @metaboulie for the contribution!
mo.ui.tabs UI Component Documentation Example by @Haleshot in https://github.com/marimo-team/marimo/pull/1916Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.12...0.7.13
docs: SQL by @akshayka in https://github.com/marimo-team/marimo/pull/1867
Fixes and improvements.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.11...0.7.12
Go-to-definition in vim mode! You can now use gd in vim mode, and it'll do the right thing.
Go-to-definition in vim mode! You can now use gd in vim mode, and it'll do the right thing.
Code editor max height. mo.ui.code_editor now accepts a max_height argument.
All changes.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.10...0.7.11
Terminal panel 💻. The marimo editor now includes a terminal that lets you run shell commands in a pseudo-terminal, without having to return to your ac
Terminal panel 💻. The marimo editor now includes a terminal that lets you run shell commands in a pseudo-terminal, without having to return to your actual terminal. This feature is currently supported on macOS and Linux.
TOC outlines! 📑 We know notebooks can get long. That's why we now automatically include a floating TOC outline in preview/run mode, making it easy to get a birds-eye view of a notebook and to navigate to specific sections.
Pan and zoom on mo.ui.altair_chart 🖱 Hold ctrl/cmd and click to pan and zoom on your Altair charts.
Let me Google that for you. Tracebacks now include a "search with Google" button.
Let me fix that for you! If you have AI Assist enabled, tracebacks include a Fix with AI button that will try to automatically fix your bug.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.9...0.7.10
✍ Scratchpad panel. Version 0.7.9 ships with a new panel: the scratchpad. The scratchpad panel lets you type arbitrary Python code, free from the rest
✍ Scratchpad panel. Version 0.7.9 ships with a new panel: the scratchpad. The scratchpad panel lets you type arbitrary Python code, free from the restrictions of marimo's constraints. Scratchpad code doesn't get saved into your notebook; instead, it's an exploratory REPL for quick and dirty analyses.
Collapsible markdown headings. You can now collapse sections of your notebooks, based on markdown headings. For example, collapse all cells under an H2 heading. This makes it much easier to work with long notebooks.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.8...0.7.9
This release includes a critical bug fix that was affecting versions 0.7.6 and 0.7.7.
This release includes a critical bug fix that was affecting versions 0.7.6 and 0.7.7.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.7...0.7.8
datasource parsing fixes by @mscolnick in https://github.com/marimo-team/marimo/pull/1815
Bug fixes and improvements.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.6...0.7.7
Tables that you create with duckdb now show up in the data sources panel!
duckdb now show up in the data sources panel!-allow-origins optionhttps://github.com/user-attachments/assets/69ae7b01-0fac-4e5b-b30d-48fd09905584
CITATION.cff file by @Haleshot in https://github.com/marimo-team/marimo/pull/1778Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.5...0.7.6
Fixes an issue with marimo edit
Fixes an issue with marimo edit
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.4...0.7.5
example: duckdb connection, fix openapi doc url by @mscolnick in https://github.com/marimo-team/marimo/pull/1781
Small bug fixes.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.3...0.7.4
`marimo edit` glow-up! ✨ We've done a UI revamp of the notebook server launched with marimo edit. Your notebooks are now organized in an easy-to-navig
marimo edit glow-up! ✨ We've done a UI revamp of the notebook server launched with marimo edit. Your notebooks are now organized in an easy-to-navigate and searchable file explorer.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.2...0.7.3
marimo slides! It's now possible to present any marimo notebook as a slide deck, in just a couple of clicks.
marimo slides! It's now possible to present any marimo notebook as a slide deck, in just a couple of clicks.
Make interactive and dynamic presentations using just Python and markdown!
https://github.com/marimo-team/marimo/assets/1994308/18851d3b-0445-43cf-918a-4ae9c14f0f0e
Every cell with an output becomes its own slide. View a notebook in slides mode by toggling the app view and choosing "slides" from the layouts dropdown in the top right. You can then present the notebook as slides with marimo run my_notebook.py.
Example: https://marimo.io/p/@marimo/marimo-slides
new tutorial - marimo tutorial sql for a quick guide on writing SQL in marimo.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.1...0.7.2
Fixes for vim mode, GitHub copilot, and other misc.
Fixes for vim mode, GitHub copilot, and other misc.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.0...0.7.1
Version 0.7.0 includes a big new feature: marimo now ships with reactive SQL cells! Use SQL to query Pandas/Polars dataframes, Google Sheets, database
Version 0.7.0 includes a big new feature: marimo now ships with reactive SQL cells! Use SQL to query Pandas/Polars dataframes, Google Sheets, database tables, and more, and get the query result back as a DataFrame.
https://github.com/marimo-team/marimo/assets/1994308/89a6f045-56e5-4d82-91dc-e2dfdb2ad772
Details
pip install duckdb).Full Changelog: https://github.com/marimo-team/marimo/compare/0.6.26...0.7.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →