Marimo Studio builds custom reports, apps, and presentations from one marimo notebook. Keep the analysis in Python, then shape each view with HTML, React, Svelte, or the browser libraries your work needs.
Experimental: Marimo Studio is changing rapidly.
Examples
One notebook supplies the data and calculations for three views, each with its own frontend and interaction model.
Notebook
Load the Rio roster, derive age and medal counts, and inspect the data used by every view.
Marimo notebook loading and transforming the Rio athlete records
Publication report
Summarize 11,538 athletes, 207 delegations, 28 sports, and 1,857 medalists.
Athlete report showing totals for athletes, delegations, sports, and medalists
Linked explorer
Filter by sport or sex, search by name, and brush charts to update the roster, distributions, and totals together.
Athlete explorer with roster filters and a linked height and weight plot
Interactive briefing
Vanilla HTML ·
Shower ·
Three.js
Move through the roster, sports, medalists, and body profiles in a four-chapter presentation built from one point per athlete.
Athlete briefing showing the Olympic roster as an interactive point field
Explore the notebook and every live view.
Quickstart
Open a notebook in an environment that contains Studio:
uvx --with marimo-studio marimo edit analysis.py --sandbox
uvx is uv's temporary command runner. It creates
an isolated Python environment for this invocation.
The thin Studio toolbar appears immediately. Add a cell such as
mo.md("## Revenue is on target"), then click Add view. Save the notebook
if prompted, choose HTML document, and click Create view. The generated
view places displayable notebook cells inside a frontend document.
Studio connects three surfaces:
- Notebook for Python and reactive computation
- Source for the view project's HTML, styles, and browser code
- Preview for the current artifact and notebook runtime
Notebook and Preview open side by side. The toolbar's source action opens the view editor beneath Preview. Marimo's agent sidebar stays available while you edit or focus the view.
Saving Source rebuilds Preview. A failed build reports the source problem and keeps the current artifact available.
Notebook, view source, and Preview in a custom layout
For terminal-first setup with an existing saved notebook, run:
uvx marimo-studio view create dashboard --target analysis.py
Build and run
notebook
-> named view project
-> validated artifact
-> Python, Browser, or Prepared runtime
-> rendered view
One notebook can publish several named views, each with its own source, build, and runtime. Choose Python for server-backed views, Browser for views that run with Pyodide in the browser, or Prepared for static publishing from precomputed results. Prepared exports keep the Python notebook source on the build machine.
Learn and operate
- Start here
- Work in Studio
- Place notebook results
- Run or export a view
- Reference
- Troubleshooting
- Security
- Contributing
License
Marimo Studio is licensed under the Apache License 2.0.