Converting Jupyter Notebooks to Marimo
IMPORTANT: When asked to translate a notebook, ALWAYS run uvx marimo convert <notebook.ipynb> -o <notebook.py> FIRST before reading any files. This saves precious tokens - reading large notebooks can consume 30k+ tokens, while the converted .py file is much smaller and easier to work with.
Steps
- •Convert using the CLI
Run the marimo convert command via uvx so no install is needed:
bash
uvx marimo convert <notebook.ipynb> -o <notebook.py>
This generates a marimo-compatible .py file from the Jupyter notebook.
- •Run
marimo checkon the output
bash
uvx marimo check <notebook.py>
Fix any issues that are reported before continuing.
- •Review and clean up the converted notebook
Read the generated .py file and apply the following improvements:
- •Ensure the script metadata block lists all required packages. The converter may miss some.
- •Drop leftover Jupyter artifacts like
display()calls, or%magiccommands that don't apply in marimo. - •Make sure the final expression of each cell is the value to render. Indented or conditional expressions won't display.
- •If the original notebook requires environment variables via an input, consider adding the
EnvConfigwidget from wigglystuff. Details can be found here. - •If the original notebook uses ipywidgets, replace them with corresponding ui from marimo. A slider, for example, would be replaced with
mo.ui.slider().
- •Run
marimo checkagain after your edits to confirm nothing was broken.