Agent skill

Blender Addon Dev

by TerminalSkills in TerminalSkills/skills

Build custom Blender add-ons with Python. An agent skill from TerminalSkills/skills.

Apache-2.0Auto-check passedGame Development

Install Blender Addon Dev

skills CLI
$ npx skills add TerminalSkills/skills --skill blender-addon-dev -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install TerminalSkills/skills blender-addon-dev --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/TerminalSkills/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/blender-addon-dev .claude/skills/blender-addon-dev && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
blender-addon-dev
GitHub stars
163
Token cost
~2k tokens
SKILL.md length
323 words
Files
3 (incl. references)
Skills in repo
10
Repo updated
First seen
Licence
Apache-2.0

At a glance

Build custom Blender add-ons with Python. An agent skill from TerminalSkills/skills.

  • Works in 6 steps: Add-on structure and bl_info → Create a custom operator → Create a UI panel → …
  • The user wants to create a Blender add-on
  • SKILL.md covers Overview, Instructions, Examples and Guidelines
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Blender Addon Dev is an agent skill from TerminalSkills/skills. Build custom Blender add-ons with Python. Use when the user wants to create a Blender add-on, register operators, build UI panels, add custom properties, create menus, package an add-on for distribution, or extend Blender with custom tools and workflows.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `_scores.json` and `references/REFERENCE.md`). Compatibility notes: Requires Blender 3.0+. Add-ons are standard Python modules. Test: blender --background --python addon.py

It sits in Game Development. It works with Blender and Python. The repository describes itself as: Open-source library of AI agent skills — SKILL.md files for Claude Code, Codex, Gemini CLI, Cursor. The licence is Apache-2.0.

When your agent uses it

  • The user wants to create a Blender add-on
  • Register operators
  • Build UI panels
  • Add custom properties

Example prompts

  • “/blender-addon-dev”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): Requires Blender 3.0+. Add-ons are standard Python modules. Test: blender --background --python addon.py

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Add-on structure and bl_info
  2. Create a custom operator
  3. Create a UI panel
  4. Add custom properties
  5. Add menu entries and keymaps
  6. Package for distribution

What it can do on your machine

Read from SKILL.md and the folder at commit a021875. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires Blender 3.0+. Add-ons are standard Python modules. Test: blender --background --python addon.py

    From compatibility in the SKILL.md frontmatter.

Context cost

Blender Addon Dev loads about 2k tokens when it runs, and up to ~2.5k if it reads all its reference files. Until then it costs about 68 tokens; SKILL.md has 323 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from TerminalSkills/skills at commit a021875, republished under its Apache-2.0 licence (© TerminalSkills). 323 words, ~1,988 tokens.

Download SKILL.mdSave it as .claude/skills/blender-addon-dev/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
blender-addon-dev
description
Build custom Blender add-ons with Python. Use when the user wants to create a Blender add-on, register operators, build UI panels, add custom properties, create menus, package an add-on for distribution, or extend Blender with custom tools and workflows.
compatibility
Requires Blender 3.0+. Add-ons are standard Python modules. Test: blender --background --python addon.py
license
Apache-2.0
metadata.author
terminal-skills
metadata.version
1.0.0
metadata.category
development
metadata.tags
blender, addon, plugin, operators, ui-panels

Blender Add-on Development

Overview

Create custom Blender add-ons that extend the application with new operators, UI panels, properties, and menus. Add-ons are Python modules that register with Blender's internal system and can be installed, enabled, and shared like any Blender extension.

Instructions

1. Add-on structure and bl_info
python
bl_info = {
    "name": "My Custom Add-on",
    "author": "Your Name",
    "version": (1, 0, 0),
    "blender": (3, 0, 0),
    "location": "View3D > Sidebar > My Tab",
    "description": "A short description of what the add-on does",
    "category": "Object",
}

import bpy

def register():
    """Called when the add-on is enabled."""
    pass

def unregister():
    """Called when the add-on is disabled."""
    pass

if __name__ == "__main__":
    register()
2. Create a custom operator
python
class OBJECT_OT_my_operator(bpy.types.Operator):
    """Tooltip shown on hover"""
    bl_idname = "object.my_operator"
    bl_label = "My Operator"
    bl_options = {'REGISTER', 'UNDO'}

    scale_factor: bpy.props.FloatProperty(name="Scale", default=2.0, min=0.1, max=100.0)
    axis: bpy.props.EnumProperty(
        name="Axis",
        items=[('X', "X Axis", ""), ('Y', "Y Axis", ""), ('Z', "Z Axis", ""), ('ALL', "All", "")],
        default='ALL'
    )

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        obj = context.active_object
        s = self.scale_factor
        if self.axis == 'ALL':
            obj.scale *= s
        else:
            setattr(obj.scale, self.axis.lower(), getattr(obj.scale, self.axis.lower()) * s)
        self.report({'INFO'}, f"Scaled {obj.name} by {s}")
        return {'FINISHED'}

    def invoke(self, context, event):
        return context.window_manager.invoke_props_dialog(self)

Naming convention: CATEGORY_OT_name for operators, CATEGORY_PT_name for panels, CATEGORY_MT_name for menus.

3. Create a UI panel
python
class VIEW3D_PT_my_panel(bpy.types.Panel):
    bl_label = "My Tools"
    bl_idname = "VIEW3D_PT_my_panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "My Tab"
    bl_context = "objectmode"

    def draw(self, context):
        layout = self.layout
        obj = context.active_object
        layout.operator("object.my_operator", icon='FULLSCREEN_ENTER')
        if obj:
            layout.label(text=f"Active: {obj.name}", icon='OBJECT_DATA')
            layout.prop(obj, "location")
            box = layout.box()
            box.label(text="Transform", icon='ORIENTATION_GLOBAL')
            col = box.column(align=True)
            col.prop(obj, "location", index=0, text="X")
            col.prop(obj, "location", index=1, text="Y")
            col.prop(obj, "location", index=2, text="Z")

Panel spaces: VIEW_3D, PROPERTIES, IMAGE_EDITOR, NODE_EDITOR, SEQUENCE_EDITOR.

4. Add custom properties
python
class MySettings(bpy.types.PropertyGroup):
    my_bool: bpy.props.BoolProperty(name="Enable", default=False)
    my_float: bpy.props.FloatProperty(name="Factor", default=1.0, min=0.0, max=10.0)
    my_enum: bpy.props.EnumProperty(
        name="Mode",
        items=[('OPT_A', "Option A", ""), ('OPT_B', "Option B", "")],
        default='OPT_A'
    )

def register():
    bpy.utils.register_class(MySettings)
    bpy.types.Scene.my_settings = bpy.props.PointerProperty(type=MySettings)

def unregister():
    del bpy.types.Scene.my_settings
    bpy.utils.unregister_class(MySettings)

Access in panels: context.scene.my_settings.my_bool.

5. Add menu entries and keymaps
python
class OBJECT_MT_my_menu(bpy.types.Menu):
    bl_label = "My Custom Menu"
    bl_idname = "OBJECT_MT_my_menu"

    def draw(self, context):
        self.layout.operator("object.my_operator", text="Scale Up")
        self.layout.separator()
        self.layout.operator("mesh.primitive_cube_add", text="Add Cube")

# Append to existing menus in register():
#   bpy.types.VIEW3D_MT_object.append(draw_menu_item)
# Remove in unregister():
#   bpy.types.VIEW3D_MT_object.remove(draw_menu_item)

# Keymaps
addon_keymaps = []

def register_keymaps():
    wm = bpy.context.window_manager
    kc = wm.keyconfigs.addon
    if kc:
        km = kc.keymaps.new(name='Object Mode', space_type='EMPTY')
        kmi = km.keymap_items.new("object.my_operator", type='T', value='PRESS', ctrl=True, shift=True)
        addon_keymaps.append((km, kmi))

def unregister_keymaps():
    for km, kmi in addon_keymaps:
        km.keymap_items.remove(kmi)
    addon_keymaps.clear()
6. Package for distribution
my_addon/
├── __init__.py          # bl_info + register/unregister + imports
├── operators.py         # operator classes
├── panels.py            # UI panel classes
├── properties.py        # property group classes
└── utils.py             # helper functions
python
# __init__.py
bl_info = { "name": "My Add-on", "author": "Your Name", "version": (1, 0, 0), "blender": (3, 0, 0), "category": "Object" }

from . import operators, panels, properties
classes = (properties.MySettings, operators.OBJECT_OT_my_operator, panels.VIEW3D_PT_my_panel)

def register():
    for cls in classes:
        bpy.utils.register_class(cls)
    bpy.types.Scene.my_settings = bpy.props.PointerProperty(type=properties.MySettings)

def unregister():
    del bpy.types.Scene.my_settings
    for cls in reversed(classes):
        bpy.utils.unregister_class(cls)

Zip the folder and install via Edit > Preferences > Add-ons > Install.

Examples

Example 1: Quick FBX export add-on

User request: "Create an add-on with a panel button that exports selected objects as FBX"

Output: Single-file add-on with EXPORT_OT_quick_fbx operator (iterates selected objects, exports each as FBX to a configurable directory), QuickFBXSettings property group with export_path, and VIEW3D_PT_quick_fbx panel with path input and export button showing selected object count.

Example 2: Batch rename add-on with UI

User request: "Create an add-on to batch rename objects with a prefix and auto-numbering"

Output: Add-on with RenameSettings (prefix, separator enum, start number, padding), OBJECT_OT_batch_rename operator that sorts selected objects and applies prefix + separator + zero-padded number, and panel showing all settings with a live preview of the naming pattern.

Guidelines

  • Follow the naming convention strictly: CATEGORY_OT_name for operators, CATEGORY_PT_name for panels, CATEGORY_MT_name for menus. Blender enforces this.
  • Register classes in dependency order: PropertyGroups first, then Operators, then Panels. Unregister in reverse.
  • Always implement poll() on operators to prevent errors when context is wrong.
  • Use {'REGISTER', 'UNDO'} in bl_options for operators that modify scene data.
  • Clean up everything in unregister(): delete custom properties, remove menu entries, clear keymaps.
  • Use bpy.path.abspath() to resolve // relative paths in file path properties.
  • For multi-file add-ons, put bl_info only in __init__.py.
  • Test with blender --background --python addon.py for registration errors.
  • Use self.report({'INFO'}, "message") in operators to show status in Blender's status bar.

© TerminalSkills, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/blender-addon-dev of TerminalSkills/skills.

  • SKILL.md
  • _scores.json
  • references/REFERENCE.md

Open the folder on GitHubat commit a021875

Compare with similar skills

Blender Addon Dev next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Blender Addon Dev compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Blender Addon Dev this skillTerminalSkills/skills163—~2kAutomated safety check: PassApache-2.0
Text To 3D AssetLaurentiuGabriel/unreal-game-assets-creation-skill147—~2.1kAutomated safety check: PassNone
Blender Web Export Pipelinefreshtechbro/claudedesignskills994—~4.2kAutomated safety check: PassMIT
Scenario Blender Expertscenario-labs/skills913—~3.2kAutomated safety check: PassMIT
Scenario Blender Riggingscenario-labs/skills913—~4.4kAutomated safety check: PassMIT
Scenario Unreal Pipeline Automationscenario-labs/skills913—~5kAutomated safety check: PassMIT

Similar skills

  • Text To 3D Asset

    LaurentiuGabriel/unreal-game-assets-creation-skill

    Generate a game-ready 3D asset by running the local AI pipeline sequentially: Fooocus (SDXL text-to-image) - Hunyuan3D-2 (image-to-textured-GLB) - optional Blender FBX convert + Unreal import.

    147 GitHub stars~2.1k tokensUpdated 2 mo ago
    Game DevelopmentAuto-check passed
  • Blender Web Export Pipeline

    freshtechbro/claudedesignskills

    Exports and optimizes Blender 3D models and animations for the web as glTF, covering batch Python scripting, texture baking, decimation and LOD generation for Three.js and Babylon.js.

    994 GitHub stars~4.2k tokensUpdated 10 mo ago
    Game DevelopmentAuto-check passed
  • Scenario Blender Expert

    scenario-labs/skills

    A skill your agent uses when doing any 3D work in Blender through Python or an MCP bridge, headless or in a live session: modeling, sculpting a character or head, retopology, UV unwrapping, baking…

    913 GitHub stars~3.2k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Scenario Blender Rigging

    scenario-labs/skills

    A skill your agent uses when rigging a character, creature or prop in Blender through Python: "rig this character", Rigify metarig fitting or generation errors, automatic weights or "Bone Heat…

    913 GitHub stars~4.4k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • A skill your agent uses when importing FBX, USD, OBJ or glTF from Maya, ZBrush or Blender into Unreal Engine 5.8 in bulk or reimporting changed files, writing Editor Python tools, Interchange…

    913 GitHub stars~5k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Blender

    autonomous-ai/openharness

    Model objects and scenes with Blender's Python (bpy) headless — primitives, modifiers, materials, collections, cameras, lights, animation — export glTF the 3D pane shows live, render stills and…

    1.1k GitHub stars~2.1k tokensUpdated today
    Game DevelopmentAuto-check passed

More from TerminalSkills/skills

All 10 skills in this repo
  • Seog

    TerminalSkills/skills

    Run local SEO from your terminal via the SEOG MCP server — Google Business Profile management, map-pack rank tracking and geo-grid scans, review sync and replies published to Google, competitor…

    163 GitHub stars~3.4k tokensUpdated 4 days ago
    Auto-check passed
  • Stripe Connect

    TerminalSkills/skills

    Build marketplace and platform payment flows with Stripe Connect.

    163 GitHub stars~2.9k tokensUpdated 4 days ago
    Auto-check passed
  • 3dsmax Rendering

    TerminalSkills/skills

    Scripts and configures production rendering in Autodesk 3ds Max with the V-Ray and Corona renderers: output size and files, render elements, denoising, light mix, batch and command-line rendering…

    163 GitHub stars~3.8k tokensUpdated 4 days ago
    Auto-check passed
  • 3dsmax Scripting

    TerminalSkills/skills

    Covers scripting Autodesk 3ds Max, the 3D modeling and rendering application, with MAXScript and Python (pymxs): scene manipulation, object creation, material assignment, camera and light setup…

    163 GitHub stars~3.2k tokensUpdated 4 days ago
    Auto-check passed
  • 3proxy

    TerminalSkills/skills

    3proxy is a small open-source proxy server that runs HTTP/HTTPS, SOCKS4/5, SNI and TCP/UDP port-mapping proxies from one config file.

    163 GitHub stars~3.5k tokensUpdated 4 days ago
    Auto-check: notes
  • A2a Protocol

    TerminalSkills/skills

    Builds Agent2Agent (A2A) servers and clients, the open protocol (originally from Google, now under the Linux Foundation) that lets AI agents from different frameworks call each other.

    163 GitHub stars~2.8k tokensUpdated 4 days ago
    Auto-check passed

Works with

Questions about Blender Addon Dev

What does Blender Addon Dev do?

Build custom Blender add-ons with Python. An agent skill from TerminalSkills/skills. Blender Addon Dev is an agent skill from TerminalSkills/skills. Build custom Blender add-ons with Python.

When should I use Blender Addon Dev?

Blender Addon Dev fits situations like: the user wants to create a Blender add-on; register operators; build UI panels; add custom properties.

How do I install Blender Addon Dev in Claude Code?

Run `npx skills add TerminalSkills/skills --skill blender-addon-dev -a claude-code`. Or copy the skill folder (skills/blender-addon-dev in TerminalSkills/skills) into .claude/skills/blender-addon-dev in your project. Claude Code loads it when a task matches its description.

How do I install Blender Addon Dev in Codex?

Run `npx skills add TerminalSkills/skills --skill blender-addon-dev -a codex`. Or copy the skill folder (skills/blender-addon-dev in TerminalSkills/skills) into .agents/skills/blender-addon-dev in your project. Codex loads it when a task matches its description.

Can I use Blender Addon Dev in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TerminalSkills/skills --skill blender-addon-dev -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/blender-addon-dev, .gemini/skills/blender-addon-dev, .github/skills/blender-addon-dev and .opencode/skills/blender-addon-dev in your project.

What does Blender Addon Dev need to run?

SKILL.md names no scripts, command-line tools or credentials: Blender Addon Dev is instructions for the agent only. Our summary lists: Python 3. Compatibility (from SKILL.md): Requires Blender 3.0+. Add-ons are standard Python modules. Test: blender --background --python addon.py.

Does Blender Addon Dev access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Blender Addon Dev safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Blender Addon Dev use?

Blender Addon Dev is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Blender Addon Dev use?

About 2k tokens (SKILL.md is roughly 8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 507 tokens, read only when the agent opens those files.

What are the alternatives to Blender Addon Dev?

Skills that share tags, products or a category with Blender Addon Dev: Text To 3D Asset (LaurentiuGabriel/unreal-game-assets-creation-skill, 147 stars), Blender Web Export Pipeline (freshtechbro/claudedesignskills, 994 stars), Scenario Blender Expert (scenario-labs/skills, 913 stars) and Scenario Blender Rigging (scenario-labs/skills, 913 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Blender Addon Dev?

TerminalSkills (a GitHub organization) maintains it in TerminalSkills/skills, which has 163 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 3, 2026.

Source: TerminalSkills/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.