Skip to content
Development
Skill

/jupyter-to-marimo

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

From plugin
skills
17710 skills

Claude Code

$ npx -y skills add marimo-team/skills --skill jupyter-to-marimo --agent claude-code

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
@marimo-team
Ships withskills

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.

Stars on GitHub

Momentum

stars in total
177
Star history of marimo-team/skills on GitHub, a chart by star-history.com

Other skills on skills.

add-molab-badge

add-molab-badge

Add "Open in molab" badge(s) linking to marimo notebooks. Works with READMEs, docs, websites, or any markdown/HTML target.

@marimo-team@marimo-teamInstall Skill
implement-paper

implement-paper

Implement a research paper as an interactive marimo notebook together with the user. Start by understanding what the user wants…

@marimo-team@marimo-teamInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about jupyter-to-marimo.

Which coding agents can use jupyter-to-marimo?
jupyter-to-marimo installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.