Marie-Hélène Burle
October 28, 2025
marimo
is not available on the Alliance clusters at this pointJupyter notebooks are very popular but they come with
marimo notebooks automatically generate an intermediate representation (IR) in the form of a directed acyclic graph (DAC) of
Each cell is parsed into an abstract syntax tree (AST)
Statically inferred (no runtime tracing)
Notebooks are saved as .py
files
Each cell stored as a function
Pure functions can be reused as modules
➔
Easy version control
Directly executable as script or web app
Readable in any text editor
marimo.ui
creates interactive user interface (UI) elements with first-class support
Notebooks are automatically updated when values are changed via interactions
Global variables must be unique
Even reusing i
in loops is a problem
Variables local to a cell are created with _
So _i
can be reused between cells:
In-place transformations are not allowed
There is a cost to updating the DAG at each change
This can be controlled by disabling/enabling:
Create a uv
project:
Install marimo in it as a development dependency:
(Optional) add tools marimo
can make use of:
Via GUI
User settings saved in ~/.config/marimo/marimo.toml
or similar
Logs found at ~/.cache/marimo/logs
or similar
User settings ➔ Package Management ➔ Manager: uv
Use GitHub Copilot without account
Use any of the classic LLMs with API key
marimo
docsFor more tutorials, replace intro
with any of:
dataflow
ui
markdown
plots
sql
layout
fileformat
markdown-format
for-jupyter-users
IPython magics are replaced by Python functions
Using uv
:
Example:
or via GUI (after it has been set properly)