github marimo-team/marimo 0.19.3

latest release: 0.19.4
7 hours ago

This release introduces isolated sandbox environments for multi-notebook directories and migrates our AI integrations to pydantic-ai for improved reliability with modern LLM providers.

What's Changed

Multi-Notebook Sandboxed Home

You can now run marimo edit --sandbox directory/ to open a folder of notebooks where each notebook runs in its own isolated sandbox environment. This means:

  • Every notebook automatically gets its own virtual environment with its own dependencies
  • Dependencies are managed per-notebook using PEP 723 inline script metadata
  • Each notebook remains reproducible and self-contained

This is useful when working on multiple notebooks with different dependency requirements, or for maintaining a collection of standalone, shareable notebooks.

# Open a directory with per-notebook isolation
marimo edit --sandbox ./notebooks/

Note

This feature requires pyzmq as a dependency. If you're running marimo with uvx, use:

uvx --with pyzmq marimo edit --sandbox ./notebooks/

Alternatively install marimo as marimo[sandbox] or marimo[recommended] to get all the recommended packages.

See our guide on sandboxed home and inlining dependencies guide for more details on sandboxed notebooks.

AI Provider Migration to pydantic-ai

We've migrated our AI integrations to use pydantic-ai, which brings several improvements:

  • Better model support: Fixed issues with newer OpenAI models (GPT-5, Codex models) that require the Responses API and max_completion_tokens parameter
  • Improved timeout handling: Resolved timeout issues when connecting to remote Ollama instances and other providers
  • Support for more providers: Added support for providers like Mistral that aren't fully OpenAI-compatible
  • Better error handling: More informative error messages when AI requests fail

This is a behind-the-scenes change that improves reliability—your existing AI configuration should continue to work without changes

✨ Enhancements

  • Migrate AI providers to pydantic-ai (#7732)
  • Add custom AI providers in config (#7771)
  • Support custom models returning vercel chunks (#7797)
  • Add [tool.marimo.venv].path to specify a specific venv (#7821)
  • Support images mimebundling in auto export for ipynb (#7825)
  • Allow for __contains__ and __getitem__ in anywidget (#7846)
  • Clarify column filtering is only for top 30 values (#7840)
  • Update connecting alert to show a spinner and banner notification (#7839)
  • Include errors with ipynb exports (#7811)
  • Runtime configuration tooltips, docs (#7819)
  • Parse indented code blocks (#7817)
  • Don't steal focus when embedded in an iframe (#7798)
  • Auto-close curly braces within strings (#7759)
  • When previewing ibis tables in interactive mode, also include SQL and repr tabs (#7757)
  • Sandboxed home (#7702)
  • Ensure Plotly area chart is reactive (#7761)

🐛 Bug fixes

  • Keep rich objects in chat message (#7851)
  • Ibis Deferred expression object will not be handeled as datasource (#7801)
  • Duplicate notebook when running 'marimo edit ' (#7841)
  • Fix mo.ui.dataframe showing incorrect column count (#7845)
  • Start remote connection in a Connecting state (#7838)
  • Escape key should not prevent exiting to Vim mode (#7812)
  • Keep terminal mounted to preserve session across tab switches (#7833)
  • Enhance keyboard handling in editable name cell component (#7818)
  • Fix reactive Plotly heatmap selection with datetime axes (#7805)
  • Limit private variable rename to current cell (#7814)
  • More defensive edge cases when adding packages to inline metadata (#7813)
  • Ensure repr_mimebundle handles empty include/exclude parameters gracefully (#7787)
  • Fixes chat config not updating (#7808)
  • Fix opencode duplicate tokens bug (#7792)
  • Return empty string if no tabs (#7772)
  • Setup cell (#7778)

📚 Documentation

  • Document mo.ui.plotly support for bar and heatmap (#7769)

📝 Other changes

  • Update react-aria dependencies (#7822)

Contributors

Thanks to all our community and contributors who made this release possible: @akshayka, @alonsosilvaallende, @andrewsoonqn, @AnirudhDagar, @dmadisetti, @koaning, @Light2Dark, @mscolnick, @NickCrews, @nojaf, @pepijndevos, @Ravinlathigra, @szst11

Full Changelog: 0.19.2...0.19.3

Don't miss a new marimo release

NewReleases is sending notifications on new releases.