working-with-marimo

pymc-labs's avatarfrom pymc-labs

Interactive development in marimo notebooks with validation loops. Use for creating/editing marimo notebooks and verifying execution.

⭐1.1kstars🔀89forks📁View on GitHub🕐Updated Jan 10, 2026

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.
nameworking-with-marimo
descriptionInteractive 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

  1. 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).
  2. Execute:

    • Edit the .py file directly using write or search_replace.
    • Rule: Follow Best Practices (e.g., @app.cell, no global state).
  3. 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).

Common Commands

  • Start/Sync: Marimo automatically syncs file changes.
  • SQL: Use mo.sql for DuckDB queries.
  • Plots: Use plt.gca() or return figure. No plt.show().

Reference

See Best Practices for code formatting, reactivity rules, and UI element usage.