working-with-marimo
Interactive development in marimo notebooks with validation loops. Use for creating/editing marimo notebooks and verifying execution.
When & Why to Use This Skill
This Claude skill enables high-efficiency interactive development within marimo notebooks by implementing a rigorous Plan-Execute-Verify loop. It allows for the automated creation, editing, and validation of reactive Python notebooks, ensuring code integrity through real-time linting, runtime error tracking, and state inspection. By bridging the gap between AI generation and execution feedback, it provides a robust environment for reproducible and error-free data science and software prototyping.
Use Cases
- Automated Notebook Authoring: Generating complex, reactive Python notebooks from scratch while adhering to marimo-specific best practices and cell structures.
- Iterative Debugging and Validation: Using the feedback loop to detect linting issues or runtime errors and automatically applying fixes until the notebook executes successfully.
- Data Exploration and State Monitoring: Programmatically inspecting variables, DataFrames, and SQL results within a notebook session to verify data processing logic.
- Visual Output Verification: Capturing and analyzing console outputs and plots to ensure that data visualizations are correctly generated and displayed.
| name | working-with-marimo |
|---|---|
| description | Interactive development in marimo notebooks with validation loops. Use for creating/editing marimo notebooks and verifying execution. |
Working with Marimo
Follows a Plan-Execute-Verify loop to ensure notebook correctness.
Feedback Loop
Context & Plan:
- Sessions:
mcp_marimo_get_active_notebooks(Find session IDs). - Structure:
mcp_marimo_get_lightweight_cell_map(See cell IDs/content). - Data State:
mcp_marimo_get_tables_and_variables(Inspect DataFrames/Variables). - Cell Detail:
mcp_marimo_get_cell_runtime_data(Code, errors, local vars).
- Sessions:
Execute:
- Edit the
.pyfile directly usingwriteorsearch_replace. - Rule: Follow Best Practices (e.g.,
@app.cell, no global state).
- Edit the
Verify (CRITICAL):
- Lint:
mcp_marimo_lint_notebook(Static analysis). - Runtime Errors:
mcp_marimo_get_notebook_errors(Execution errors). - Outputs:
mcp_marimo_get_cell_outputs(Visuals/Console).
- Lint:
Common Commands
- Start/Sync: Marimo automatically syncs file changes.
- SQL: Use
mo.sqlfor DuckDB queries. - Plots: Use
plt.gca()or return figure. Noplt.show().
Reference
See Best Practices for code formatting, reactivity rules, and UI element usage.