关于 cli-anything-blender
cli-anything-blender 是用于编辑 Blender 场景的有状态命令行工具,面向自动化 3D 工作的 Agent 和用户。它以 JSON 保存项目状态,提供场景控制与渲染预览,便于检查视觉效果。
主要功能
- 01管理场景和项目
- 02编辑对象、材质与修改器
- 03配置摄像机、灯光和动画
- 04渲染场景并生成 bpy 脚本
- 05捕获并追踪视觉预览
- 06交互式 REPL,支持撤销与重做
适用场景
- 01通过命令创建或修改 Blender 场景
- 02调整材质、灯光和动画
- 03渲染预览以核验场景变更
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ hkuds/ cli-anything --skill cli-anything-blender安装后在 Claude Code 中输入/cli-anything-blender确认已加载。
详细介绍
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)
用法
基本命令
# Show help
cli-anything-blender --help
# Start interactive REPL mode
cli-anything-blender
# Create a new scene project
cli-anything-blender scene new -o scene.blend-cli.json
# Run with JSON output (for agent consumption)
cli-anything-blender --json --project scene.blend-cli.json scene info
REPL 模式
当不带子命令调用时,CLI 会进入交互式 REPL 会话:
cli-anything-blender
# Enter commands interactively with tab-completion and history
命令组
Scene
场景管理命令。
| 命令 | 描述 |
|---|---|
new | 创建新场景 |
open | 打开现有场景 |
save | 保存当前场景 |
info | 显示场景信息 |
profiles | 列出可用的场景配置 |
json | 打印原始场景 JSON |
Object Group
3D 对象管理命令。
| 命令 | 描述 |
|---|---|
add | 添加一个 3D 基本体对象 |
remove | 按索引移除对象 |
duplicate | 复制对象 |
transform | 变换对象(平移、旋转、缩放) |
set | 设置对象属性(名称、可见性、位置、旋转、缩放、父级) |
list | 列出所有对象 |
get | 获取对象的详细信息 |
Material
材质管理命令。
| 命令 | 描述 |
|---|---|
create | 创建新材质 |
assign | 为对象指定材质 |
set | 设置材质属性(颜色、金属度、粗糙度、镜面反射、alpha 等) |
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 | 设置动画 FPS |
list-keyframes | 列出对象的关键帧 |
Render Group
渲染设置和输出命令。
| 命令 | 描述 |
|---|---|
settings | 配置渲染设置 |
info | 显示当前渲染设置 |
presets | 列出可用的渲染预设 |
execute | 渲染场景(生成 bpy 脚本) |
script | 生成 bpy 脚本但不渲染 |
预览
真实预览包捕获与实时预览会话命令。
| 命令 | 描述 |
|---|---|
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.htmlcli-hub previews watch <session-dir> --opencli-hub previews open <bundle-or-session>
会话
会话管理命令。
| 命令 | 描述 |
|---|---|
status | 显示会话状态 |
undo | 撤销上一次操作 |
redo | 重做上一次撤销的操作 |
history | 显示撤销历史记录 |
示例
创建新项目
创建一个新的 Blender 场景项目文件。
cli-anything-blender scene new -o myscene.blend-cli.json
# Or with JSON output for programmatic use
cli-anything-blender --json scene new -o myscene.blend-cli.json
交互式 REPL 会话
启动支持撤销/重做的交互式会话。
cli-anything-blender
# Enter commands interactively
# Use 'help' to see available commands
# Use 'undo' and 'redo' for history navigation
状态管理
命令行工具通过以下方式维护会话状态:
- 撤销/重做:最多 50 级历史记录
- 项目持久化:将项目状态保存/加载为 JSON
- 会话跟踪:跟踪修改和变更
输出格式
所有命令支持双输出模式:
- 人类可读(默认):表格、颜色、格式化文本
- 机器可读(
--json标志):为 Agent 消费提供的结构化 JSON
# Human output
cli-anything-blender --project scene.blend-cli.json scene info
# JSON output for agents
cli-anything-blender --json --project scene.blend-cli.json scene info
预览工作流
当 Agent 需要真实的视觉检查点时,使用 Blender 预览:
# List preview recipes
cli-anything-blender --project scene.blend-cli.json preview recipes
# Capture a real preview bundle
cli-anything-blender --json --project scene.blend-cli.json preview capture --recipe quick
# Start a live preview loop
cli-anything-blender --json --project scene.blend-cli.json preview live start --recipe quick --mode poll --source-poll-ms 500
# Query current live head without rendering
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 使用
以编程方式使用此命令行工具时:
- 始终使用
--json标志以获得可解析的输出 - 检查返回码——0 表示成功,非零表示错误
- 解析 stderr以获取失败时的错误消息
- 强制要求:对所有文件操作(渲染、项目文件)使用绝对路径。相对路径在后台执行时容易失败。
- 使用
preview capture或preview live ...进行视觉验证,而不是仅从 JSON 推断场景质量 - 读取返回的产物路径,如
hero.png和workbench.png;JSON 载荷引用文件,而不是内联图像字节 - 将
_bundle_dir视为仅一个快照;对于稳定的实时历史记录,请使用_session_dir加_trajectory_path - 仅使用
cli-hub previews ...来检查/打开现有预览;预览生成本身始终通过cli-anything-blender preview ...进行
更多信息
- 完整文档:请参阅包中的 README.md
- 测试覆盖率:请参阅包中的 TEST.md
- 方法论:请参阅 cli-anything-plugin 中的 HARNESS.md
版本
1.0.0
评论
支持 Markdown