šŸƒ Announcing molab:

Read our announcement

Newsletter 17

Newsletter 17

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

You’re reading the 17th marimo newsletter. This newsletter is about many things but a big focus is on using LLMs and AI agents for data work. If that’s not your thing, we’re also sharing a sneak peek at our new and improved VS Code extension (shipping soon!), as well as highlighting new features.

First, some housekeeping:

  • Fill out a short form to apply for additional compute on molab, our free cloud-hosted notebook service.
  • We’re collecting feedback on how people want to use LLMs and AI agents with marimo. Please take a moment to share your thoughts.
  • If you have general feedback, fill out our survey.

Using LLMs with marimo notebooks

An improved developer experience

We released version 0.15.0 of marimo yesterday. This release includes many improvements to the marimo editor’s AI integration, including dramatically simpler configuration (switch between local and hosted models with a single click), the ability to customize models for chat, code editing, and completion, and more small touches.

These changes are part of an ongoing effort to make marimo the best place to work on data and AI, with AI. (Of course, using AI to generate code in marimo is completely optional: marimo is and always will be Python-first.)

Use different models for different tasks. You can now configure separate models for chat, code editing, and autocomplete in an improved UI. Models use provider prefixes like ollama/qwen-coder or azure/gpt-4o.

aiconfig

Keyboard shortcuts. When refactoring a cell with a prompt, you can now use keyboard shortcuts to accept or reject the suggestion.

aikeyboard

Tables in AI chat. The chat sidebar now renders markdown tables.

aitables

Can LLMs even help with AI, ML, and data work?

Some of you might be asking: are LLMs even useful when working with data (beyond generating polars or altair boilerplate)? Data work is different from traditional software engineering — it feels like it often requires a human-in-the-loop to determine what actions to take next.

At marimo, we had the same question, so we started a YouTube series to look for an answer. In these videos, our very own Vincent, who has over a decade of experience in AI, ML, and data, tries using LLM-based tools for a variety for data projects. No hype, no slop, just an honest attempt to share what he learns as he gives these tools a spin.

In the first video, Vincent tries using Claude Code to vibe code a machine learning pipeline, using the famous Kaggle Titanic dataset; in the second, he tries using Claude to look for bots and fraud in a large dataset. Vincent’s experiments get to the heart of one of the most important discussions in modern HCI: when is text-based prompting better than task-specific interfaces intentionally designed for humans, and how can we design new kinds of human interfaces that seamlessly integrate with AI?

A new VS Code extension …?!

We heard that a lot of you like VS Code, so we’re cooking up a native VS Code extension! This will feel VS Code’s native support for Jupyter, but with the bells of whistles of marimo, including reactive execution. Stay tuned for more updates.

Share interactive molab notebooks, no log-in required

We have a new feature: it’s now possible to share a live link to a (read-only) interactive molab notebook. Recipients of these links can interact with the ā€œappā€, no log-in required.

Just append ā€œ/appā€ to the URL, then share the link. If you want the code to be visible, use ā€œ/app?show-code=trueā€.

Here’s an example:

https://molab.marimo.io/notebooks/nb_jJiFFtznAy4BxkrrZA1o9b/app?show-code=true

New features

Since our last newsletter, we’ve shipped many new features. Here are some highlights (shoutout to Trevor Manz for writing excellent release notes):

Tracing dataflow with the minimap. marimo has a new minimap for navigating notebooks, giving you a focused slice of your notebook’s dataflow graph.

dynamic

Consult our docs for a guide on how to understand dataflow in marimo.

Dynamic key completion. marimo now offers runtime key completions for dictionaries, dataframes, and other subscriptable objects. Unlike static LSP completions, these suggestions come from inspecting objects in memory, enabling completions that are only knowable at runtime.

dynamic

Thanks Thierry for the contribution!

Variable deletion. You can now use del to delete variables from other cells to reclaim memory. Cells that delete a variable run after all cells that reference it. This is an advanced feature but can be useful for memory-intensive workflows with large datasets or tensors, on host or GPU.

Inspect objects with mo.inspect(). mo.inspect, inspired by rich.inspect, lets you explore Python objects with a much richer representation than the default <object at 0x...> Python representation.

py:percent support in marimo convert. marimo convert now supports converting the py:percent format.

# Requires jupytext
uvx --with=jupytext marimo convert pypercent_notebook.py -o notebook.py

Keyboard navigation for columns. marimo uniquely lets you organize your data work in columns, with logic on the left and outputs on the right. Keyboard navigation is now supported with column layouts. You can move between columns using the arrow keys in command mode (or h/l for Vim users).

šŸ“¬ In case you missed it …

We hosted a community call, with feature previews for molab and our upcoming VS Code extension, as well as amazing presentations from our community, including Srijit Seal on making model explainability tools, Prashanth Rao on graph databases and Kuzu, Reuven Lerner on dataframe chaining, and Ty Schlichenmeyer on how reactive execution makes bayesian modelling more efficient and ergonomic.

šŸƒ Community

We broke 400k monthly downloads! We’ve also crossed 15.5k stars on GitHub, have 160 contributors pushing code to marimo, over 400k YouTube views, and over 2.5k marimonauts hanging out on Discord — join the conversation!

Roundup. So many of you are writing about marimo and making awesome notebooks; here’s just a small slice of what our community has been up to.

šŸ“– PyMC + marimo, a slides presentation by Ty. Learn about tightening the bayesian feedback loop with marimo and PyMC in this marimo slides deck (hosted on molab!) by Ty.

šŸŒ Earth observation. A demo of earth observation data, by Luke McQuade.

šŸ¤– Graph RAG with Kuzu, DSPy, and marimo. Part of a tutorial series on Kuzu and marimo by Prashanth Rao.

🌊 Gaussian processes. Lucas Schiefelbein of Ganymede has a beautiful interactive explainer on Gaussian processes.

Don’t forget to submit your projects to our awesome-marimo repo!

Sincerely,

marimo team šŸƒ