Marimo elegantly solves the "hidden state" problem of traditional notebooks by introducing a reactive execution model that ensures computational integrity. It successfully streamlines the transition from messy data exploration to polished, deployable dashboards with impressive architectural simplicity.
深掘り
前提条件
- データがありません。
次のステップ
- データがありません。
深掘り
One folder. One command. A Live marimo Dashboard.追加:
This is a Marimo notebook that is running as an app. Under the hood, it really is just a Python notebook, but we can choose to hide all the code and instead only interact with these widgets. And you can see that as I make a change in the Excel-like widget above over here, that then the chart down below updates. So, that on its own is already pretty cool, but the thing that's even cooler now is that because of a recent update, you can now actually host lots of these notebooks together and get a nice overview of different dashboards and apps. And this is my personal dashboard. It contains a few things for demo purposes, but a bunch of these things are actually used in my personal life. So, there's an overview of the stocks that I invest in. There's also a little tool over here that helps me grab YouTube videos that I've made, and then that's how I can get the transcripts out. There's also an annotation app in here, and this dashboard that shows me all the downloads of my personal open source projects. But, the thing that's really cool is again that you can run all of this with a single command now, which means that if you're running something on your home lab, this is great, but it's also really cool if you want to share some insights with your colleagues. And it's also really easy to deploy uh from something like GitHub as well. So, what I would like to do in this video is explain how you can set up something like this for yourself, and to also conclude with a little demo on how I deployed this over on a VM, but you could of course also just use Docker.
So, just to give a bit of an overview, I have a folder here that has a bunch of skills and a bunch of random jazz, but the thing that's really important for our purposes here is this notebooks folder. This notebooks folder contains all these different apps that I just mentioned, but they are also just Python notebooks. So, what I can also just do is call UVX Marimo. It's important that I add this dependency at the time of making this video, and if I were now to run this, you're going to see Marimo opens up, and I'm able to edit all of these different notebooks. So, let me open up the stocks one that I just had open as well. This is starting up. Let's hide all the markdown code real quick as well. And there we go, right? We see the widget that we saw before.
This is something we don't need, so I'll just delete that. But, I'm reading in something in Pandas, and as I scroll down below, you can also see that we've got these charts that are being generated on my behalf. And because this is a Marimo notebook, I can also just scroll all the way back up, change a number over here, and then all the cells that depend on this investments variable, which points to that widget, should also update. So, you can also see that indeed this chart is now refreshed.
I can also hit this button down below over here to toggle the app mode, and here I get a nice little preview of what this would look like if this were running as a dashboard. But, the thing that's really neat is that I can of course make these notebooks as I would normally, but then I can also choose to deploy them. And for that, I'm going to go back to the terminal. I'm going to shut down what I had before, and I'm going to run this other command instead of running Marimo edit and then pointing to this notebooks folder, I'm now going to run Marimo run. And that's going to take all those notebooks and run them in an app mode instead of an edit mode.
Now, one detail that is important to mention is that I am running this with a sandbox flag. So, that means that we're going to start up a separate UV environment to install all the dependencies in, and I'm also specifying the port, and I'm also saying not to generate a token in this particular case. The token is super useful if you want to keep things secure, but in this case I'm just running it locally, so that's fine. One thing is also good to show is that you could also choose to run with a few extra flags. So, one thing you could do is you could specify the token password manually if you wanted to. You can also specify to show the tracebacks. That way, if it ever were to happen, it should appear in the logs. But, yeah, one thing I just want to show is that when I run this one command now without that help flag, then we see the dashboard that opens up, and these are all the apps that I've made that I want to be able to interact with.
And one thing I do think is maybe cool to show at this point in time is that the demo before was all about showing you a chart. It was very much a dashboard kind of an app. But, if I were to go for this one, it's a slightly different demo. This is all about annotating. So, let's say there's some stream of data needs to be annotated every single day. Well, then one thing I could also do is let's have a look at the sentence. Is this positive sentiment? The food was absolutely delicious. Sure, let's go ahead and hit accept. I can see the little progress bar appear on top. Oh, it was a terrible experience. Okay, let's maybe a more of a fail. And you can see the things down below also update. So, you can actually see that for each example, I get a label, and I could also add a button to maybe take these annotations and upload them to a server somewhere. The main point I want to get at here is that you can also come up with apps that do more than just show a chart, that are more than just a dashboard. You can really think of these things as proper apps.
Now, if you want this to look fancy, that is to say, if you want to have these screenshots appear as well, there's a little bit of extra work that you're going to want to do. If I were to have another look at that notebooks folder, then you are also going to notice that there is this underscore Marimo folder in there as well. That also has some assets, and you will notice that there are folders in here that correspond with notebooks that we have on top. So, let me just go for the stocks example, and let's see what's in there. Oh, there's an open graph.png image in there. This is what the image looks like when I open it up. And as I'm sure you're able to guess by now, this is the convention if you want to add an image such as it appears in the overview of your dashboard, this is the way to do it. After adding the image, there is another thing you do want to do, and that is that you probably also want to add a title and a description to the notebook itself. As you can see in these different examples, there's a title, there's also a description. That is something that you specify on the notebook itself. Personally, I like to keep these nice and short, but you can customize them as you see fit. So, there you have it. This is the command that you're going to want to run if you want to have a dashboard filled with Marimo notebooks as apps. One thing that I might recommend you do as you're getting started, this flag, it tends to be quite useful if you're early on in the project. If there is a notebook that has a bug, then you can redirect all the console outputs to the browser such that anyone who's using the app can actually inspect what any Python error might be.
Be aware that this has some security implications though, especially if you're doing things with keys. So, be a little bit careful with that. But, what I hope is also clear at this point is that if you want to deploy this anywhere, you can just make a Dockerfile that has this command in it, and you should be good to go. And one thing I did, which I thought was pretty cute, is I've been using this service called xc.dev. There's a video that we made a while ago that discusses how it exactly works, but in short, this is a cloud service that gives you one VM. The disk is persistent. From here, you get access to a terminal, or you can SSH in via VS Code. They also have an LLM that you can talk to, but it is a very geek-friendly way to just provision a VM that you can immediately provision as well. So, when I hit terminal here, you can see a terminal opens up inside of the browser.
This will also work on your mobile phone, by the way. And if I go to https, you're going to see that the dashboard that I was building earlier, that now appears over here as well. Maybe just zoom in and out slightly there. But, this is how I deploy this dashboard right now. It's on the cloud VM. You could also do this locally on your Tailscale network. I might make a video on how to do that in the future. But, the main thing I want to get across here is that if you have a couple of notebooks that you really like, it is just so easy to turn them into proper dashboards now. And the really cool thing here is that you're always able to inspect it because it's just Python. You can use five coding with LLMs to generate this with all sorts of widgets, but you always maintain the fact that it is still just a Python notebook. So, you can always inspect it and iterate quite quickly. So, you do kind of get a feeling of the best of both worlds. If you're interested to learn more about this, there's a link in the show notes.
And with that said, thanks for listening.
関連おすすめ
Agentforce NOW AMA: Build with React and Salesforce Multi-Framework
SalesforceDevs
490 views•2026-05-28
How agent o11y differs from traditional o11y — Phil Hetzel, Braintrust
aiDotEngineer
450 views•2026-05-28
Re: 🗣️📍theprophedu📍2026 GST 103 CLASS (E-EXAM REVISION)
theprophedu
636 views•2026-06-04
WEB TECHNOLOGIES UNIT-2 | Degree 4th sem BCOM Computers web technologies unit-2 full explanation💯✅
LearnwithSahera
1K views•2026-05-29
More tests are always better? How to use AI to identify tests that bring little value
Alliance4Qualification
335 views•2026-05-29
Search Algorithms Explained in 60 Seconds! 🤖💨
samarthtuliofficial
218 views•2026-06-01
People of Game of Thrones using JavaScript DOM
AltCampus
296 views•2026-05-30
Instagram accounts got PWNed
EricParker
13K views•2026-06-03











