This skill should be used when the user asks to "use marimo", "create a marimo notebook", "debug a marimo notebook", "inspect cells", "understand reactive execution", "fix marimo errors", "convert from jupyter to marimo", or works with marimo reactive Python notebooks.
View on GitHubedwinhu/workflows
workflows
February 4, 2026
Select agents to install to:
npx add-skill https://github.com/edwinhu/workflows/blob/main/skills/marimo/SKILL.md -a claude-code --skill marimoInstallation paths:
.claude/skills/marimo/## Contents - [Editing and Verification Enforcement](#editing-and-verification-enforcement) - [Key Concepts](#key-concepts) - [Cell Structure](#cell-structure) - [Editing Rules](#editing-rules) - [Core CLI Commands](#core-cli-commands) - [Export Commands](#export-commands) - [Data and Visualization](#data-and-visualization) - [Debugging Workflow](#debugging-workflow) - [Common Issues](#common-issues) - [Additional Resources](#additional-resources) # Marimo Reactive Notebooks Marimo is a reactive Python notebook where cells form a DAG and auto-execute on dependency changes. Notebooks are stored as pure `.py` files. ## Editing and Verification Enforcement ### IRON LAW #1: NEVER MODIFY CELL DECORATORS OR SIGNATURES Only edit code INSIDE `@app.cell` function bodies. This is not negotiable. **NEVER modify:** - Cell decorators (`@app.cell`) - Function signatures (`def _(deps):`) - Return statements structure (trailing commas required) **ALWAYS verify:** - All used variables are in function parameters - All created variables are in return statement - Trailing comma for single returns: `return var,` ### IRON LAW #2: NO EXECUTION CLAIM WITHOUT OUTPUT VERIFICATION Before claiming ANY marimo notebook works: 1. **VALIDATE** syntax and structure: `marimo check notebook.py` 2. **EXECUTE** with outputs: `marimo export ipynb notebook.py -o __marimo__/notebook.ipynb --include-outputs` 3. **VERIFY** using notebook-debug skill's verification checklist 4. **CLAIM** success only after verification passes This is not negotiable. Claiming "notebook works" without executing and inspecting outputs is LYING to the user. ### Rationalization Table - STOP If You Think: | Excuse | Reality | Do Instead | |--------|---------|------------| | "marimo check passed, so it works" | Syntax check ≠ runtime correctness | EXECUTE with --include-outputs and inspect | | "Just a small change, can't break anything" | Reactivity means small changes propagate everywhere | VERIFY with full execution