Agent skill · mindrally
blender-python-addon
Best practices for writing Blender Python add-ons using the bpy API, covering operators, panels, properties, registration, and API-safe scripting. Use when creating a Blender add-on, defining bpy.types.Operator or Panel classes, registering PropertyGroup settings, writing register()/unregister() functions, working with bmesh, or debugging add-ons in Blender's Python console.
What it needs
About 4k tokens when loaded.
What this skill does
Blender Python Add-on Development This skill covers building Blender add-ons with the bpy API, including add-on structure, operators, panels, properties, safe scene manipulation, and testing across Blender versions. Workflow for Building a Blender Add-on 1. Scaffold the add-on — Create a package with init.py as the entry point, and a blendermanifest.toml (Blender 4.2+ extensions) or blinfo dict (legacy add-ons) describing name, version, and supported Blender version. 2. Define data — Create PropertyGroup classes for grouped settings and register them on the appropriate ID type (e.g., bpy.types.Scene.myaddon = PointerProperty(type=MyAddonSettings)). 3. Implement operators — Subclass bpy.types.Operator for each user action; implement poll() for availability, invoke() for interactive setup, and execute() for the actual work. 4. Build UI panels — Subclass bpy.types.Panel to expose operators and properties in the appropriate editor (3D viewport sidebar, properties editor, etc.). 5. Register everything — List all classes in a classes tuple and register/unregister them in matching register()/unregister() functions; register property pointers alongside their classes. 6. Test in a clean profile — Launch Blender with --factory-startup, install the add-on, enable it, exercise each operator, then disable it and confirm nothing is left behind. 7. Package and ship — Zip the add-on folder (or build a .zip extension package) and verify it installs cleanly via Blender's Preferences > Add-ons (or Extensions) panel. Add-on Structure Keep the add-on's entry point in init.py with clear register() and unregister() functions that mirror each other exactly (everything registered must be unregistered, in reverse order). Group operators, panels, properties, preferences, and utility code into separate modules once the add-on grows past a trivial size; import and register them from init.py. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills mindrally/blender-python-addon