# Blender Addon Development

Write Blender 5.2 add-ons as extensions - blender_manifest.toml...

- Repository: https://github.com/EL4CTEO/blender-skills (651 stars)
- Category: Design
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add EL4CTEO/blender-skills --skill blender-addon-development -g -a claude-code -y`
Codex: `npx skills add EL4CTEO/blender-skills --skill blender-addon-development -g -a codex -y`
Cursor: `npx skills add EL4CTEO/blender-skills --skill blender-addon-development -g -a cursor -y`
Gemini CLI: `npx skills add EL4CTEO/blender-skills --skill blender-addon-development -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add EL4CTEO/blender-skills`

## Description

Write Blender 5.2 add-ons as extensions - blender_manifest.toml, operators/panels/menus/property groups/preferences, bpy.props rules after 5.0, undo/redo, modal and timer patterns, gpu drawing (no bgl), bundling Python wheels, CLI validate/build/install, testing headless, extensions platform publishing. Use when creating or fixing a Blender add-on, tool, or UI.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Add-on (Extension) Development

The execution model is in `blender-core`. Start from `assets/addon_template/` (validated, built, and registered in CI): `blender_manifest.toml`, `__init__.py`, `operators.py`, `ui.py`.

## Procedure
1. Copy the template, then set `id` (lowercase_underscores, permanent), `name`, `tagline` (no trailing period, ≤ 64 chars), `maintainer`, `version` (semver), `license` (SPDX, GPL-3.0-or-later for code using bpy), and `blender_version_min = "4.2.0"` or higher if you use newer APIs (e.g. `"5.2.0"` for the GN `properties.inputs` API).
2. Write classes with the prefix convention `MYTOOL_OT_x` (operator), `_PT_` (panel), `_MT_` (menu), `_PG_` (property group), `_AP_` (preferences), `_UL_` (UI list). `bl_idname` for operators is `my_tool.verb_noun`.
3. Validate and build:
   ```
   blender --command extension validate ./my_tool
   blender --command extension build --source-dir ./my_tool --output-dir ./dist
   blender --command extension install-file -r user_default -e ./dist/my_tool-1.0.0.zip
   ```
4. Test headless: register the package in-process, call operators with `temp_override`, and assert on data (see `tests/test_addon.py` in this repo).

The rest: https://github.com/EL4CTEO/blender-skills/blob/HEAD/skills/blender-addon-development/SKILL.md
