Skip to content

Build a custom view for a Marimo notebook

Choose the cells and Python values an audience needs, then arrange them in a custom web page. The Marimo notebook keeps calculations, reactive controls, plots, tables, and widgets. Studio keeps each view in HTML and CSS beside the notebook.

console
uvx marimo-studio analysis.py

The command opens the Marimo editor and a live view preview in one workspace. Saved view changes refresh around the running Python session.

Keep Python and presentation together

NotebookStudio view
Data loading and calculationsPage structure and navigation
Reactive dependenciesAudience-specific wording
Controls, plots, tables, and widgetsLayout, branding, and responsive design
Presentation valuesWhich results appear

Place a complete cell output with:

html
<marimo-cell name="forecast_chart"></marimo-cell>

Place a JSON-compatible Python value in page text with:

html
<time mo-value="report.updated_at"></time>

Both remain connected to the notebook kernel. While editing, a control change in the notebook or an attached preview updates the other open views and reruns the affected cells.

Build for each audience

One notebook can serve several views:

console
uvx marimo-studio view add executive analysis.py
uvx marimo-studio view add operations analysis.py

Views share notebook cells and aliases while keeping separate HTML, CSS, and static files.

Continue