多场景
带参数切换场景。命令行用 gandi scenes 管理,gandi run --scene 指定场景。示例程序。
Gandi CLILet AI build Scratch projects
给 AI 用的命令行。连上 Gandi 编辑器,用文本读、改、运行、测试 Scratch 作品。代码、美术、音乐,AI 一个人写完。
01DSL
02写法
自研的积木文本语法。变量、循环、分支、模板字符串、对象与列表,都是 AI 最熟悉的写法;其余积木统一写成 category.block(…)。
写法像 JavaScript,但只描述积木,从不被执行;部分积木为 Gandi 专有。对象与列表需先安装「高级数据结构」扩展。
if (…) { } else if (…) { }for (let i = 1; i <= 5; i++)score += 1;`第 ${i} 个`player.hp += 10;log.push(i * 2);03能力
带参数切换场景。命令行用 gandi scenes 管理,gandi run --scene 指定场景。示例程序。
名字里写 战斗//Player,角色就进文件夹。
$ gandi assert --json '{"checks":[ "score >= 3", "Hero.x > 0" ]}' $ gandi test REF --expected-rev REV --strict-exit
断言、保存在作品里的测试套件、逐帧输入。勾选为示意;有 setup 的用例属于受控状态,会如实标出。
gandi arrange:按逻辑分组、分列、按尺寸装箱,整次排布是编辑器里的一步撤销。
编辑器内:剪贴板里是 DSL,在工作区按 Ctrl V:积木落在鼠标处、不压住已有脚本、新脚本自动选中,整次粘贴是一步撤销。编译失败则一块都不插,并提示第一条诊断。
右侧为编辑器真实截图,拖动对比。
对象字面量、属性自增、列表 push,直接对应「高级数据结构」扩展的积木。需先安装该扩展。示例程序。
读到没装的扩展,先按写入同样的确认与权限安装。扩展会运行第三方代码。
$ gandi write REF --file draft.js \ --base-rev REV E_CONFLICT
每次写入带修订号。冲突被拒绝,而不是悄悄覆盖。
04流程
启动本机后台服务,在编辑器里点一次「连接 CLI」,你在本机授权页确认。
$ gandi doctor {"bridge":false,"paired":false,"bound":false,"next":"gandi start"} $ gandi start # 连上编辑器后:gandi editors · gandi use EDITOR_ID · gandi bind
编辑器是一棵虚拟源码树。先看概况,再读具体页面,读回来的内容带修订号。
$ gandi overview $ gandi files --kind blocks $ gandi read REF --offset 1 --limit 100 $ gandi grep 'score' --glob '**/*.js' --context 2 # 输出连上编辑器后才有 · 示意
只检查不写入。报错带行、列和改法。
$ gandi check REF --file draft.js {"code":"E_UNKNOWN_VAR","message":"Unknown identifier zzz; declare it first", "line":2,"column":3,"severity":"error", "fix":"const zzz = sprite.variable(\"zzz\", 0);"}
带着读到的修订号写入。也可以先 --dry-run 预览精确替换的差异。
$ gandi write REF --file draft.js --base-rev REV $ gandi edit REF --edits-file edits.json --base-rev REV --dry-run # 修订号过期 → E_CONFLICT,不会覆盖
在后台运行器里逐帧运行,注入键盘与鼠标,不碰你正在编辑的作品。
$ gandi run --json '{"frames":60,"inputs":[ {"frame":2,"key":"space","down":true}, {"frame":12,"key":"space","down":false}]}' $ gandi state · gandi logs · gandi view --output stage.png
断言通过才算数。保存成测试套件,每个用例从同一份快照、在全新的运行时里开始。
$ gandi assert --json '{"checks":["score >= 3","Hero.x > 0"]}' $ gandi test REF --expected-rev REV --strict-exit $ gandi export --output NEW.sb3
终端内容为示意,实际输出以你的作品为准。
05示例程序
06一整款游戏
所有玩法逻辑,直接写成原生积木。写完即检查,再逐帧运行、断言、保存为测试。
check · run · assert
角色造型、背景与界面,由 AI 自己画,直接写进作品。
造型 · 背景 · 界面
旋律、伴奏与音效,由 AI 自己作,直接写进作品。
旋律 · 伴奏 · 音效
07安装
安装只要一句话。丢给 AI,它自己就会了。
帮我安装 npm install -g @kukemc/gandi-cli 并查看 gandi --help。
前两行为示意;其余是 gandi --help 的真实输出节选,原文未改。
gandi start启动本机后台服务连接 CLI在编辑器里点一次,到本机授权页确认gandi guide start让 AI 从内置指南开始需要 Node.js 20 或更高。
当前版本 0.2.0。文本写法、智能排布、Ctrl + V 粘贴等功能在 Gandi 编辑器中执行。首次授权需要你在本机授权页确认,随时可用 gandi revoke 撤销;扩展安装会运行第三方代码;浏览器可能需要放行本地网络访问。