<Devsly/>
NotebookLM Watermark Remover
Remove the NotebookLM watermark from PDF slide exports — free, unlimited, and 100% in your browser.
View
NotebookLM Video Watermark Remover
Remove the NotebookLM watermark from every frame of your MP4 and auto-trim the end card — free and unlimited.
View
Gemini Watermark Remover
Remove the Gemini (Veo) sparkle watermark from every frame of your AI-generated MP4 — free and unlimited.
View
MCP https://devsly.io/mcp MCP Tools Best Skills API Docs

Keyboard Shortcuts

Navigation

Quick Search
⌘ / Ctrl + K
Toggle Dark Mode
⌘ / Ctrl + D
Close Dialogs
Esc

Tool Actions

Execute / Process
⌘ / Ctrl + Enter
Clear Input
⌘ / Ctrl + Shift + C
Copy Output
⌘ / Ctrl + Shift + X

Editor

Select All
⌘ / Ctrl + A
Undo
⌘ / Ctrl + Z
Redo
⌘ / Ctrl + Shift + Z

Updated 1w ago

by TMHSDigital

Blender-Developer-Tools

Correct bpy for AI agents: Blender Python skills, rules and smoke-tested examples for Blender 5.2 LTS and 4.5 LTS, installable as a Claude Code and Cursor plugin.

  • Active — Updated in the last 14 days
Works with
  • Claude
  • Cursor
View on GitHub (opens in a new tab)

20 GitHub stars (20)

+3 in 30 days

Stars gained per day · daily snapshots since Oct 4
Stars gained per day, Oct 4 to Nov 11: +4 in total; the busiest day was Oct 7 with +1 stars.Oct 5: 0 starsOct 6: 0 starsOct 7: +1 starsOct 8: 0 starsOct 9: 0 starsOct 10: 0 starsOct 11: 0 starsOct 12: 0 starsOct 13: 0 starsOct 14: 0 starsOct 15: 0 starsOct 16: 0 starsOct 17: 0 starsOct 18: 0 starsOct 19: 0 starsOct 20: 0 starsOct 21: 0 starsOct 22: 0 starsOct 23: 0 starsOct 24: 0 starsOct 25: 0 starsOct 26: 0 starsOct 27: 0 starsOct 28: 0 starsOct 29: 0 starsOct 30: 0 starsOct 31: +1 starsNov 1: 0 starsNov 2: 0 starsNov 3: +1 starsNov 4: 0 starsNov 5: 0 starsNov 6: 0 starsNov 7: 0 starsNov 8: 0 starsNov 9: 0 starsNov 10: 0 starsNov 11: +1 stars
Stars gained between daily snapshots
PeriodNew stars
Oct 50
Oct 60
Oct 7+1
Oct 80
Oct 90
Oct 100
Oct 110
Oct 120
Oct 130
Oct 140
Oct 150
Oct 160
Oct 170
Oct 180
Oct 190
Oct 200
Oct 210
Oct 220
Oct 230
Oct 240
Oct 250
Oct 260
Oct 270
Oct 280
Oct 290
Oct 300
Oct 31+1
Nov 10
Nov 20
Nov 3+1
Nov 40
Nov 50
Nov 60
Nov 70
Nov 80
Nov 90
Nov 100
Nov 11+1
  • 28 skills (28 skills found in its SKILL.md files)
  • 5 forks (5 forks)
  • 1w ago last update (Last updated 1w ago)

Install

Skills CLI

npx skills add TMHSDigital/Blender-Developer-Tools

Asks which skills and agents to install. Just one: npx skills add TMHSDigital/Blender-Developer-Tools --skill addon-scaffolding — add -g for every project.

Claude Code

git clone https://github.com/TMHSDigital/Blender-Developer-Toolscp -r "Blender-Developer-Tools/skills/addon-scaffolding" ~/.claude/skills/

Copies the addon-scaffolding skill into ~/.claude/skills/ for every project (use .claude/skills/ for one project). Repeat for the other skills listed below.

Plugin

/plugin marketplace add TMHSDigital/Blender-Developer-Tools

Run inside Claude Code if the repository ships a plugin marketplace, then pick plugins from /plugin.

Skills can run code on your machine — read the SKILL.md first.

What it does

In the author's own words, from each skill's SKILL.md.

  • addon-scaffolding

    Scaffold a Blender add-on as an Extensions Platform package: blender_manifest.toml, modular file layout, register_classes_factory, symmetric register/unregister. Use when the user starts a new add-on or extension, writes or fixes blender_manifest.toml, asks which layout or registration pattern to use on Blender 4.5 LTS or 5.x, or has classes that fail to register or unregister cleanly. Targets 5.…

    skills/addon-scaffolding/SKILL.md on GitHub (opens in a new tab)
  • ai-mesh-cleanup

    Ordered cleanup for an imported generated or scanned mesh before it goes to an engine: scene units, apply rotation and scale, origin to base, recalculate normals, evaluated triangle count, decimate to a budget, convex collider. Use when the user has a GLB, glTF or FBX that is not engine-ready, mentions unit scale, unapplied transforms, triangle budget, LODs or a collision hull, or is about to run…

    skills/ai-mesh-cleanup/SKILL.md on GitHub (opens in a new tab)
  • bake-high-to-low

    Cage-bake high-poly surface detail onto a low-poly target as a tangent-space normal map with bpy.ops.object.bake (Cycles, selected-to-active, active Image Texture node, UV layer, save_render). Use when the user wants a normal map from a dense mesh onto a game-resolution or decimated LOD, mentions cage_extrusion or use_selected_to_active, or gets a bake that returns CANCELLED, comes out black or f…

    skills/bake-high-to-low/SKILL.md on GitHub (opens in a new tab)
  • bl-info-migration

    Migrate a legacy bl_info add-on to the Extensions Platform in three steps, with a before/after diff and the dual-format pattern. Use when the user has a bl_info dictionary in __init__.py, asks whether bl_info is deprecated or still supported, wants to publish to extensions.blender.org or ship an extension .zip, or sees warnings about legacy add-ons at install time. Targets 5.2 LTS; manifests work…

    skills/bl-info-migration/SKILL.md on GitHub (opens in a new tab)
  • compositor-nodes

    Build and render through the scene compositor from Python across the 4.5 LTS to 5.x split: scene.use_nodes plus scene.node_tree and a Composite node on 4.5, a CompositorNodeTree node group assigned to scene.compositing_node_group with interface sockets and a Group Output on 5.x, a Render Layers to Glare (Fog Glow) chain, the Glare node's move from enum properties to menu input sockets, and render…

    skills/compositor-nodes/SKILL.md on GitHub (opens in a new tab)
  • constraints-and-parenting

    Parent objects without moving them, aim them with constraints, and author empties as engine attach sockets, all on the data API: child.parent plus matrix_parent_inverse = parent.matrix_world.inverted(), stale matrix_world until view_layer.update(), Object.constraints.new('DAMPED_TRACK') read back through the evaluated depsgraph, right-handed socket bases, and the transform_apply-on-an-Empty-root…

    skills/constraints-and-parenting/SKILL.md on GitHub (opens in a new tab)
  • curves-and-text

    Build legacy Curve and TextCurve datablocks from Python: bpy.data.curves.new(type='CURVE' or 'FONT'), splines.new('BEZIER'), bezier_points.add, handle types, bevel_depth, bevel_resolution, resolution_u, use_fill_caps, extrude, TextCurve.body, align_x/align_y, the built-in Bfont, and reading the tessellated result through evaluated_get(...).to_mesh() / to_mesh_clear(). Use when the user scripts be…

    skills/curves-and-text/SKILL.md on GitHub (opens in a new tab)
  • custom-properties

    Define and bind custom properties with bpy.props annotations, PropertyGroup and PointerProperty, and choose where to store them (Scene, Object, WindowManager, AddonPreferences). Use when the user attaches settings or data to datablocks so it survives save and load, is unsure where add-on settings belong, or writes a property as an assignment instead of an annotation and gets a deprecation warning…

    skills/custom-properties/SKILL.md on GitHub (opens in a new tab)
  • depsgraph-and-evaluated-data

    Read the evaluated geometry the user actually sees through the dependency graph instead of raw obj.data: evaluated_depsgraph_get, evaluated_get, to_mesh and to_mesh_clear lifetimes. Use when the user writes an exporter, measurement or inspection script, reports that modifiers, shape keys, armatures or geometry nodes are missing from exported or measured geometry, or reads obj.data.vertices and ge…

    skills/depsgraph-and-evaluated-data/SKILL.md on GitHub (opens in a new tab)
  • drivers-and-app-handlers

    Drive properties from expressions with the Driver API (driver_add, driver_namespace for custom Python functions) and react to events with bpy.app.handlers (load_post, save_pre, frame_change_post, depsgraph_update_post, exit_pre in 5.1+). Use when the user wants one property to follow another, runs code on load, save, frame change or exit, or has a driver failing with NameError or the Python secur…

    skills/drivers-and-app-handlers/SKILL.md on GitHub (opens in a new tab)
  • engine-export-presets

    Export presets for Unity, Godot and Unreal. glTF is +Y up and meters by spec, so every engine gets export_yup=True with no scale bake (Unreal converts to centimeters on import); FBX takes axis_forward/axis_up plus global_scale. Use when the user exports for a game engine, mentions export_yup, axis_forward, axis_up, global_scale, Y-up or centimeters, passes FBX axis kwargs to export_scene.gltf, or…

    skills/engine-export-presets/SKILL.md on GitHub (opens in a new tab)
  • extension-runtime-and-packaging

    Ship and run a Blender extension after its first install: bundled wheels, user data that survives upgrades via bpy.utils.extension_path_user, the network permission and bpy.app.online_access, bl_ext package names, and blender --command extension validate/build/server-generate in CI. Use when the user bundles third-party Python packages, pip-installs into Blender's Python, writes files next to __f…

    skills/extension-runtime-and-packaging/SKILL.md on GitHub (opens in a new tab)
  • geometry-nodes-python

    Build Geometry Nodes trees from Python: node_groups.new, tree.interface sockets, nodes by RNA identifier, links, Repeat and for-each zones, Bundles, and applying the tree as a NODES modifier including the 5.1 vs 5.2 modifier input API. Use when the user generates a GeometryNodeTree in a script, sets modifier inputs from Python, or hits 'Node type ... undefined' or socket identifier errors. Target…

    skills/geometry-nodes-python/SKILL.md on GitHub (opens in a new tab)
  • gpu-drawing-and-overlays

    Draw viewport overlays and offscreen images with the gpu module instead of the removed bgl: SpaceView3D.draw_handler_add/remove symmetry, gpu.shader.from_builtin names, gpu_extras.batch.batch_for_shader, gpu.state for blending, depth and line width (POLYLINE shaders), blf text, tag_redraw, and GPUOffScreen with gpu.init() for --background on 5.2. Use when the user wants a viewport overlay, measur…

    skills/gpu-drawing-and-overlays/SKILL.md on GitHub (opens in a new tab)
  • grease-pencil-v3

    Create and inspect Grease Pencil v3 (GPv3) data from Python: the datablock address split (bpy.data.grease_pencils_v3 on 4.5 LTS, bpy.data.grease_pencils on 5.x), layers.new -> frames.new(n).drawing -> add_strokes([counts]) -> per-point position/radius/opacity/vertex_color, lazily materialized drawing.attributes, and the Line Art modifier (source_type/source_object, edge-type flags, depsgraph-eval…

    skills/grease-pencil-v3/SKILL.md on GitHub (opens in a new tab)
  • headless-batch-scripting

    Run Blender unattended with blender --background --python, arguments after the -- separator, --factory-startup and --python-exit-code, and temp_override for operators that need context. Use when the user renders, exports or processes .blend files from a CLI, CI job or batch script, passes arguments to a Blender script, or hits 'poll() failed, context is incorrect' or a job that exits 0 despite a…

    skills/headless-batch-scripting/SKILL.md on GitHub (opens in a new tab)
  • images-and-pixels

    Create and edit bpy.types.Image pixel buffers from Python: bpy.data.images.new, Image.pixels bulk access with foreach_get/foreach_set, the flat always-RGBA bottom-left-origin layout, byte vs float_buffer storage, colorspace_settings, and saving PNG vs OpenEXR with alpha through Image.save (filepath_raw, file_format) vs Image.save_render (scene render.image_settings). Use when the user writes or r…

    skills/images-and-pixels/SKILL.md on GitHub (opens in a new tab)
  • mesh-editing-and-bmesh

    Create, edit and read meshes efficiently: when to use bpy.data, bpy.ops or bmesh, the bmesh.new / try / finally / free pattern, foreach_get and foreach_set for bulk data, and evaluated meshes for modifier results. Use when the user writes mesh-generating or mesh-editing Python, mentions bmesh, from_pydata, foreach_set or mesh.vertices, has a slow script looping over bpy.ops.mesh or per-vertex ass…

    skills/mesh-editing-and-bmesh/SKILL.md on GitHub (opens in a new tab)
  • operators

    Author bpy.types.Operator classes: bl_idname naming, poll / invoke / execute / modal lifecycle, bl_options (REGISTER, UNDO, INTERNAL, BLOCKING), operator properties and defensive context handling. Use when the user creates an operator for a button, menu, keymap or script, asks why its properties are missing from the Adjust Last Operation (redo) panel or why Ctrl-Z ignores it, or gets poll failure…

    skills/operators/SKILL.md on GitHub (opens in a new tab)
  • porting-to-blender-5

    Port an add-on or script from Blender 3.x/4.x to 5.x (5.2 LTS) while keeping 4.5 LTS working: a triage recipe that runs the code headless on the target version and maps each traceback to its fix, and one table of every break the pack covers (bgl, action.fcurves, use_auto_smooth, Principled sockets, sequences, context dicts, ID properties, compositor node_tree, Grease Pencil, NodesModifier inputs,…

    skills/porting-to-blender-5/SKILL.md on GitHub (opens in a new tab)
  • procedural-materials-and-shaders

    Build materials and shader node graphs from Python: bpy.data.materials, node_tree, Principled BSDF and its 4.0+ socket names, default values, links and shader node groups, for EEVEE and Cycles. Use when the user creates or edits materials in a script, generates many material variations, hits a KeyError on a Principled BSDF input such as Specular or Emission, restricts a light to some objects with…

    skills/procedural-materials-and-shaders/SKILL.md on GitHub (opens in a new tab)
  • slotted-actions-animation

    Create and edit animation from Python under Slotted Actions (Blender 4.4+): Action, slots, layers, strips, channelbags. Bind the action slot, then reach F-curves through a channelbag; action_ensure_channelbag_for_slot exists only on 5.0+, so use strip.channelbag(slot, ensure=True) on 4.5 LTS. Use when the user inserts keyframes or builds F-curves in a script, hits AttributeError on action.fcurves…

    skills/slotted-actions-animation/SKILL.md on GitHub (opens in a new tab)
  • timers-modal-and-threading

    Run long or repeated work in a Blender add-on without freezing or crashing it: bpy.app.timers return values and persistent=True, modal operators driven by event_timer_add, and worker threads that hand results to the main thread through a queue. Use when the user polls, animates or downloads from an add-on, calls bpy from a thread, writes a modal operator, sees a timer never fire in --background,…

    skills/timers-modal-and-threading/SKILL.md on GitHub (opens in a new tab)
  • ui-panels

    Author bpy.types.Panel UI: bl_space_type, bl_region_type, bl_category sidebar tabs, declarative draw(), layout row, column and split, sub-panels, and conditional UI with enabled and active. Use when the user adds an N-panel tab or properties-editor panel, exposes add-on properties or operator buttons, or has a panel that does not appear, shows the wrong labels or warns about a missing _PT_ in its…

    skills/ui-panels/SKILL.md on GitHub (opens in a new tab)
  • uv-and-mesh-attributes

    Author per-loop and per-vertex mesh data from Python: UV layers (mesh.uv_layers.new, bmesh loops.layers.uv, the calc_uvs=True silent no-op), a second lightmap UV channel and its active / active_render flags, loop tangents (calc_tangents, bitangent_sign), color attributes and their CORNER vs POINT domain, shape keys (shape_key_add, key_blocks data), and vertex-group weights capped at four influenc…

    skills/uv-and-mesh-attributes/SKILL.md on GitHub (opens in a new tab)
  • vse-python

    Build and inspect Video Sequence Editor timelines from Python: SequenceEditor.strips vs the removed .sequences, new_effect length vs frame_end, strip transforms, and the 5.2 COLOR strip width/height bake from scene resolution. Use when the user scripts the sequencer, hits AttributeError on sequence_editor.sequences in 5.x or a TypeError on new_effect keyword arguments, or renders COLOR strips tha…

    skills/vse-python/SKILL.md on GitHub (opens in a new tab)
  • blender-rules

    Blender Python anti-pattern rules (bmesh leaks, bpy.ops in loops, deprecated context-copy overrides, bulk mesh writes, prop annotations and context guards, Extensions manifest, import scale, export modifiers, glTF/FBX axis RNA, the removed bgl module, the normals API removed in 4.1). Use when writing, reviewing or fixing any bpy / Blender add-on or script code.

    claude/skills/blender-rules/SKILL.md on GitHub (opens in a new tab)
  • live-blender-session

    Work against the user's running Blender through the Blender Lab MCP server (the blender tools): read the scene with the summary, screenshot and docs tools before touching anything, save before any execute_blender_code call that mutates, prototype live, then hand back a script proven with blender --background. Use when the user has Blender open and asks about or wants changes to their current scen…

    live-session/skills/live-blender-session/SKILL.md on GitHub (opens in a new tab)

Review before you install

A skill is a set of instructions and scripts your agent will follow, and it can run code on your machine. Read the SKILL.md and any scripts first — this listing is not a security review.