| name | blender-cli |
| description | Use Blender from the command line to render 3D scenes, run Python scripts for batch processing, and convert 3D file formats without the GUI. |
Blender CLI
3D creation suite with full command-line interface. Render scenes, batch process, and run Python scripts headlessly.
Common Commands
Rendering
blender -b scene.blend -o /tmp/frame_ -f 1
blender -b scene.blend -o /tmp/frame_ -s 1 -e 250 -a
blender -b scene.blend -o /tmp/render.png -f 1 -F PNG
blender -b scene.blend -o /tmp/render_ -F OPEN_EXR -a
Engine Selection
blender -b scene.blend -E CYCLES -f 1
blender -b scene.blend -E BLENDER_EEVEE_NEXT -f 1
Resolution
blender -b scene.blend -o /tmp/out -x 1920 -y 1080 -f 1
Python Scripting
blender -b --python script.py
blender -b scene.blend --python script.py
blender -b --python-expr "import bpy; print(bpy.data.objects.keys())"
File Conversion
blender -b --python-expr "
import bpy
bpy.ops.wm.read_factory_settings(use_empty=True)
bpy.ops.import_scene.fbx(filepath='model.fbx')
bpy.ops.wm.save_as_mainfile(filepath='model.blend')
"
blender -b model.blend --python-expr "
import bpy
bpy.ops.export_scene.gltf(filepath='model.glb', export_format='GLB')
"
Scene Info
blender -b scene.blend --python-expr "
import bpy
for obj in bpy.data.objects:
print(f'{obj.name}: {obj.type}')
"
Agent Best Practices
- Always use
-b (background) flag for headless/CLI operation
- Use
-o to set output path, -f for single frame, -a for animation
- Use
--python or --python-expr for automation and batch processing
- Use
-F to set output format: PNG, JPEG, OPEN_EXR, FFMPEG
- CYCLES is higher quality but slower; EEVEE is faster for previews
- Use
--python-text to run a text block already in the .blend file
- Check Blender's Python API docs for scripting: https://docs.blender.org/api/current/
Example Workflows
Batch render a scene
blender -b scene.blend -E CYCLES -o /tmp/renders/frame_ -s 1 -e 100 -a
Convert FBX to glTF
blender -b --python-expr "
import bpy
bpy.ops.wm.read_factory_settings(use_empty=True)
bpy.ops.import_scene.fbx(filepath='input.fbx')
bpy.ops.export_scene.gltf(filepath='output.glb', export_format='GLB')
"