marimo-notebook

Write reactive marimo notebooks as Python files with correct cell structure.

9|Updated Feb 16, 2026
One-click install
npx skills add https://github.com/mathisdrn/orca --skill marimo-notebook-mathisdrn
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: marimo-notebook
Source: https://github.com/mathisdrn/orca/tree/main/.agents/skills/marimo-notebook
Command: npx skills add https://github.com/mathisdrn/orca --skill marimo-notebook-mathisdrn

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires marimo, and includes references (resource) components.

What problem does it solve? Writing marimo notebooks requires following specific conventions—cells as decorated functions, PEP 723 dependency headers, reactivity rules, and script-mode handling—that differ significantly from Jupyter. This Skill ensures generated notebooks follow the correct format and avoid common pitfalls like mutation-based state, guarded cells, and non-rendering outputs. ## Core Features & Use Cases - Correct Notebook Structure: Generates marimo notebooks with @app.cell decorators, proper input/output variable flow, and PEP 723 inline dependency metadata. - Reactivity & State Guidance: Enforces marimo's DAG-based reactivity model, avoiding untracked mutations and unnecessary mo.state() usage. - Validation & Testing: Runs marimo check as a linter and supports pytest-based test cells inside notebooks. - Use Case: Ask for an interactive data exploration notebook with sliders and a plot; the Skill produces a runnable .py notebook that works both interactively via marimo edit and as a script via uv run. ## Quick Start Create a marimo notebook that loads a CSV, shows a filterable table, and plots the filtered data with a slider-controlled threshold.

Frequently Asked Questions about marimo-notebook

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a marimo notebook in Python?▼

Define an `app = marimo.App()` and write each cell as a function decorated with `@app.cell`. Function parameters are cell inputs and returned variables are outputs; marimo builds the dependency graph automatically. Add PEP 723 script metadata at the top for dependencies.

How do I run a marimo notebook from the command line?▼

Run `uv run notebook.py` for non-interactive script execution, `uv run marimo run notebook.py` to serve it as an interactive app, or `uv run marimo edit notebook.py` to edit it in the browser. Use `uvx marimo check notebook.py` to lint for common mistakes.

marimo vs Jupyter: what is the difference?▼

marimo stores notebooks as plain Python files instead of JSON and uses a reactive execution model where cells re-run automatically when their dependencies change. Jupyter executes cells manually in arbitrary order, which can leave hidden stale state.

Why is my marimo cell output not rendering?▼

marimo only renders the final expression of a cell. Indented or conditional expressions inside `if` blocks will not display; assign the result conditionally and make it the last expression instead.

Can I use pytest with marimo notebooks?▼

Yes. Add `pytest` as a dependency and create cells containing only test code—functions starting with `test_` or classes starting with `Test`. Run `pytest notebook.py` from the command line to execute them.

When should I use mo.state() in marimo?▼

Use `mo.state()` only for accumulated callback state or bidirectional sync between UI elements. For most cases, regular variables between cells and widget `.value` reads provide sufficient reactivity without explicit state management.