⚡️The Future of Notebooks - with Akshay Agrawal of Marimo
Watch the full show on YouTube: https://www.youtube.com/watch?v=7HJCa-pHfSQ
18 Jul 2025 · 28:13 · transcript: transcribed · original
Sign in to retry the failed stages.
Claims
In the order they were said
“So Marimo is an open source notebook for Python that's built entirely from scratch. So it has no dependencies on Jupyter and is designed specifically for AI and data work.”
“So some of the main things that are different from like traditional notebooks is Marimo has like reactive execution. So you run a cell, Marimo knows what other cells need to run and also has built in UI elements.”
Claim: Marimo uses reactive execution to determine which other cells need to run when a user runs a cell.
“Marimo knows what other cells need to run and also has built in UI elements.”
Claim: Marimo includes built-in UI elements.
“And like the upshot of these things is that that it lets you work with data and AI models in entirely new ways.”
“And it like really puts your data front and center in a way that sort of you don't see in traditional notebooks.”
Claim: Marimo foregrounds data more than traditional notebooks do.
“stealing sort of the strong traction that we're seeing is that not only are they really good for rapid prototyping, they also let you go from prototype to production.”
Claim: Marimo notebooks support rapid prototyping and a path from prototype to production.
“So they're stored as pure Python, so you can version them with Git.”
Claim: Marimo notebooks are stored as pure Python files and can be versioned with Git.
“You can share them as data apps. You can execute them as scripts or pipeline.”
Claim: Marimo notebooks can be shared as data apps and run as scripts or pipelines.
“They have SQL built in, and you can connect to your own databases or data lakes.”
Claim: Marimo includes built-in SQL and can connect to databases and data lakes.
“So you can think of it as a modern replacement for not only Jupyter, but also Streamlit.”
Claim: Marimo is positioned as a modern replacement for Jupyter and Streamlit.
“remote radio paper mill and yeah so we are seeing pretty strong traction this year i think last i checked there were 300 000 monthly downloads on pie pie more github stars than jupiter notebook for whatever that's worth and we're used at companies like open ai hugging face cloudflare black rock universities like stanford and berkeley that's”
“I started working on Marimo after, so I was at Google Brain. It was a while ago, but I was an engineer on TensorFlow.”
Claim: Akshay Agrawal worked at Google Brain and was an engineer on TensorFlow.
“And then after that, I did a PhD at Stanford in machine learning research.”
“And, you know, one thing I noticed and even for myself, too, is that like people have a lot of complaints about Jupyter Notebooks. And, you know, I did, too, which is sort of why I'm working on Marimo today.”
“But at the same time, they provided something that was. really invaluable for people who work with data and AI, which is the ability to write code and like interact with the output of a code, interact with your data in an iterative way.”
“And I think one thing that's constant, like, you know, back then it was machine learning, now it's more generative AI. The thing that has been true is that you got to look at your data.”
“And notebooks are like really good for that, even though they have traditionally had like a lot of problems, other problems like hidden state reproducibility issues, the file format making it, you know, unable to version with Git.”
“I noticed that not only does a lot of data work start in notebooks,”
Claim: A large amount of data work begins in notebooks.
“you know, with, you know, the rise of AI. So at that time, that was. End of 2021, so ChatGPT was just bursting onto the scene, I think it became clear to me that people were going to spend even more time working with data, evaluating model outputs and stuff.”
“I wanted to design something that kept the interactivity that notebooks are really great for, but that had sort of the guardrails that like regular software has like reproducibility, no hidden state,”
“you can actually reuse your notebooks as apps, as scripts,”
Claim: Akshay Agrawal wanted Marimo notebooks to be reusable as applications and scripts.
“immediately different between how a Jupyter notebook works and a Rima notebook works is that this notebook is going to react to my UI interactions and also my code interactions.”
“And as I make this, you can see down below, I'm getting a live preview of the underlying images that have been embedded into 2D.”
“I think really important whenever you work with data, like you actually really need to see your data.”
Claim: The speaker considers visual access to data really important when working with data.
“very painful to like get working in traditional notebooks that are sort of based on jupyter”
“and in contrast like if you look at the code for this notebook it's really quite simple just a few lines of code you create an altair chart and then you just wrap it in one special marimo function and that that makes this thing totally interactive and then”
“So if I select here, you'll see the data frame gets sent back to Python and you can see a visualization of it.”
Claim: Selecting data in the chart sends the selected data frame back to Python for visualization.
“And then you have downstream code that can manipulate that data in any way.”
Claim: Downstream code can manipulate the selected data in any way.
“I interact with a notebook. And then Marimo knows how to automatically update outputs.”
Claim: Marimo automatically updates notebook outputs in response to user interactions.
“So our file format is different, but yeah, you can copy paste the files or the cells over, or we have a command line utility, Marimo convert.”
“my notebook.ipy and b to my notebook.py and I'll do the conversion there are there are some restrictions on the kind of code that marimo lets you write because marimo does have a dependency graph basically on your cells that's how it knows what cells to run you can't redefining variables across multiple cells”
“A better conversion tool will fix that up for you and we have things like local variables and other things that sort of make that work.”
“Again like if you were doing this in a Jupyter notebook you would probably have copy pasted that like six cells like multiple times. And then you wouldn't even have the sort of drill-down interactivity.”
“Remo is actually pretty flexible in like the way you can arrange. your code and we recognize that like hey monitors are wide and you might want to use that screen real estate so you can configure it to show things in columns and the way that the order of execution works is just based on variable declarations and references kind of like excel in some sense right so you can have columns things just kind of execute in the right way so this notebook is it's kind of fun so what we have here we have a few cells”
“your code and we recognize that like hey monitors are wide and you might want to use that screen real estate so you can configure it to show things in columns and the way that the order of execution works is just based on variable declarations and references kind of like excel in some sense right so you can have columns things just kind of execute in the right way so this notebook is it's kind of fun so what we have here we have a few cells”
Claim: Marimo notebooks can display content in columns to make use of wide screens.
“This is the kind of thing that you really don't think if you think Jupiter Notebook, you don't envision yourself being able to make workflows like this for yourself.”
“But like, I hope like a demo like this shows like how MoMA really makes you rethink what a notebook can do and really sort of brings your data to life in new ways.”
“Yeah, so we do have some AI-native capabilities to call these models.”
Claim: Marimo provides AI-native capabilities for calling AI models.
“So right now, this notebook is just calling the client API.”
Claim: The demonstrated notebook currently calls the model through the client API.
“if you want to you can just generate code so speaking of um a recent podcast that y'all did for on quadratic the ai spreadsheet you know there we saw a lot that you could use natural language to generate code and actually remo lets you do similar things so like i could there's”
“a generate with ai button here at the bottom right”
Claim: Marimo provides a “Generate with AI” button for generating code.
“So I could write some code, I can tag data frames and other things that I have.”
Claim: Marimo's code-generation workflow lets the user tag data frames and other items.
“We can actually store dependencies in line in the notebook file itself in like the notebook header. And this is something that UV supports.”
“So then you can just actually ship a notebook file around and it contains all its dependencies. That's like kind of opt in, but that's one way thing that like really makes notebooks a lot more reproducible.”
Claim: Opting to ship a notebook file containing its dependencies makes the notebook more reproducible.
“And the AI has context to sort of like all the data frames, all the variables that you already have imported into your notebook as well. But yeah, it can readily use. other modules and we'll just sort of do the right thing.”
“and you'll see this little thing here moped widget and it says gamepad connected and i'm moving around my mouse and you see some like inputs changing here and so like to really drive home how interactive remote is and like how many different ways we can use to sort of interact like not only can you use your mouse to change ui interactions you can build custom extensions to control your the applications you make in a remote notebook with anything including a PS5 controller.”
“we have like a bunch of papers from Archive and we've indexed them using ChromaDB into like a basic vector database.”
Claim: The demonstrated application indexed papers from arXiv using ChromaDB in a basic vector database.
“to get a bunch of papers related to data quality and there's two embedding models and the goal is to compare like which embedding model do we prefer so the embedding model embeds the query and then you know uses vector search to pull related papers so if I submit this I get”
“So another way that like Murimo really brings your data to life and really makes your work a lot more interactive than it might be.”
Claim: Marimo can make data work more interactive than it might otherwise be.
“And so that kind of really accelerates rapid prototyping.”
Claim: Marimo’s AI-assisted code generation can accelerate rapid prototyping.
“And you don't really have to leave your tab and go to ChatGPT. You can just do it entirely in here.”
Claim: Marimo lets users generate code within the notebook instead of switching to ChatGPT.
“just sort of vibe code your way through your entire analysis in this way and i guess like one thing that's kind of interesting to talk about that maybe is kind of subtle but like if you think about doing something like this um i don't know in cursor or chat gpt or something like this what's unique about doing it in marimo is the fact that not only does marimo see your code but it sees all the variables in memory and it can also see your database connections etc so it can really provide rich rich completions so like it knows the name of the columns for example”
“we like basically i think we do like df.head to just like get like a preview of the columns the data types and then like a few sample rows and just kind of shove that into the context window yeah so let's see i can ask like another query like maybe i can say something like so”
“origin column which is the country and then boom it starts writing again what's kind of cool is that you'll see it knows all the column names here and then again I can fix up the code a little except try it out and there it is a lot faster than going to to the API docs and”
“And we have a bring your own keys model. So right now I'm using an OpenAI key, but you can also use local models with Olama or anything you like really.”
“um actually not not entirely but marimo is actually this is running just on my laptop but we can run it with assembly so i guess similar to a jupiter notebook marimo is an open source package that you can just install and run wherever you like so pip install marimo run on your laptop run on a cloud server wherever you like we've also made it possible to run it entirely in WebAssembly.”
“So actually, if you go to marimo.new, this opens a little notebook playground in your browser, and this is running entirely in WebAssembly.”
Claim: The marimo.new browser notebook playground runs entirely in WebAssembly.
“So if you're using Marimo, just the local library on your laptop, on the cloud server, you can use any kind of package you want.”
Claim: In local or cloud-server deployments of Marimo, users can use any package they want.
“There are restrictions. So you try to import Torch, it's not going to work. It's not going to be able to install it. But there are certain packages that just don't work.”
“so whereas I think the WebAssembly really like democratizes interactive computing to a large extent, it doesn't totally.”
“So for that reason, our team has actually been really hard at work. building a cloud-hosted Colab-like notebook that we're going to give away to our community for free, and we're calling it MoLab.”
Claim: The Marimo team is building MoLab, a free cloud-hosted notebook similar to Colab, for its community.
“It's a pretty simple service. You can create a new notebook, you can import a notebook locally or from GitHub,”
Claim: MoLab allows users to create notebooks and import notebooks locally or from GitHub.
“Cloud instances currently they're running on modal and so here you can use any package you like but you can have configurable CPU and RAM you can also upload your own data and we store them in Cloudflare R2 buckets.”
“You know the name I mean one thing that's actually kind of funny for the origin story of this is that a lot of our users were asking us for something like Colab but based on Marimo.”
Claim: Many Marimo users requested a Google Colab-like service built around Marimo.
“Actually, you go to Google Colab's GitHub issues page, they have one, and sort by thumbs up. We are... like I guess the sixth or seventh most upvoted issue support Marimo in Google Collab and I don't think Google was ever going to do that anytime soon so we decided to kind of just do something like that on our own so that's sort of the origin where Marimo came from yeah it's a funny the issue was open in June of last year it was one of our users who we've communicated with over at GitHub for for some time yeah”
“like I guess the sixth or seventh most upvoted issue support Marimo in Google Collab and I don't think Google was ever going to do that anytime soon so we decided to kind of just do something like that on our own so that's sort of the origin where Marimo came from yeah it's a funny the issue was open in June of last year it was one of our users who we've communicated with over at GitHub for for some time yeah”
“you know, we talked a little bit about how Marima has some restrictions on the kind of code you write. And actually that ends up leading to much better code because you can't reuse, you can't redefine variables, you kind of have to write things in a functional way. So in that sense,”
Claim: The speaker believes Marimo’s constraints on code-writing practices lead to better code.
“And actually that ends up leading to much better code because you can't reuse, you can't redefine variables, you kind of have to write things in a functional way. So in that sense,”
Claim: Marimo’s coding model disallows variable reuse and redefinition and encourages a functional style.
“break some old maybe bad habits one of our users called this gentle parenting and another way of breaking out of the notebook that we actually do have so I mentioned notebooks are stored as pure Python so if I go I can open a notebook file and we can take a look at what it actually looks like oops I'll see as a py extension”
Claim: One Marimo user characterized Marimo’s coding constraints as “gentle parenting.”
“Every cell is decorated in an app.cell decorator and there is an app.run sort of at the bottom which suggests you can run this as a script and like indeed you can.”
“just starts executing as a script it loaded a cache data so it did some other stuff that didn't print to the terminal so that's that's one way that we help folks break out of the notebooking workflow the other way is you can actually run any marimo notebook as a data app similar to streamlet so i can say marima run embedding mnis.py and then it'll run it as a read-only web app in my browser that you can also deploy and share with other other users or you know maybe non-technical folks so”
“AI assistance that we have, you know, agents are obviously sort of a natural thing to think about.”
Claim: The Marimo team sees agents as a natural direction to explore for improving its AI assistance.
“There's actually a really cool project by a PhD student at Stanford where they work in genomics and they actually forked Marimo.”
Claim: A Stanford PhD student working in genomics forked Marimo.
“They have a project called Marimo Agents and they added a new type of cell,”
Claim: The Stanford student's project is called Marimo Agents and adds a new type of notebook cell.
“an agent cell where you can type English and then it kicks off an agent that generates your Python code and then adds it to your notebook and then you have a record of the prompt.”
“So things like that we're looking into exploring too.”
Claim: The Marimo team is exploring agent-cell ideas such as those demonstrated by Marimo Agents.
“Yeah, we're always looking for more users.”
Claim: Marimo is always looking for more users.
“So if you want to try Marimo, easiest way to get started on your own machine is to pip install it and then just write Marimo tutorial intro. Pip install Marimo, Marimo tutorial intro will get you going.”
Claim: To start using Marimo locally, install it with pip and run “marimo tutorial intro.”
“Try out Moab if you want a cloud-hosted experience of being able to use any package sharing notebooks with links like just like you would with Colab. So that will be at moab.murimo.com.”
“we love contributors. We have over 100 open source contributors.”
Claim: Marimo has more than 100 open-source contributors.
“And I think notebooks are still underrated by a lot of people and requires a dedicated team with a strong vision like you have to reinvent one of the core workflows of most research scientists and engineers.”
Claim: Notebooks remain underrated by many people, in the speaker’s view.
“And I think notebooks are still underrated by a lot of people and requires a dedicated team with a strong vision like you have to reinvent one of the core workflows of most research scientists and engineers.”