To get updates like this one delivered to your inbox, subscribe to our newsletter.
Hi! 👋 You’re reading the sixth marimo 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!
Since the last newsletter was mailed last month, we’ve had 22 new releases. In this newsletter, we’ll highlight a few features from these releases that we’re particularly excited about.
📦 Sandboxed notebooks
We’re excited to announce a new feature called sandboxed notebooks.
Sandboxed notebooks carry their own package environment in them: no
requirements.txt
required!
To create or edit a sandboxed notebook, just pass the --sandbox
flag to
whatever marimo command you’re using; for example,
This runs your notebook in a temporary Python virtual environment, or “sandbox”. When running in a sandbox, marimo automatically tracks the packages used by your notebook and serializes them as a top-level comment in the notebook file. Before starting your notebook, marimo populates the sandbox the packages listed in the top-level comment.
This opt-in feature, inspired by Pluto.jl,
makes notebooks much easier to share — just send the notebook.py
file!
It also helps prevent obscure bugs arising from environment pollution.
Sandboxed notebooks are powered by the uv package manager
and its support for modern Python standards, specifically
PEP 723. They’re only possible
because marimo stores notebooks as Python, not JSON.
Check out our latest blog to learn more about sandboxed notebooks.
🤖 An AI assistant that knows your data
marimo has built-in support for AI assistants that help you code, including any
OpenAI-compatible assistant, Anthropic, and local models via Ollama. In marimo,
these assistants don’t just understand your code --- they also understand your data!
When you use our “Generate with AI” feature to write code, you can now
give the AI context about your dataframe and table schemas by tagging them
in your query with @<dataframe-name>
.
This is just the first of several steps we’re taking to make our AIs deeply aware of your data. Have an idea on how we can improve our AI integration? Let us know!
🌟 Spotlight on “Haleshot” Srihari Thyagarajan!
Each week on our socials and Discord, we put the spotlight on a member of the marimo community — we’re so inspired by everything you all are creating!
This newsletter, we’re putting the spotlight on “Haleshot” Srihari Thyagarajan! Haleshot has contributed so much to the marimo community — ranging from pull requests, feedback in Discord, example notebooks and tutorials, and more. This spotlight is a bit meta: most recently, Haleshot started the marimo spotlight GitHub repo. This repo is an incredibly well-curated collection of all our marimo spotlights.
Haleshot is an exemplary member of our community, contributing so much to support other marimo contributors. Thanks Haleshot! 🙏
Community
We have over 50 contributors pushing code to marimo, up from 40 last month, and many more contributors reporting bugs, sharing feedback, and hanging with us on Discord — come chat with us!
Before we sign off, we’d like to share a new community initiative we’ve started: the marimo ambassador program. Our ambassador program helps you build a dedicated AI/ML data science audience, and connects you with a community other ambassadors that share your passion for all things data. The ambassador program is new and still evolving; apply today to help shape what it becomes.
-Akshay & Myles