marimo-notebook

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

465|41|Updated Aug 4, 2026
One-click install
npx skills add https://github.com/autonomous-ai/openharness --skill marimo-notebook-autonomous-ai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: marimo-notebook
Source: https://github.com/autonomous-ai/openharness/tree/main/store/agents/marimo/skills/marimo-notebook
Command: npx skills add https://github.com/autonomous-ai/openharness --skill marimo-notebook-autonomous-ai

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 encodes those conventions so generated notebooks run correctly the first time. ## Core Features & Use Cases - Correct Notebook Structure: Generates marimo notebooks as plain Python files using @app.cell decorators, PEP 723 dependency blocks, and proper input/output variable flow between cells. - Reactivity and State Guidance: Enforces marimo's DAG-based reactivity model, avoiding cross-cell mutations, unnecessary mo.state() usage, and anti-patterns like guarding cells with if statements or hiding errors behind try/except. - Validation and Testing: Runs marimo check as a linter before delivery and supports pytest-based test cells for notebook verification. - Use Case: Ask for an interactive data exploration notebook with sliders and plots; the Skill produces a runnable .py notebook that works both interactively via marimo run and non-interactively as a script with synthetic data. ## Quick Start Create a marimo notebook that loads a CSV file, lets me filter it with a dropdown, and shows an interactive chart of the results.

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 cells as functions decorated with @app.cell, where function parameters are cell inputs and returned variables are outputs. Add a PEP 723 dependency block at the top of the file, then run it with uv run marimo edit notebook.py.

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

Run it non-interactively as a script with uv run notebook.py, or interactively in the browser with uv run marimo run notebook.py. Use uv run marimo edit notebook.py to open the editing interface.

How does marimo state management work compared to Jupyter?

marimo uses ordinary Python variables between cells as state; when a variable changes, dependent cells re-run automatically via a static DAG. Avoid mutating objects across cells and only use mo.state() for accumulated callback state or bidirectional UI sync.

Can I use pytest to test marimo notebooks?

Yes, marimo runs pytest on cells containing only test code, such as functions starting with test_ or classes starting with Test. Add pytest to the notebook dependencies and run pytest notebook.py from the command line.

Why is my marimo cell output not rendering?

marimo only renders the final expression of a cell, so indented or conditional expressions will not display. Assign the result conditionally to a variable and make it the last expression, or check for errors with uvx marimo check notebook.py.

Does marimo support SQL queries on dataframes?

Yes, mo.sql() runs SQL against in-scope dataframes using DuckDB in memory by default and returns a polars dataframe. You can also pass SQLAlchemy, DuckDB, or PyIceberg connections as the engine parameter.