anywidget-generator

Generate custom anywidget components for marimo notebooks with JavaScript rendering and traitlets.

Updated Jan 10, 2026
One-click install
npx skills add https://github.com/RDCrystalLab/agentic-plugins --skill anywidget-generator-rdcrystallab
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: anywidget-generator
Source: https://github.com/RDCrystalLab/agentic-plugins/tree/main/plugins/marimo/skills/anywidget
Command: npx skills add https://github.com/RDCrystalLab/agentic-plugins --skill anywidget-generator-rdcrystallab

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps developers create custom anywidget components for marimo notebooks without struggling with widget architecture, JavaScript integration, or styling details.

Core Features & Use Cases

  • Anywidget Component Generation: Guides creation of marimo-compatible anywidget classes using vanilla JavaScript, traitlets, and synchronized state.
  • Widget Styling Guidance: Ensures widgets include lightweight bespoke CSS with support for both light and dark modes.
  • Use Case: Build an interactive notebook widget such as a counter, visualization control, or custom UI component that works reliably inside a marimo workflow.

Quick Start

Use the anywidget-generator skill to create a minimal marimo anywidget component with JavaScript rendering and CSS styling.

Frequently Asked Questions about anywidget-generator

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

FAQPage Schema
How do I create custom anywidget components for marimo notebooks?

To create custom anywidget components for marimo notebooks, you structure widget classes using vanilla JavaScript, traitlets for synchronized state definitions, and marimo widget wrapping conventions for reliable interactive rendering.

What is the best way to build interactive notebook widgets with JavaScript and traitlets?

Building interactive notebook widgets with JavaScript and traitlets requires defining synchronized state in Python using traitlets, rendering the UI with vanilla JavaScript modules, and wrapping the structure using anywidget conventions for marimo compatibility.

Does anywidget support CSS styling for both light and dark modes in marimo?

Yes, anywidget supports CSS styling for both light and dark modes in marimo. When generating custom components, you include lightweight bespoke CSS to ensure the interactive widget adapts visually to different notebook theme environments.

Can I use vanilla JavaScript to build UI elements for marimo workflows?

Yes, you can use vanilla JavaScript to build UI elements for marimo workflows. The anywidget architecture allows you to render custom interactive components directly in the notebook by mapping vanilla JavaScript modules to traitlets state definitions.

Why do my custom notebook widgets fail to synchronize state between Python and JavaScript?

Custom notebook widgets fail to synchronize state when traitlets definitions are not correctly mapped to the JavaScript rendering logic. Proper anywidget integration requires matching your vanilla JavaScript module properties with traitlets state definitions for seamless marimo communication.