create-pywidget

Build Python-based interactive widgets for Jupyter and marimo.

17|Updated Mar 5, 2026
One-click install
npx skills add https://github.com/ktaletsk/pywidget --skill create-pywidget
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: create-pywidget
Source: https://github.com/ktaletsk/pywidget/tree/main/skill
Command: npx skills add https://github.com/ktaletsk/pywidget --skill create-pywidget

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Python-only widget development eliminates the need to write frontend JavaScript while enabling interactive widgets directly from Python.

Core Features & Use Cases

  • Single-language widget development: define both kernel-side state and browser rendering in Python.
  • Pyodide-based rendering: runs in the browser without a separate frontend build step.
  • Works across Jupyter Lab, Jupyter Notebook, and marimo deployments with bidirectional state syncing.

Quick Start

Define a PyWidget subclass with render and update, then instantiate it to display in Jupyter or marimo.

Frequently Asked Questions about create-pywidget

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

FAQPage Schema
How do I build interactive Python widgets for Jupyter without writing JavaScript?

You can build interactive Python widgets without JavaScript by subclassing PyWidget with render and update methods, then instantiating it to display directly in Jupyter or marimo.

Does PyWidget work with marimo notebooks or only Jupyter Lab?

PyWidget works across Jupyter Lab, Jupyter Notebook, and marimo deployments, providing bidirectional state syncing for interactive widgets in all three environments.

How does browser-side rendering work for PyWidget if there is no frontend build step?

Browser-side rendering for PyWidget relies on Pyodide to run Python directly in the browser, eliminating the need for a separate frontend JavaScript build step.

Do I need traitlets to manage state for custom Pyodide widgets in Python?

Yes, you need traitlets for state tagging to enable bidirectional state syncing between the kernel-side state and browser rendering in your custom Python widgets.

Can I use browser-side Python packages with my custom Jupyter widgets?

Yes, you can include optional _py_packages in your widget definition to specify and load browser dependencies required for rendering via Pyodide.

What is the best way to create educational demos using Python-only interactive widgets?

Define a PyWidget subclass with render and update methods, leveraging frontmatter to expose name and description, to create educational demos and dashboards entirely in Python.