Releases: marimo-team/marimo
0.11.8
What's Changed
- fix: mo.ui.date popover by @mscolnick in #3855
- improve: configure output max bytes with pyproject.toml by @akshayka in #3858
- improve: minor ui updates, fixes for datasources by @Light2Dark in #3861
- improvement: Add show-chrome=false by @mscolnick in #3862
- chore: sql engine remove defaults in favor of explicit by @mscolnick in #3863
- compat: Register webbrowser.open hook for pyodide by @dmadisetti in #3864
- docs: hiding chrome for editable playground links by @akshayka in #3866
- Specify the encoding for reading files to keep from encoding error for some Asian Windows platform. by @codemee in #3868
- docs: fix MDX snippet by @akshayka in #3872
- feat: support unix-style piping for marimo edit by @akshayka in #3867
- fix: non-deterministic random object-ids for session caching by @mscolnick in #3874
- fix: stable row id by @mscolnick in #3875
New Contributors
Full Changelog: 0.11.7...0.11.8
0.11.7
⭐ Highlights
🔄 Serialized outputs - when auto-instantiate is off, outputs are stored in __marimo__/session
. When you restart you notebook, your outputs will be brought back without running any cells. Every cell is still considered stale, so whenever a cell is run, we run it's ancestors to bring them up-to-date.
💽 Refreshed data-sources panel - The datasources panel now includes an improved hierarchy (Engine > Database > Schema > Table > Columns), more performant loading, lazy-loading, and column metadata like types and primary keys. h/t @Light2Dark

What's Changed
- fix: app title in wasm export by @mscolnick in #3821
- improvement: support uv index-url and extra-index-url by @mscolnick in #3827
- chore: test coverage in frontend/utils by @mscolnick in #3826
- feat: Session Schema and Serialize outputs by @mscolnick in #3807
- chore: cleanup utils folder for less dependencies by @mscolnick in #3832
- Remove inspect call from top level by @dmadisetti in #3833
- fix: semicolon supression by @dmadisetti in #3830
- feat: top level imports by @dmadisetti in #3779
- tests: always shutdown server, even in failures by @mscolnick in #3837
- chore: fix exports, snapshot public api by @mscolnick in #3836
- fix: safer check before removing session by @mscolnick in #3838
- chore: move ids to central file by @mscolnick in #3839
- refactor: migrate VariableName to use NewType by @devin-ai-integration in #3840
- fix: chrome env check by @mscolnick in #3841
- refactor: migrate SessionId to use NewType by @devin-ai-integration in #3842
- refactor: migrate UIElementId to use NewType by @devin-ai-integration in #3843
- chore: typesafe CellId by @mscolnick in #3844
- snippets: for cloud buckets by @mscolnick in #3845
- chore: upgrade vite to v6 by @devin-ai-integration in #3847
- fix: in vim by @mscolnick in #3849
- feat: add databases in datasource by @Light2Dark in #3735
- improvement: auto iframe html output with <script/> tags by @mscolnick in #3850
- fix: add back bigquery logo, move help into select dropdown by @mscolnick in #3852
- fix: mo.ui.dataframe filtering by @mscolnick in #3853
Full Changelog: 0.11.6...0.11.7
0.11.6
What's Changed
- fix: downgrade pyodide to 0.27.0 by @mscolnick in #3809
- improvement: copy stacktrace to clipboard by @mscolnick in #3805
- fix: basic support for bokeh.plotting.show by @akshayka in #3796
- chore: try to debug/deflake app comp tests by @akshayka in #3811
- improvement: add index column for stable selection in table, persist across search/filter/sort by @mscolnick in #3810
- fix: from_panel using private APIs by @akshayka in #3813
- fix: copy custom stylesheet by @mscolnick in #3818
- fix: muted color in terminal output by @mscolnick in #3819
- chore: cleanup in the table init by @mscolnick in #3814
- fix: don't override user if it is None by @mscolnick in #3820
Full Changelog: 0.11.5...0.11.6
0.11.5
⭐ Highlights
Configure project settings on a per-notebook basis, by inlining as script metadata (PEP 723):
# /// script
# [tool.marimo.runtime]
# auto_instantiate = false
# on_cell_change = "lazy"
# [tool.marimo.display]
# theme = "dark"
# cell_output = "below"
# ///
Note: script metadata configuration has the highest precedence, followed by pyproject.toml
configuration, then user configuration.
What's Changed
- fix(deps): update react-aria dependencies by @renovate in #3795
- feat: allow marimo configuration in notebook.py as script metadata (per PEP 723) by @mscolnick in #3794
- improve: Add more relevant snippets to the snippets panel (
1/2
) by @Haleshot in #3709 - snippets: openai, huggingface, env by @mscolnick in #3799
- fix: disconnect RTC websockets when disconnected from main WS by @mscolnick in #3803
- fix: more ipython display coverage, add tests by @mscolnick in #3804
Full Changelog: 0.11.4...0.11.5
0.11.4
What's Changed
- docs: editable install for sandbox mode by @mscolnick in #3786
- improvement: mo.latex() to load macros by @mscolnick in #3790
- fix: preserve user defined user in mo.app_meta().request by @mscolnick in #3789
- improvement: support Path in mo.image() by @mscolnick in #3788
- fix: /public path assets for windows (pt 2) by @mscolnick in #3792
Full Changelog: 0.11.3...0.11.4
0.11.3
⭐ Highlights
- Add databases through the GUI → generate a cell connecting to that database.
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3746
- fix: add helpful error when symlink = false by @mscolnick in #3747
- feat: database GUI to create connections by @mscolnick in #3737
- chore: less noisy debug by @mscolnick in #3750
- example: turn a notebok into api endpoints by @mscolnick in #3754
- chore(deps): update pre-commit dependencies to v1 (major) by @renovate in #3757
- improvement: auto-run cells in watch mode, via config by @mscolnick in #3753
- fix(deps): update dependency date-fns to v4 by @renovate in #3758
- improvement: perf improvements to AI sidebar by @mscolnick in #3760
- feat: top level functions by @dmadisetti in #3755
- fix: encode notebookId when using /public by @mscolnick in #3770
- fix: better fallback for notebook_dir by @mscolnick in #3767
- docs: add youtube link by @mscolnick in #3772
- Fix Windows path encoding for special characters (#3761) by @devin-ai-integration in #3768
- improvement: 'open in editor' via file-explorer by @mscolnick in #3766
- fix: nested dictionary table by @mscolnick in #3774
- chore: Fix typo by @hfyeh in #3769
- improvement: add openai response formatters by @mscolnick in #3776
- improvement: hide all markdown action (dropdown and command palette) by @mscolnick in #3777
- fix: more specific bokeh formatter by @akshayka in #3778
- fix: table value after sorting, when columnar dictionary by @mscolnick in #3787
- improvement: katex global/macros by @mscolnick in #3785
New Contributors
Full Changelog: 0.11.2...0.11.3
0.11.2
What's Changed
- feat: add searchable dropdown functionality by @devin-ai-integration in #3723
- fix: update value when clearing chat messages by @devin-ai-integration in #3729
- fix: polars category filtering by @mscolnick in #3744
- fix: merge anywidget partial updates by @mscolnick in #3745
Full Changelog: 0.11.1...0.11.2
0.11.1
Bug fixes and improvements.
What's Changed
- fix: code scanning alerts by @dmadisetti in #3689
- fix: mo.ui.chat config casing by @mscolnick in #3690
- smoke-test: sqlmodel with psql by @mscolnick in #3693
- fix: include build_hook.py in source distribution by @devin-ai-integration in #3699
- feat: embed independent copies of app objects by @akshayka in #3695
- fix(router): Correct router name from "terminal" to "packages" by @metaboulie in #3697
- fix: per session app.embed() by @akshayka in #3694
- fix: use r-string when converting to markdown by @mscolnick in #3701
- compat: interrupt using KeyboardInterrupt by @akshayka in #3703
- fix: set select colour to blue in dark mode by @Light2Dark in #3707
- improvement: pretty gemini responses in output, streaming / non-streaming by @mscolnick in #3705
- docs: Update appropriate keyboard shortcut by @Haleshot in #3708
- examples: GPU notebooks with modal by @akshayka in #3711
- feat: (experimental) inline edits by @mscolnick in #2453
- improvement: click package icon to change the package manager by @mscolnick in #3691
- fix: apply borderless view in dark mode by @Light2Dark in #3716
- fix(deps): update codemirror dependencies by @renovate in #3717
- docs: play videos inline for mobile compat by @akshayka in #3720
- fix: anywidget partial updates by @mscolnick in #3721
- docs: convert to mp4 for webkit compatibility by @akshayka in #3730
- chore: minor updates for narwhals 1.26 by @MarcoGorelli in #3740
- fix: cache favicon requests by @mscolnick in #3736
- fix: add checks for code outside sql statement by @Light2Dark in #3742
Full Changelog: 0.11.0...0.11.1
0.11.0
Highlights ⭐
- SQL Engine Support. Connect to various databases like postgresql, mysql, snowflake and more, using your preferred SQL engine.
This release adds support for using for multiple SQL connection libraries, such as SQLModel and SQLAlchemy. You can now define SQL connections in your code like:
import sqlalchemy
import sqlmodel
import duckdb
# Create an in-memory SQLite database with SQLAlchemy
sqlite_engine = sqlachemy.create_engine("sqlite:///:memory:")
# Create a Postgres database with SQLModel
postgres_engine = sqlmodel.create_engine("postgresql://username:password@server:port/database")
# Create a DuckDB connection
duckdb_conn = duckdb.connect("file.db")
And then select which connection to use in the SQL cell.
h/t @Light2Dark
- Markdown file-format improvements - Markdown notebooks (i.e.
marimo edit notebook.md
) has an improved syntax format:python {.marimo}
. You can also use SQL cells in the markdown file-format, usingsql {.marimo}
. To learn more, runmarimo tutorial markdown-format
h/t @dmadisetti
-
Markdown syntax - Added support for details, admonitions, and emojis in markdown
-
Performance & Reliability - Lots of bug fixes for better resource cleanup and memory management, as well as disabling features not used in run-mode.
What's Changed
- feat: SQL engines by @mscolnick in #3563
- update: update code block to ```python {.marimo} by @dmadisetti in #3387
- chore: add hatch build hook to build marimo when installed from github by @mscolnick in #3639
- docs: typo by @mscolnick in #3641
- tests: add tests for try-format by @mscolnick in #3643
- fix: duckdb querying dataframes with engines by @mscolnick in #3642
- fix: show 'Clear Output' cell action when console has output by @Light2Dark in #3650
- fix(deps): update all npm non-major dependencies by @renovate in #3655
- improve: run mode performance for streams by @akshayka in #3648
- chore(deps): update dependency scikit-bio to >=0.6.3 by @renovate in #3647
- chore(deps): update dependency google-generativeai to v0.8.4 by @renovate in #3646
- fix: correctness of formatting by @mscolnick in #3644
- improvement: removed border and and fix tooltips when multi-column view by @Light2Dark in #3649
- fix: date range not defaulting to
start
andstop
by @Hofer-Julian in #3651 - chore: update year in copyright notice script by @akshayka in #3657
- perf: resource cleanup, don't start module reloader in run mode by @akshayka in #3656
- chore: add PERF ruff rules by @mscolnick in #3662
- chore: enable preview rules from ruff by @mscolnick in #3663
- fix: handle TOML parsing errors in config reader by @devin-ai-integration in #3671
- fix: differentiate methods and properties in dark theme by @devin-ai-integration in #3673
- docs: markdown extensions by @akshayka in #3658
- improvement: inline layouts when exported to wasm by @mscolnick in #3661
- flaky: add warning for flaky test opposed to failure by @dmadisetti in #3674
- fix: md format fix for columns and sql engine by @dmadisetti in #3664
- improvement: show engine's tables in the datasources panel by @mscolnick in #3665
- fix: filtering datasets based on variables by @mscolnick in #3676
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3678
- improv: update the sql dropdown to a better design and show disconnected engine by @Light2Dark in #3682
- Add openai-whisper to module name list by @koaning in #3681
- chore(deps): update dependency vitest to v3.0.5 [security] by @renovate in #3684
- smoke test: docstring_to_markdown by @mscolnick in #3686
- fix: checks whether latestEngineSelected is in list of engines by @Light2Dark in #3685
- fix: sql dropdown when initialized by @mscolnick in #3687
New Contributors
- @Hofer-Julian made their first contribution in #3651
Full Changelog: 0.10.19...0.11.0
0.10.19
This release contains some important improvements to memory consumption.
What's Changed
- fix: kernel globals memory leak in run mode by @akshayka in #3634
- fix: improve memory usage on variable previews by @mscolnick in #3635
- perf: skip variable broadcast in run mode by @mscolnick in #3636
- fix: responsive Vega chart sizing with media queries by @mscolnick in #3637
Full Changelog: 0.10.18...0.10.19