Skip to content

Glossary ​

Every term on this page keeps one meaning across the Studio documentation. Where another page links a term, hovering over the link or focusing it shows the definition. How Studio works connects the terms in one walkthrough.

The notebook ​

Notebook ​

The marimo Python file, such as analysis.py, that a view presents. It holds the data, the computation, and the controls, and all of a view's Python lives in it.

marimo runs a notebook reactively. When a cell's inputs change, marimo reruns that cell and every cell that reads what it defines. What is Studio? explains how a notebook and its views divide the work.

Cell ​

One function in the notebook, named by its function name. Placed in a view, a cell shows everything the notebook shows for it: its output, its controls, its errors, and its console output when the notebook shows cell logs.

Control ​

An interactive element that a cell creates with mo.ui, such as a slider or a dropdown. Changing a control reruns the cells that read its value.

Session ​

A running copy of the notebook. marimo runs the notebook's cells in a session and keeps their results, and a page reads those results by name.

The runtime decides where the session runs. marimo run starts a session for each visitor, so one visitor's controls leave another visitor's results unchanged.

Results ​

Result ​

Something the notebook computes that a view can place: a cell, an output, or a value. A view names each result, and Studio resolves the name to the cell that computes it.

Output ​

One Python object from the notebook, such as a chart, shown the way marimo renders it. A view names the variable that holds the object, so the notebook need not display it.

Value ​

Notebook data, such as a number, a record, or a table, that a view formats or draws itself. A page receives it as JSON, or a dataframe as a Flechette Table decoded from Arrow IPC. A render receives its JSON form.

Value selector ​

A variable name with optional steps into the object it holds, such as summary.total, rows[0], or results["overview"]. Outputs and values are named by value selectors.

Target ​

The name a view uses for one result: a cell name or cell alias for a cell, and a value selector for an output or a value.

Cell alias ​

A name that Studio stores in the notebook's [tool.marimo-studio.cells] table for a cell whose function has no name. Views place the cell by its alias.

Views ​

View ​

One named presentation of a notebook for one audience, such as a slide deck named lecture or a PDF named report. A notebook has one or more views, and each view has its own view project and URL, such as /lecture/.

The default view opens at /. Work in Studio creates, switches, renames, and removes views.

View project ​

The folder that holds one view's source, such as studio/analysis/dashboard/. It is an ordinary project in the view's format, such as an HTML page, a React app, or a Typst document, so any editor, tool, or coding agent can change it.

Studio watches the folder and rebuilds the view when a build input changes. Every view project holds a view.toml.

Views folder ​

The folder beside the notebook that holds its view projects, such as studio/analysis/ for analysis.py. Commit it with the notebook.

view.toml ​

The file in every view project that names the view provider that builds the project, and the options that provider reads. Studio writes it when it creates the view.

Format ​

The kind of project a view is, such as plain HTML, React, Svelte, Quarto, Typst, or LaTeX. The view's provider builds that format. Choose a format compares the built-in formats.

Starter ​

A template that writes the first files of a new view project. Choose one in the New view dialog, or pass --starter to marimo-studio view create.

View provider ​

A Python package that teaches Studio one format. It offers starters, reports which files of a view project people edit and which files the build reads, locates the hosts in those files, and builds the project into a page.

Studio ships providers for HTML, React, Svelte, Observable Notebook Kit, Quarto, Typst, and LaTeX. Add a view provider writes one for another framework or tool.

Provider key ​

The name of an installed view provider, made from its Python distribution name and its registration name, such as marimo-studio/react. view.toml stores it.

Pages and hosts ​

Page ​

The HTML that a view's build produces. Every view reaches its readers as a page in the browser, and Studio fills the page's hosts with notebook results.

A Typst or LaTeX view's page shows its render, the PDF, with a download link.

Host ​

An element in a page that names one result: <marimo-cell> for a cell, <marimo-output> for an output, or any element with an mo-value attribute for a value. Studio fills each host with its result and updates it when the result changes.

<marimo-cell> and <marimo-output> are custom elements, HTML elements that a page defines for itself. Studio defines both in every page it publishes. Quarto's marimo shortcode writes hosts for a Quarto view.

App shell ​

The one element with id="app-shell" that holds a page's own content. Studio refreshes it in place when a new build publishes, and Lens selections work inside it. Place hosts inside it.

Projection ​

The connection Studio keeps between one host and its result while the page is open. Studio resolves the host's target to the cell that computes it, runs that cell and the cells it depends on in the session, and mounts the result in the host.

Render ​

A file, such as a PDF, an image, or a video, that a provider makes from notebook results with its own tool. Typst and LaTeX views render a PDF. Studio renders the file again when a result it reads changes, and the view's page shows the file.

Building and editing ​

Build ​

The step in which the view's provider turns the view project into a page. Studio builds when a build input changes. A notebook rerun needs no build, because the page receives new results while it runs.

Build input ​

A file or bounded directory of the view project that the build reads. Saving a build input rebuilds the view.

A file can be a source document, a build input, or both. A React view shows its lockfile in Source as read-only, and the lockfile still affects the build. Editing DESIGN.md leaves the build unchanged.

Source document ​

A file of the view project that the Source pane shows, editable or read-only. The view's provider chooses these files, and Studio adds view.toml.

Source ​

The Studio pane that edits the view's source documents. It opens beneath Preview from Edit view source.

Preview ​

The Studio pane that shows the view's latest successful build, running against the live notebook. When a build fails, Preview keeps the previous page.

Artifact ​

The validated, unchangeable set of files that one successful build produces. Studio publishes each artifact as a new revision, and a failed build leaves the current artifact in place.

Presentation ​

One artifact combined with the notebook, its runtime configuration, its projections, and the browser session that shows them. Identities and state defines the revisions that identify a presentation.

Running and sharing ​

Runtime ​

Where the notebook's Python runs when someone opens a view. Studio has three: the Python runtime, the Browser runtime, and the Prepared runtime.

Run or export a view compares them.

Python runtime ​

The notebook runs in a marimo session on a server, through marimo edit or marimo run. Its configuration ID is server. It can read private files, credentials, native packages, and services.

Browser runtime ​

The notebook runs in each visitor's browser, in a worker, through Pyodide, a build of Python for WebAssembly. Its configuration ID is wasm. Visitors receive the notebook source.

Prepared runtime ​

The notebook ran ahead of time, during export, once for each prepared state, and the page shows the saved results. Visitors run no Python and receive no notebook source. Its runtime ID is zero-python.

Prepared export ​

A static site that marimo-studio view export writes for the Prepared runtime. It holds the built page and the saved results, and any static host, such as GitHub Pages, can serve it.

Prepared state ​

One combination of control values that a prepared export computes ahead of time. states.yaml in the view project lists them. Changing a control in a prepared export loads the matching saved state, and when no state matches, the page keeps the previous one.

Selecting with Lens ​

Lens ​

A marimo widget, from the marimo-lens package, that lets you select part of a rendered result, add a note, and hand both to a coding agent with the notebook code behind it. In Studio, Lens selects parts of views as well as notebook outputs.

Selection ​

One thing you pointed at with Lens: a target, the point or area you marked on it, and your note. Lens labels selections S1, S2, and so on, and an agent reads each one with the notebook cells behind it.

Lens target ​

A part of a view that Lens can select: a host, a region that page code draws from declared inputs, an authored region of the page, or a render region.

Render region ​

A rectangle on a rendered file, such as a figure on a PDF page or a shape during part of a video, with the notebook results it shows and the source line that placed them. Lens selects render regions and traces them to their cells.

View provider API ​

These terms appear in the View provider API and in Add a view provider.

Starter key ​

A starter's name within its provider, such as default or reveal.

Starter ID ​

A provider key and a starter key joined by a colon, such as marimo-studio/react:reveal. --starter takes a starter ID.

Provider options ​

The [options] table in view.toml. A provider declares the options it reads, and Studio rejects any other option.

Cell target ​

The name that a <marimo-cell> host in a new view uses: a marimo cell name, or a cell alias that Studio proposes for a cell without one.

Projection site ​

The location, kind, and targets of one host in a view project's source. A provider reports one site per host, so Studio can connect each host in the built page to the notebook.

Build snapshot ​

A private copy of the build inputs that a build reads, with a site ID marked on every host. The view project on disk keeps its original markup.

Render template ​

The private build output that each render starts from. A build writes it to BuildRequest.template_root.

Render value ​

A notebook value that a render reads in its JSON form.

Render output ​

A notebook value, such as a figure, that a render places as media, such as an image or a PDF, in the first type of its accept list.

Render cell ​

A named notebook cell whose output a render places as media, such as an image.

Rendered files ​

The files that one render returns, with a main file and an optional preview.

Render host ​

<marimo-output render="main.typ">, the host that shows a render's files on the page.

Accept list ​

The media types that a host or a render can show for a result, in order of preference.

Diagnostic ​

A problem in a view project, with a code, a message, a hint, and an optional source location. Source shows diagnostics beside the file they point at.