Create your first view
Start with Python 3.10 through 3.14, uv, a Python project and environment manager, and a saved Marimo notebook such as analysis.py.
Save a new notebook first
For an untitled notebook, use Marimo Save As before creating a view. Studio follows the saved notebook after Marimo reloads it. The view project then has a stable location beside that file.
Create the view project
Preview the filesystem and configuration changes:
uvx marimo-studio view create dashboard \
--target analysis.py \
--dry-runCreate the view after reviewing the plan:
uvx marimo-studio view create dashboard \
--target analysis.pyThe default starter creates this view project beside the notebook:
analysis.py
__marimo__/studio/analysis/
dashboard/
view.toml
index.html
AGENTS.mdview.toml records the view provider. index.html is the first source document. AGENTS.md gives coding agents project-specific guidance. A DESIGN.md file also appears in Source when you add one to record the audience, task, and visual decisions for the view.
The first create command can update the notebook's Studio configuration, set dashboard as the default view, and pin the Studio requirement. It prints the launch command required by the selected starter.
Open Studio
For the default Vanilla starter, run:
uvx --with marimo-studio marimo edit analysis.py --sandboxMarimo's --sandbox flag resolves the notebook's declared Python dependencies with uv. It manages the environment and does not isolate untrusted notebook code from your files or network.
The thin toolbar is available whenever Studio is installed, including before the notebook has view configuration. Click Add view to choose a name and starter. An unsaved notebook first opens Marimo's Save dialog.
Notebook and Preview open side by side. Use the source action to edit the view's files beneath Preview. The native agent sidebar remains available.
Place one notebook cell
Give a producing cell a semantic name:
@app.cell
def sales_summary():
import marimo as mo
summary = mo.md("## Revenue is on target")
summary
return (summary,)Place the complete cell inside #app-shell:
<main id="app-shell" class="studio-view">
<marimo-cell name="sales_summary"></marimo-cell>
</main>Save index.html. Preview renders Revenue is on target. A later notebook run updates the mounted cell through Marimo reactivity. A frontend build error keeps the last successful artifact visible and reports the affected source document.
Run the view
Start the notebook as an application:
uvx --with marimo-studio marimo run analysis.py --sandboxThe default view opens at /. Another view named report opens at /report/.
Continue with Place notebook results in a view for rendered outputs and browser values. Use Troubleshoot Studio when Studio cannot discover the view or build its source.