Communitygithub.com

cli-anything-blender

一个支持状态的命令行界面,用于3D场景编辑,遵循与GIMP CLI harness相同的模式。使用JSON场景描述格式,并通过生成bpy脚本实现实际的Blender渲染。

cli-anything-blender 是什么?

cli-anything-blender 是一个面向AI Agent和开发者的命令行界面工具,提供对Blender 3D场景编辑的完整控制。它采用JSON场景描述格式,自动生成bpy Python脚本驱动Blender渲染,因此无需手动编写复杂脚本。该工具支持REPL交互模式(含撤销/重做功能)、对象/材质/修改器/相机/灯光/动画/渲染/预览等完整的命令组。特别设计了预览工作流,可通过`preview capture`或`preview live`生成真实的视觉检查点(如hero.png、workbench.png),避免仅依赖JSON推断场景质量。支持`--json`输出格式方便AI Agent解析,并要求使用绝对路径执行文件操作以防止后台执行时路径错误。该工具设计上强调状态管理、可追溯性和Agent友好性,适用于需要编写、调试或自动化3D内容的AI场景。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HKUDS/CLI-Anything/tree/main/skills/cli-anything-blender

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

cli-anything-blender 是做什么的?

一个支持状态的命令行界面,用于3D场景编辑,遵循与GIMP CLI harness相同的模式。使用JSON场景描述格式,并通过生成bpy脚本实现实际的Blender渲染。

安装

该CLI作为cli-anything-blender包的一部分安装:

pip install cli-anything-blender

前提条件:

  • Python 3.10+
  • 系统中必须安装blender(>= 4.2)

用法

基本命令

# 显示帮助
cli-anything-blender --help

# 启动交互式REPL模式
cli-anything-blender

# 创建新场景项目
cli-anything-blender scene new -o scene.blend-cli.json

# 使用JSON输出运行(供Agent使用)
cli-anything-blender --json --project scene.blend-cli.json scene info

REPL模式

当不指定子命令调用时,CLI将进入交互式REPL会话:

cli-anything-blender
# 交互式输入命令,支持Tab补全和历史记录

命令组

Scene(场景)

场景管理命令。

命令描述
new创建新场景
open打开现有场景
save保存当前场景
info显示场景信息
profiles列出可用场景配置文件
json打印原始场景JSON

Object Group(对象组)

3D对象管理命令。

命令描述
add添加3D基本体对象
remove按索引移除对象
duplicate复制对象
transform变换对象(平移、旋转、缩放)
set设置对象属性(名称、可见性、位置、旋转、缩放、父级)
list列出所有对象
get获取对象的详细信息

Material(材质)

材质管理命令。

命令描述
create创建新材质
assign将材质分配给对象
set设置材质属性(颜色、金属感、粗糙度、镜面反射、透明度等)
list列出所有材质
get获取材质的详细信息

Modifier Group(修改器组)

修改器管理命令。

命令描述
list-available列出所有可用修改器
info显示修改器的详细信息
add为对象添加修改器
remove按索引移除修改器
set设置修改器参数
list列出对象的修改器列表

Camera(相机)

相机管理命令。

命令描述
add向场景添加相机
set设置相机属性
set-active设置活动相机
list列出所有相机

Light(灯光)

灯光管理命令。

命令描述
add向场景添加灯光
set设置灯光属性
list列出所有灯光

Animation(动画)

动画和关键帧命令。

命令描述
keyframe为对象设置关键帧
remove-keyframe移除对象的关键帧
frame-range设置动画帧范围
fps设置动画帧率
list-keyframes列出对象的关键帧

Render Group(渲染组)

渲染设置和输出命令。

命令描述
settings配置渲染设置
info显示当前渲染设置
presets列出可用渲染预设
execute渲染场景(生成bpy脚本)
script生成bpy脚本而不渲染

Preview(预览)

实时预览包捕获和实时预览会话命令。

命令描述
preview recipes列出可用预览配方
preview capture为活动场景渲染实时预览包
preview latest返回最新的现有预览包
preview live start开始实时预览会话并发布第一个包
preview live push将刷新的包发布到实时会话中
preview live status读取当前实时会话状态(不渲染)
preview live stop停止实时会话(不删除工件)

典型配方 quick 的包工件包括:

  • hero.png 来自实际Eevee预览渲染
  • workbench.png 来自实际Blender Workbench渲染

实时会话持久化以下内容:

  • session.json 作为可变头部
  • 不可变的包目录
  • trajectory.json 作为仅追加的命令到预览历史

查看器侧:

  • cli-hub previews inspect <bundle-or-session>
  • cli-hub previews html <bundle-or-session> -o page.html
  • cli-hub previews watch <session-dir> --open
  • cli-hub previews open <bundle-or-session>

Session(会话)

会话管理命令。

命令描述
status显示会话状态
undo撤销上一次操作
redo重做上一次撤销的操作
history显示撤销历史

示例

创建新项目

创建一个新的Blender场景项目文件。

cli-anything-blender scene new -o myscene.blend-cli.json
# 或者使用JSON输出供程序使用
cli-anything-blender --json scene new -o myscene.blend-cli.json

交互式REPL会话

启动一个支持撤销/重做的交互式会话。

cli-anything-blender
# 交互式输入命令
# 使用 'help' 查看可用命令
# 使用 'undo' 和 'redo' 进行历史导航

状态管理

CLI通过以下方式维护会话状态:

  • 撤销/重做:最多50级历史记录
  • 项目持久化:以JSON格式保存/加载项目状态
  • 会话跟踪:跟踪修改和更改

输出格式

所有命令支持双输出模式:

  • 人类可读(默认):表格、颜色、格式化文本
  • 机器可读(--json 标志):供Agent使用的结构化JSON
# 人类可读输出
cli-anything-blender --project scene.blend-cli.json scene info

# 供Agent使用的JSON输出
cli-anything-blender --json --project scene.blend-cli.json scene info

预览工作流

当Agent需要真实的视觉检查点时,使用Blender预览:

# 列出预览配方
cli-anything-blender --project scene.blend-cli.json preview recipes

# 捕获实时预览包
cli-anything-blender --json --project scene.blend-cli.json preview capture --recipe quick

# 启动实时预览循环
cli-anything-blender --json --project scene.blend-cli.json preview live start --recipe quick --mode poll --source-poll-ms 500

# 查询当前实时头部(不渲染)
cli-anything-blender --json --project scene.blend-cli.json preview live status --recipe quick

对于Agent,preview capture --json 返回包元数据以及工件文件路径。preview live status --json 返回会话元数据以及紧凑的 trajectory_summary。

对于AI Agent

以编程方式使用此CLI时:

  1. 始终使用 --json 标志 以获取可解析的输出
  2. 检查返回码 - 0表示成功,非零表示错误
  3. 解析stderr 以获取失败时的错误消息
  4. 强制要求:使用绝对路径 进行所有文件操作(渲染、项目文件)。相对路径在后台执行中容易失败。
  5. 使用 preview capture 或 preview live ... 进行视觉验证,而不是仅从JSON推断场景质量
  6. 读取返回的工件路径,例如 hero.png 和 workbench.png;JSON负载引用文件,不内嵌图像字节
  7. 将 _bundle_dir 视为仅一个快照;对于稳定的实时历史,使用 _session_dir 加 _trajectory_path
  8. 仅使用 cli-hub previews ... 检查/打开现有预览;预览的生成本身始终通过 cli-anything-blender preview ... 发生

更多信息

  • 完整文档:请参阅包中的README.md
  • 测试覆盖率:请参阅包中的TEST.md
  • 方法论:请参阅cli-anything-plugin中的HARNESS.md

版本

1.0.0

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

cli-anything-adguardhome

>-

cli-anything-anygen

>-

cli-anything-audacity

>-

cli-anything-browser

Browser automation CLI using DOMShell MCP server. Maps Chrome

cli-anything-calibre

>-

cli-anything-ccswitch

CLI interface for CC Switch — manage AI coding tool configurations from the terminal

cli-anything-chromadb

>-

cli-anything-cloudanalyzer

Command-line interface for CloudAnalyzer — Agent-friendly harness for CloudAnalyzer, a QA platform for mapping, localization, and perception outputs. Supports 27 commands across 8 groups: point cloud evaluation, trajectory evaluation, ground segmentation QA, config-driven quality gates, baseline evolution, processing, visualization, and interactive REPL.

cli-anything-cloudcompare

Command-line interface for CloudCompare — Agent-friendly harness for CloudCompare, the open-source 3D point cloud and mesh processing software. Supports 41 commands across 9 groups: project management, session control, point cloud operations (subsample, filter, segment, analyze), mesh operations, distance computation (C2C, C2M), transformations (ICP, matrix), export (LAS/LAZ/PLY/PCD/OBJ/STL/E57), and interactive REPL.

cli-anything-comfyui

>-

cli-anything-dify-workflow

Wrapper for the Dify workflow DSL CLI. Create, inspect, validate, edit, and export Dify workflow files through a CLI-Anything harness.

cli-anything-drawio

>-

cli-anything-eez-studio

Use EEZ Studio from the command line: inspect and modify native .eez-project files, edit LVGL screens/widgets, manage SCPI commands, and invoke the real EEZ Studio backend for LVGL builds.

cli-anything-eth2-quickstart

>-

cli-anything-exa

>-

cli-anything-firefly-iii

Firefly III CLI - Personal finance management via CLI-Anything

cli-anything-freecad

Complete CLI harness for FreeCAD parametric 3D CAD modeler (258 commands). Covers ALL workbenches: Part (29 primitives + boolean + mirror + loft + sweep), Sketcher (26 cmds: geometry + constraints + editing), PartDesign (38 cmds: pad/pocket/groove/fillet/chamfer/patterns/hole/datum), Assembly (11 cmds), Mesh (16 cmds), TechDraw (15 cmds: views + dimensions + PDF/SVG), Draft (33 cmds: 2D shapes + arrays + transforms), FEM (12 cmds), CAM/CNC (10 cmds), Surface (6 cmds), Spreadsheet (7 cmds), Import (13 formats), Export (17 formats), Measure (12 cmds), Materials (21 presets). Headless FreeCAD export to STEP/IGES/STL/OBJ/DXF/PDF/glTF/3MF.

cli-anything-gimp

>-

cli-anything-godot

>-

cli-anything-inkscape

>-

相关技能