Skip to content
Development
Skill

/jupyter-to-marimo

Convert a Jupyter notebook (.ipynb) to a marimo notebook (.py).

From plugin
marimo-team-skills
17210 skills
Install
$ npx -y skills add marimo-team/skills --skill jupyter-to-marimo --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/jupyter-to-marimo

Context preview

The summary Claude sees to decide when to auto-load this skill.

Convert a Jupyter notebook (.ipynb) to a marimo notebook (.py).

SKILL.md

jupyter-to-marimo.SKILL.md
name: jupyter-to-marimo
description: Convert a Jupyter notebook (.ipynb) to a marimo notebook (.py).

Converting Jupyter Notebooks to Marimo

Convert first

**Important:** Run the converter before you read the source notebook:

uvx marimo convert <notebook.ipynb> -o <notebook.py>

Read the `.ipynb` file only if conversion fails or the generated file omits required information. Treat the generated file as a first draft.

Run this command after conversion and after substantial edits:

uvx marimo check <notebook.py>

Review the conversion

  • Verify all required packages in the PEP 723 metadata. The converter can miss some package-installation forms.
  • Remove residual installation cells and stale installation prose. Add version constraints only when required.
  • Use `--sandbox` when a notebook uses PEP 723 metadata.
  • Preserve the purpose and intended workflow of the source notebook.
  • Arrange cells for presentation. marimo determines execution order from variable definitions and references.
  • A cell can appear before a cell that defines its input.
  • Merge or split cells when the current boundaries reduce clarity.
  • Remove redundant Jupyter artifacts, such as unnecessary `display()` calls.
  • Review converted magic commands. Keep valid conversions, and resolve comments that report unsupported magics.
  • Put the value to render in the final expression of each cell.
  • Keep added UI and helper functions proportional to the notebook purpose.
  • Replace interactive input methods that wait for terminal input or do not work in the target interface. Use suitable UI controls, script parameters, or environment values.
  • Do not print, log, or save secrets. Consider [EnvConfig](https://koaning.github.io/wigglystuff/reference/env-config.md) for multiple environment values.
  • Identify expensive work and external side effects. If work must wait, gate it with `mo.stop()` and a suitable UI element.
  • Use a form if the user must submit multiple values together.
  • Define downstream values after the gate so the dependency graph defers dependent cells.
  • Present useful results with simple native components. Add live refresh only when the intended workflow requires it.
  • For ipywidgets, read [`references/widgets.md`](references/widgets.md).
  • For LaTeX and MathJax, read [`references/latex.md`](references/latex.md).

Validate the result

  • **Run `marimo check` again** after all edits.
  • Run the notebook in each intended mode. Confirm that it has the intended behavior.
  • When practical, open the source and converted notebooks side by side and invite the user to review.
  • Compare content, controls, outputs, and workflow. Cell order and layout can differ.
  • Inspect changed files for secrets, generated data, caches, logs, and other runtime files.
Read more
Ships withmarimo-team-skills

This repository contains skills for use with marimo. Install these skills with: The benefit of npx skills is that it supports many agents. So you can do things like: We welcome feedback: issues and pull requests are welcome.

Get the whole plugin
Stats
172
Stars
15
Forks
Active
Maintenance
Python
Language
Apache-2.0
License
29d ago
Last commit
7mo ago
Created
16d ago
Added

Repo: marimo-team/skills

Other skills on marimo-team-skills.