Skip to content

Terminology ​

Use these nouns when reading the guides, APIs, command output, and export format. The concept pages introduce them through worked examples.

Product objects ​

TermMeaning
Notebook resultA Python value, rendered output, or complete cell produced by the notebook before export.
ProducerThe Python environment that inspects a notebook, executes selected states, and creates portable results.
ConsumerA Python reader, browser reader, agent, or custom implementation that reads a completed notebook export.
Notebook exportOne canonical index.json and the content-addressed assets declared by that index. Use export after the full noun is clear.
Export identityThe lowercase SHA-256 digest of the exact canonical index.json bytes. Python and browser readers expose it as NotebookExport.identity.
ProvenanceRecords that identify the source notebook, producer implementation, selected state, output representation, and asset bytes.

States and inputs ​

TermMeaning
DefinitionA name created by a notebook cell. Planning inspects definitions to find output sources and eligible inputs.
InputA definition whose value can vary between exported states. The ExportSpec omits an inputs field because planning infers the input names.
Captured baselineThe complete values of inferred inputs before an authored state row is applied. It comes from the initial autorun or selected live session. An alias named baseline has no special behavior.
State rowThe sparse object written under one state name in an ExportSpec. Omitted inputs keep their captured-baseline values.
State spaceA finite declaration of explicit state rows, a Cartesian input matrix, or both. StateSpace can be composed with an application-owned output plan.
Complete input vectorOne value for every inferred input, produced by completing and normalizing a state row.
Exported stateOne complete input vector, its aliases, and the named outputs stored for that vector.
State-output relationThe finite table that pairs each complete exported state with the same named output set.
State aliasAn authored state name that selects one state fingerprint. Several aliases can select the same state.
Default aliasThe authored alias named by StateSpace.default_state or ExportSpec.default_state.
Default state fingerprintThe fingerprint stored in index.json.default_state.
Default exported stateThe ExportState returned by Python NotebookExport.default_state or browser NotebookExport.defaultState.
State fingerprintThe lowercase SHA-256 digest of the canonical portable JSON for one complete input vector.
ObservationOne successful input vector, complete for its recorded input-name relation, retained as authoring evidence. Planning can project a broader relation to its inferred inputs. Observations remain repository history until an author writes chosen rows into an ExportSpec.
Observation revisionThe monotonically increasing repository revision for a producer's observations. Hosts can use it to detect new authoring evidence.
Initial autorunmarimo's first dependency execution after opening a notebook. Planning uses it to inspect definitions and capture baseline input values.
Dependency closureA selected notebook result and every definition required to compute it. Planning uses this closure to infer inputs.
Input modeThe inspection field that reports whether a state row replaces a complete input value or applies a sparse AnyWidget patch.
Sensitive inputA marimo UI root that contains a password control. Planning excludes sensitive inputs from exported states.

Outputs and storage ​

TermMeaning
OutputOne published name and representation available for every exported state.
Output sourceThe json, native, export, output, or cell selection declared by an output spec.
SelectorA path from one Python definition through supported attribute or item steps to a selected notebook result.
ExporterA producer-side converter that returns a BlobAsset for one selected value.
Output planThe complete set of authored output declarations. Its identity changes when an output source, exporter, option, or declared dependency changes.
Output representationThe codec and media type that define how one output is stored and decoded. One output name keeps the same representation across every state.
CodecA versioned identifier for the native storage envelope, such as marimo.json.v1 or numpy.npy.v1.
Media typeThe standard content label for data inside a BlobAsset envelope. Custom representations should use a versioned media type.
Output descriptorThe index.json record that declares an output's representation, provenance, and inline value or asset reference.
Rendered-output snapshotAn inert marimo.output.v1 record containing formatted output and replay resources for one selected result.
Complete-cell snapshotAn inert marimo.cell.v1 record containing cell identity, outcome, terminal output, console records, and replay resources.
BlobAssetRepresentation bytes with a media type, optional portable filename, and portable JSON metadata.
AssetA content-addressed file referenced by an output descriptor. Its path follows from its codec and SHA-256 digest.
Asset referenceThe SHA-256 and byte size recorded for one asset. Python names this record AssetRef. TypeScript names it AssetDescriptor.
Asset closureThe distinct set of assets declared by every output descriptor in a notebook export.
Repository artifactA prepared-state or export-generation directory managed by the export repository. A repository artifact can contain several output assets.
ProjectionThe isolated output-specific capture used to produce one planned output. Projection-scoped identifiers prevent resources from separate outputs from colliding.
Control bindingA durable mapping from one projection-scoped UI object ID to an exported input and a typed path within that input. PreparedStateController uses it to route accepted control values.
Output loaderA consumer-side decoder selected explicitly for an output's codec and media type. A browser loader receives verified data and returns inert data or a mountable value.
MountThe browser lifecycle that attaches a mountable value to a document element and returns a disposable view.

Planning and preparation ​

TermMeaning
ExportSpecThe authored declaration of one default state alias, sparse named state rows, and named output specs.
ExportPlanThe immutable result of planning. It contains identities, inferred inputs, normalized states, outputs, observations, and reusable or missing state fingerprints.
PlanResolve an ExportSpec against a producer and repository to expose normalized states, reusable work, and missing work.
PrepareStart a saved notebook when needed, execute missing states, and return a leased PreparedExport.
CapturePrepare through one named live marimo session while leaving that session active.
BuildPrepare from a saved notebook, write the notebook export, verify it, and close the preparation handle.
WriteCopy a PreparedExport to a destination, verify the staged files, and commit the complete directory.
Prepared stateA reusable portable result for one producer identity, output-plan identity, and state fingerprint.
Prepared exportA leased immutable export generation for one exact ExportSpec. The Python PreparedExport handle exposes it.
Export generationOne immutable prepared-export directory retained by the export repository.
Export repositoryPrivate local storage for observations, prepared states, export generations, leases, and retention metadata.
Artifact leaseA live ownership record that protects one prepared state or export generation from retention. A detached prepared asset owns a generation lease.
Staging leaseA live ownership record that protects an incomplete repository staging directory.
Preparation reservationA fenced claim that gives one producer operation commit authority for a repository identity.
Exact prepared-export reuseReuse of a prepared export whose producer, output plan, and complete ExportSpec identities all match. It can avoid notebook startup.
Producer identityThe SHA-256 identity that binds the notebook document, relevant source and installed environment, runtime facts, and producer implementation.
Output-plan identityThe SHA-256 identity of the complete authored outputs declaration.
ExportSpec identityThe spec_sha256 digest of the exact canonical ExportSpec.
Repository identityThe digest that combines producer, output-plan, and ExportSpec identities for exact repository lookup. ExportPlan.identity exposes it.
Prepared assetA file-scoped handle to one declared file in a PreparedExport, backed by an independently owned lease that protects the complete export generation.
Repository retentionThe bounded policy that selects unleased prepared states and export generations for pruning. Active leases protect their artifacts.

Reading and publication ​

TermMeaning
OpenParse and validate index.json, construct immutable reader objects, and leave assets lazy.
ResolveSelect a state already present in the notebook export by alias, complete input vector, or sparse patch from an existing state.
LoadVerify one output asset when present, then decode its representation through an explicit browser loader.
Prepared manifestA bounded marimo-export.prepared.v1 JSON record that names one notebook export identity, export URL, complete input vector, state fingerprint, and optional refresh interval.
Prepared publication in PythonA controller-owned PreparedExport and application metadata selected for one application key.
Prepared publication in the browserThe value that joins a validated prepared manifest, its opened notebook export, and its selected state.
Prepared publication controllerThe Python coordinator that keeps the last successful prepared export available while application inputs or observations change.
Prepared state controllerThe browser coordinator that applies semantic input changes, cancels stale transitions, and retains the last committed publication after a rejected transition.
Publication refreshThe browser lifecycle that fetches prepared manifests, reuses an already opened export when possible, and replaces the controller's publication.
Transition generationThe browser controller's monotonic sequence value for superseding stale application work. It is distinct from a repository export generation.

Integrity and trust ​

TermMeaning
Canonical JSONJSON encoded under one closed set of ordering, number, string, and tag rules so the same supported value has one byte representation.
Portable JSONNull, booleans, Unicode strings, JavaScript-safe finite numbers, arrays, and string-keyed objects accepted with matching Python and JavaScript semantics.
VerificationValidation of the canonical index and every declared asset against sizes, SHA-256 digests, framing, representation invariants, and descriptor agreement.
Integrity rootThe loaded canonical index.json whose declarations determine the files and identities that verification checks.
AuthenticationEvidence supplied by a delivery channel or another trust system that establishes who published the integrity root. Export verification establishes consistency with that root.
marimo computation cachemarimo-owned storage for notebook cell results, invalidation, restoration, serialization, signing, and cache stores. It is separate from the export repository.

Read States, Outputs, Reuse, and Verification and trust for worked explanations.

Released under the Apache 2.0 License.