We are launching our YouTube channel soon!

Subscribe

Newsletter 10

Newsletter 10

To get updates like this one delivered to your inbox, subscribe to our newsletter.

This is your monthly reminder that at marimo, we’re on a mission to make the world’s best programming environment for working with data, and it’s all free and open source. Just pip install marimo or uv add marimo to get started!

You’re reading the tenth marimo newsletter.

Since the last newsletter was mailed a month ago, we’ve had 10 new releases and many new features, including multi-column notebooks, an execution history panel, and more. We’ll dig into these features in this newsletter, but first, some updates!

🌲 Why Stanford scientists needed a new Python notebook

Before marimo was open source, it was originally developed with input from computational scientists at Stanford’s SLAC National Accelerator Labratory. They had historically used Jupyter, but felt they needed a new kind of Python notebook for their iterative, data-heavy coding work — one that was reproducible and reusable by default. With only 4% of notebooks on GitHub reproducing, Jupyter wasn’t cutting it.

Together with scientists Bennet Meyers and David Chassin, we’ve published a blog that dives into why Stanford scientists needed a new Python notebook, and how they’ve used it in their lab for interactive science communication, reproducible research, and education.

🌐 Open GitHub notebooks in our online playground

You can now open any notebook hosted on GitHub — marimo or Jupyter — in an interactive playground that has access to the repo’s files. This makes it easy to share notebooks with data. To get started, just prepend “marimo.app” to any Python notebook on GitHub;

We even have a bookmarklet that makes this truly 1-click.

The usual caveats with our playground apply: most but not all packages are supported, and notebooks only have access to at most 2GB of RAM, due to limitations with WebAssembly. Learn more about how we implemented this at our Show HN, and read the docs for a usage guide and the bookmarklet.

📚 Templates

We’re building template repositories and notebooks to help you get started with marimo! Copy and modify them to kickstart your own projects.

Expect more templates soon. Please open issues or file pull requests to contribute your own!

📰 More news

  • Our roadmap. Last newsletter, we shared a sketch of our primary goals on the road to marimo 1.0, which all drive toward building a unified toolchain for working with data, at any scale and wherever it is, and communicating results. We’ve published the roadmap on our blog; please provide feedback if you have any!

  • A docs revamp. We’ve modernized and reorganized our docs, switching from Sphinx to MkDocs. Check out our new guides on sharing marimo notebooks on the web and making notebooks reproducible down to the packages.

  • 🎬 The marimo YouTube channel. marimo now has a YouTube channel, and we’re cooking up some videos! Subscribe to get notified when our first video is published.

️ New features

Edit notebooks in multiple columns

You can now layout notebooks in multiple columns, letting you use your screen real estate to the fullest (docs)!

columns

For example, this feature (which can be enabled through the notebook settings) lets you organize your functions, classes, and constants in one column, and your analyses and experiments in another column. Check out this notebook on dimensionality reduction and clustering for an example.

This feature was contributed by @WasimSandhu.

Use your own editor

We now have initial support for editing marimo notebooks using your editor of choice, and streaming results back to the browser. We still have work to do to enable code completion and language servers in external editors; if you’d like to help, please reach out on Discord or GitHub.

This feature was contributed by @mscolnick.

Cell execution history

The marimo editor has a new panel that drills down into your notebook’s execution history. Use it to track slow cells and visualize execution order.

This feature was contributed by @Light2Dark.

Test notebooks with pytest

You can now test notebooks with pytest — the works because marimo notebooks are just Python files. To get started, in a notebook test_notebook.py, name cells that should run as tests as test_*, then run

pytest test_notebook.py

This is a new feature, and the API is evolving (such as for referencing fixtures). If you have suggestions, please open an issue in the marimo repo.

This feature was contributed by @dmadisetti.

🍃 Community

We have over 89 contributors pushing code to marimo, up from 70 last month, and over 1k marimonauts hanging out with us on Discord — come chat! We’ve crossed 9.8k stars on GitHub, up from 8k last month!

Community Roundup

Here’s a roundup of inspiring things the marimo community has been up to in the past few weeks:

For more awesome projects from our community, check out our awesome-marimo repo. Feel free to submit your own project via a PR!

the marimo team 🍃