Install the "blender" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/blender/skills/blender into .claude/skills/blender/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add autonomous-ai/openharness --skill blender -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "blender" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/blender/skills/blender into .agents/skills/blender/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add autonomous-ai/openharness --skill blender -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "blender" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/blender/skills/blender into .cursor/skills/blender/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add autonomous-ai/openharness --skill blender -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "blender" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/blender/skills/blender into .gemini/skills/blender/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add autonomous-ai/openharness --skill blender -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "blender" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/blender/skills/blender into .github/skills/blender/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add autonomous-ai/openharness --skill blender -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "blender" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/blender/skills/blender into .opencode/skills/blender/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
blender
GitHub stars
1.2k
Token cost
~2.1k tokens
SKILL.md length
858 words
Files
1
Skills in repo
100
Repo updated
First seen
Licence
MIT
At a glance
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…
Any request that ends in a 3D model
SKILL.md covers Build, export, render, verdict, What the pane shows, and how…, Modelling, the parts that matter and Rules
Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
A rendered shot
What it does
Blender is an agent skill from 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 turntables, export STL. Use for any request that ends in a 3D model, a rendered shot or a glTF.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Game Development, covering 3D graphics and WebGL. It works with Blender and Python. The repository describes itself as: The ultimate harness for coding agents and beyond. All your agents. All your machines. One command center. Start with code, then follow your curiosity and build across… The licence is MIT.
When your agent uses it
Any request that ends in a 3D model
A rendered shot
Example prompts
“/blender”
Requirements
Python 3
What it can do on your machine
Read from SKILL.md and the folder at commit cc4983e. 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 and bash).
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.
Context cost
Blender loads about 2.1k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 858 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~74
When it runs· the whole SKILL.md, loaded when a task matches
~2.1k
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.
Download SKILL.mdSave it as .claude/skills/blender/SKILL.md (or your agent's skills folder).
name
blender
description
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 turntables, export STL. Use for any request that ends in a 3D model, a rendered shot or a glTF.
blender
Blender runs here as a Python module (bpy, pinned): everything Blender does, no window. Scripts
live in scenes/, run with $BLENDER_PYTHON, and harness_blender (on PYTHONPATH) gives you the
scene, the camera, the export, the renders and the report in one import.
Build, export, render, verdict
bash
"$BLENDER_PYTHON" scenes/hello.py # builds → out/model.glb, out/preview.png, out/turntable.mp4, out/report.json
"$BLENDER_PYTHON" "$BLENDER_TOOLCHAIN/verdict.py" # judges out/ → the pane header, and which glTF the pane opens
python
import bpy
from harness_blender import fresh, frame_all, export_glb, render, turntable, export_stl, report
fresh() # empty scene, millimetres, Workbench matcap
bpy.ops.mesh.primitive_cylinder_add(vertices=96, radius=45, depth=100, location=(0, 0, 50))
body = bpy.context.active_object
body.name = "Mug" # the name the pane's outliner shows
frame_all() # camera + key light framing everything
export_glb("out/model.glb") # FIRST: the 3D pane reloads now, in place
render("out/preview.png") # a still, seconds (engine="CYCLES", samples=64 for a beauty shot)
turntable("out/turntable.mp4", seconds=4) # the pane's Turntable tab; the scene is left as it was
report() # what the verdict reads
What the pane shows, and how to feed it
Shape Lab: authored controls, real geometry, kept directions
Expose choices that help the user explore their object. parameters() publishes controls to
.harness/design.json and reads the defaults or the user's design-values.json during each run:
python
from harness_blender import parameters
p = parameters({
"height": {"default": 260, "min": 180, "max": 380, "step": 5, "unit": "mm"},
"ribs": {"type": "integer", "label": "Ribbons", "default": 24, "min": 12, "max": 48},
"base": {"type": "boolean", "label": "Include base", "default": True},
"finish": {"type": "choice", "default": "Ivory", "options": ["Ivory", "Terracotta"]},
}, title="Light, shaped by you", sources=["scenes", "assets"], output="out/model.glb")
# Use p["height"], p["ribs"], p["base"] and p["finish"] in the scene you author.
All controls need a default. Numeric controls default to type number and step 1; they need
finite min < max bounds. Integer bounds and steps must be integers. Optional label,
description and unit explain a control. Support is bounded to 1–16 controls and 2–12 choice
options. A control ID uses lowercase letters, numbers and underscores, starting with a letter.
sources lists existing relative files or folders needed to rebuild: the entry script, local
imports and assets. By default it includes the entry script's folder and assets/ when present.
List root-level imports or other asset folders explicitly. Hidden files, dependencies, output
folders and symlinks are not inputs. Use relative paths and the helper's workspace convention;
the native preview is a separate working directory, not a sandbox for arbitrary Python.
Shape Lab snapshots the declared files and runs the entry script with chosen values. It keeps
the last good preview while another builds, coalesces rapid changes, and stops a preview after
two minutes. render() and turntable() are skipped in this mode. Always produce the declared
out/*.glb/.gltf and out/report.json; prefer a self-contained GLB. Other dependencies must
already be available in the harness's Python environment.
Keep saves source, helper modules and their license, values, actual exports, measurements,
thumbnail, a rebuild script and a ZIP in out/designs/<id>/. Saved directions survive source
edits and viewer restarts. Use values on next build writes the chosen values to the project
only when the authored source still matches. It does not replace the current model, renders or
verdict; run the scene and verdict normally to produce that delivery. Preserve the user's values
when refining, and migrate them explicitly if the control schema changes.
For example, a user may keep a short wide cup and a tall handle-free tumbler, then ask you to
refine the tumbler's rim. Read its saved source and measurements instead of approximating it from
the thumbnail. Geometry, camera and finish remain ordinary editable Blender Python.
Viewport metadata
The pane is a 3D viewport of the glTF, not a video player. export_glb carries everything it needs:
Names and hierarchy: every renderable object under its Blender name, collections as the
outliner's tree, parenting kept. Name objects, collections and materials for what they are.
Facts per object (as glTF extras): dimensions and location in mm, rotation, scale, vertex /
face / triangle counts, modifiers, materials, collections. Your own custom properties
(obj["part_no"] = "A-12") appear in the properties panel too.
Materials: Principled BSDF base colour, metallic, roughness, textures; diffuse_color is what
Solid shading uses — set it to match.
The scene camera and lights (KHR_lights_punctual): the user can look through the camera
(numpad 0) and switch the lights on in Material / Rendered shading.
Animation: keyframed objects play on the pane's timeline (obj.keyframe_insert(...),
scene.frame_end, scene.render.fps).
Units: the scene's unit scale travels with the export, so millimetres read as millimetres.
While a script runs, the helper writes .harness/build.json (step, turntable progress, failure) and
the pane shows "Rebuilding · …" over the last good model. Exports are written to a hidden file and
renamed into place, so the pane never reads half a file. Export after every meaningful change.
Show full SKILL.md (261 more words)Show less
Modelling, the parts that matter
Primitives: primitive_cube_add(size), primitive_cylinder_add(vertices, radius, depth),
primitive_uv_sphere_add(radius), primitive_torus_add(major_radius, minor_radius),
primitive_plane_add. Each becomes bpy.context.active_object; name it.
Collections: c = bpy.data.collections.new("Lamp"); bpy.context.scene.collection.children.link(c),
then move an object: for u in list(o.users_collection): u.objects.unlink(o) and c.objects.link(o).
Modifiers (non-destructive, applied on export): o.modifiers.new("Bevel", "BEVEL") (width,
segments, limit_method="ANGLE"), "SUBSURF" (levels), "BOOLEAN" (operation DIFFERENCE/UNION,
object — hide the cutter with hide_render = True), "ARRAY", "MIRROR", "SOLIDIFY"
(thickness — a clean way to give an open shape a wall), "SCREW", "DISPLACE".
Smooth shading: bpy.ops.object.shade_smooth_by_angle(angle=math.radians(35)) on curved parts.
Edit-mode ops when a modifier will not do: bmesh for exact geometry
(bmesh.ops.extrude_face_region, inset, bevel, delete), then back to the mesh.
Curves and text: bpy.data.curves.new(type="FONT") + body for lettering, extrude for depth.
Materials: bpy.data.materials.new, use_nodes = True, Principled BSDF inputs Base Color,
Roughness, Metallic; set diffuse_color too so Workbench and the pane's Solid mode show it.
Units: fresh() puts the scene in millimetres. Model at real size; the report says the size.
Cameras: frame_all(azimuth, elevation) for the shot; render(engine="CYCLES") for light,
shadow and glass (CPU: 64 samples at 1280×720 is under a minute for a small scene).
Animation: obj.keyframe_insert("location", frame=n); scene.frame_end; it exports and plays
on the pane's timeline.
Geometry Nodes exist (modifiers.new(type="NODES")) but hand-built node trees are long; prefer
modifiers and bmesh unless the request is procedural by nature.
Rules
Never write inside the package; out/ holds everything produced, scenes/ the scripts.
First a blocky version (primitives, no bevels), export it, then render; then refine and export
again. The live 3D scene is the proof; the turntable is the deliverable.
Deliver out/model.glb (and .stl when it is for printing); say the size in mm.
Blender 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 compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Blender this skillautonomous-ai/openharness
1.2k
—
~2.1k
Automated safety check: Pass
MIT
Text To 3D AssetLaurentiuGabriel/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.
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.
A skill your agent uses when the user wants a 3D model, mesh or GLB out of Higgsfield — image-to-3D, multi-view-to-3D, text-to-3D, rigging or animating a mesh, remesh / retopology, retexture, or 3D…
Guides Blender Python that generates construction geometry from derived parametric expressions instead of hand-typed coordinates, so changes propagate and overlaps stay checkable.
Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.
Slices 3D mesh files into printer-profiled plain G-code through real slicer CLIs, with backend discovery, input inspection, dry runs and static validation.
Turns a home-automation request into standard, testable automations.yaml, run against Home Assistant Core's real triggers and verified with its own trace tool.
Turns an STL and explicit printer and material requirements into compared OrcaSlicer plans, an editable 3MF project, checked G-code and a portable handoff.
Builds an editable DOCX report, a formula-driven XLSX workbook and a fresh LibreOffice PDF preview from one structured source file, then checks them together.
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…. Blender is an agent skill from 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 turntables, export STL.
When should I use Blender?
Blender fits situations like: any request that ends in a 3D model; A rendered shot.
How do I install Blender in Claude Code?
Run `npx skills add autonomous-ai/openharness --skill blender -a claude-code`. Or copy the skill folder (store/agents/blender/skills/blender in autonomous-ai/openharness) into .claude/skills/blender in your project. Claude Code loads it when a task matches its description.
How do I install Blender in Codex?
Run `npx skills add autonomous-ai/openharness --skill blender -a codex`. Or copy the skill folder (store/agents/blender/skills/blender in autonomous-ai/openharness) into .agents/skills/blender in your project. Codex loads it when a task matches its description.
Can I use Blender 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 autonomous-ai/openharness --skill blender -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, .gemini/skills/blender, .github/skills/blender and .opencode/skills/blender in your project.
What does Blender need to run?
SKILL.md names no scripts, command-line tools or credentials: Blender is instructions for the agent only. Our summary lists: Python 3.
Does Blender 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 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 use?
Blender is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Blender use?
About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Blender?
Skills that share tags, products or a category with Blender: Text To 3D Asset (LaurentiuGabriel/unreal-game-assets-creation-skill, 148 stars), Blender Web Export Pipeline (freshtechbro/claudedesignskills, 1k stars), CLI Hub Matrix 3D Cad (HKUDS/CLI-Anything, 52k stars) and Higgsfield 3D (OSideMedia/higgsfield-ai-prompt-skill, 713 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Blender?
autonomous-ai (a GitHub organization) maintains it in autonomous-ai/openharness, which has 1,210 GitHub stars. The repository holds 100 skills in this directory. The repository was last updated on October 10, 2026.
Source: autonomous-ai/openharness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.