
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.
Keyboard shortcuts. When refactoring a cell with a prompt, you can now use keyboard shortcuts to accept or reject the suggestion.
Tables in AI chat. The chat sidebar now renders markdown tables.
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.
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.
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 š
