A reactive notebook for Python — run reproducible experiments, execute as a script, deploy as an app, and version with git.
APACHE-2.0 License
Bot releases are hidden (Show)
📸 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
Published by akshayka about 1 month ago
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
Published by akshayka about 1 month ago
Copilot and runtime fixes.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.12...0.8.13
Published by akshayka about 1 month ago
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
Published by akshayka about 1 month ago
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
Published by akshayka about 1 month ago
🐞🔨
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.9...0.8.10
Published by akshayka about 1 month ago
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.8...0.8.9
Published by akshayka about 1 month ago
🤖🛢 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
Published by akshayka about 2 months ago
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.6...0.8.7
Published by akshayka about 2 months ago
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.5...0.8.6
Published by akshayka about 2 months ago
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
Published by akshayka about 2 months ago
This release rides on the coattails of the uv package manager to introduce exciting new features related to package reproducibility!
With this release, it's now possible to create standalone notebook files that have package requirements embedded in them as a comment, using PEP 723's inline metadata! marimo can generate these requirements for you and even start notebooks in isolated virtual environments.
These features are only possible because unlike Jupyter notebooks, marimo notebooks are stored as pure Python files, letting them take advantage of the exciting new developments in the Python ecosystem such as uv
and PEP 723.
📦 Automatic tracking of packages used by notebooks. marimo can now automatically serialize package dependencies in notebook files as inline script metadata, generating a comment header that looks something like this:
# /// script
# requires-python = ">=3.11"
# dependencies = [
# "pandas",
# "altair",
# ]
# ///
This lets you create standalone notebook files that have their package requirements serialized in them.
Enable package tracking in the notebook settings:
Note: This feature requires uv
.
🚀 Run marimo notebooks in package sandboxes. Use
marimo edit --sandbox notebook.py
to edit a Python notebook in a completely isolated virtual environment! This increases reproducibility and helps prevent environment pollution. If your notebook has inline script metadata, marimo will automatically install the enumerated packages before running the notebook; if it doesn't, marimo will prompt you to install the missing packages on notebook startup.
This exciting new workflow is only made possible thanks to uv
, which is blazingly fast.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.3...0.8.4
Published by akshayka about 2 months ago
Fixes and quality-of-life improvements.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.2...0.8.3
Published by akshayka about 2 months ago
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.1...0.8.2
Published by akshayka about 2 months ago
Quality-of-life improvements and bug fixes ~
Full Changelog: https://github.com/marimo-team/marimo/compare/0.8.0...0.8.1
Published by akshayka 2 months ago
🏃 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
Published by akshayka 2 months ago
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
Published by akshayka 2 months ago
Fixes a bug with drag-and-drop scrolling.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.18...0.7.19
Published by akshayka 2 months ago
mo.image()
now expands user directories in pathsmarimo edit
by @mutongx in https://github.com/marimo-team/marimo/pull/1948
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.17...0.7.18
Published by akshayka 2 months ago
Fixes a bug with dark mode styles.
Full Changelog: https://github.com/marimo-team/marimo/compare/0.7.16...0.7.17