应用开发插件
@brookesia/app-dev-plugin 是 ESP-Brookesia GUI 应用开发的 主机端 Agent 插件。
它通过 MCP (Model Context Protocol) 挂到 Cursor、Claude Code、Codex 等 Agent IDE/CLI,
并驱动 Toolkit (brookesia CLI) 完成初始化、构建、仿真、打包与部署。
它不是:
各 IDE 官方插件商店里的扩展(当前推荐路径是写 MCP 配置,不是在商店里搜扩展名)
固件组件
brookesia_mcp_utils(那是设备侧 MCP 相关能力,与本插件无关)
安装后请在 Settings → MCP (或 /mcp、codex mcp list) 中查找服务器名 brookesia-app-dev。
请 同时安装 @brookesia/app-dev-plugin 和 esp-brookesia-toolkit。
未安装 CLI 时,brookesia_init / brookesia_build / brookesia_simulate 等 MCP 工具会失败。
已发布包:@brookesia/app-dev-plugin。
能力概览
能力 |
说明 |
|---|---|
应用工程 |
初始化、构建、打包、验证、发布 |
WASM 仿真 |
浏览器内运行 JSON UI,支持探测、热重载、截图 |
JSON UI |
Schema 校验、布局检查、交互控件补全、 |
设计导入 |
Figma 社区插件 → JSON UI 导出会话;参考图 → 图标提取 / 基元绘制 |
视觉回归 |
仿真截图与参考图像素对比; |
设备 Service |
通过 MCP Resource 提供 |
Agent Skills |
环境搭建、开发、设计、截图转 UI、自动测试等分场景指引 |
安装
需要 Node.js 20 或更高 (>=20), 且 npm / npx 在 PATH 中。
与已发布插件和 Toolkit 的 engines.node 一致(安装器也会校验主版本 ≥ 20)。
交互安装(不必全局安装插件):
npx @brookesia/app-dev-plugin
npx @brookesia/app-dev-plugin cursor
npx @brookesia/app-dev-plugin codex
日常使用(全局安装):
npm install -g @brookesia/app-dev-plugin@latest
brookesia-plugin
安装器也可以安装或升级 esp-brookesia-toolkit。写完 MCP 后,在 IDE 中 Reload MCP。
对话里应出现 brookesia-app-dev 服务器。
之后单独升级两个全局包(不改写 MCP):
npm install -g @brookesia/app-dev-plugin@latest
npm install -g esp-brookesia-toolkit@latest
然后 Reload MCP。全局安装后若 brookesia 不在 PATH,请重开终端。
可选依赖(安装器可提示安装):
依赖 |
用途 |
|---|---|
Playwright Chromium |
WASM |
|
本地仿真器 HTTP 探测 ( |
|
|
常用安装器参数:
brookesia-plugin --help
brookesia-plugin deps --yes # 只装/升 toolkit 与缺失依赖,不配 MCP
brookesia-plugin --yes cursor # 非交互安装到 Agent ``cursor`` (必须带 Agent id)
brookesia-plugin --yes-usb-cli # 自动安装 brookesia-usb-cli
brookesia-plugin --npx # 强制 MCP 用 npx 启动
brookesia-plugin --local # 强制 MCP 用本地绝对路径(更快 / 离线)
--yes 只会自动接受插件 / toolkit / 可选依赖等提示, 不会 选择要写入 MCP 的 Agent。
非交互运行需要带上 Agent id (例如 cursor / codex),或使用 deps 子命令。
各 Agent 的 MCP 位置
Agent |
做法 |
|---|---|
Cursor |
安装器写入 |
Claude Code / Desktop |
|
Codex CLI |
|
OpenCode、Windsurf、Trae、Gemini、Copilot、ZCode |
安装器写入各产品自己的 MCP 配置 |
验收建议:
终端:brookesia --version
Agent:列出 MCP 工具 → 应看到 brookesia_build / brookesia_simulate / brookesia_visual_loop 等
Agent:读取 brookesia://schemas/service-catalog → 应返回 Service API 目录
Agent:调用 brookesia_doctor(指定 projectDir)→ capabilities.ok === true
MCP 工具与资源(技术要点)
插件当前提供约 32 个 MCP Tools 与 9 个 MCP Resources。 Agent 应优先调用这些工具,而不是在 shell 里手写一长串等价命令。
工具分组:
分组 |
代表工具 |
|---|---|
工程 / CLI |
|
仿真 |
|
JSON UI |
|
设计导入 |
|
视觉 / 图标 |
|
真机 |
|
常用 Resource URI(在 Agent 中「读取 brookesia://...」):
URI |
内容 |
|---|---|
|
JSON UI Schema |
|
|
|
|
|
开发板硬件目录(不要写进 app 配置) |
|
JSON UI + 应用包编写指南 |
|
Figma → JSON UI Skill |
|
截图转 JSON UI Skill |
技术约定:
多数工程类工具需要
projectDir(应用根目录绝对路径)。brookesia_build/brookesia_board_capabilities可传boardId或probeDevice,但 不要把板型写入brookesia.config.js。仿真截图依赖 Playwright Chromium;仅做 build/pack 可不装。
完整工具参数以 Agent 侧 MCP schema 与插件 README 为准。
常见 Agent 工作流
1. 新建并运行应用
让 Agent 调用
brookesia_init(或等价brookesia init)。编辑
src/res/下 JSON UI 与src/app/逻辑。brookesia_build→brookesia_simulate做浏览器预览。brookesia_pack/brookesia_verify产出.bpk。
也可直接对 Agent 说:「在当前目录初始化 js-gui 应用并仿真」。
2. Figma → JSON UI
前提:Agent 已挂上 brookesia-app-dev MCP;Figma 桌面端 已安装社区插件
ESP-Brookesia JSON UI。
这不是 Figma MCP,也不是「截图转 UI」。
在 Agent 中说「把 Figma 导出到这个 app」。
Agent 调用
prepare_json_ui_export,并 展示一次性 token。在 Figma:Export Package → 展开 Send to Brookesia Agent → 粘贴 token → Send。
不要用 Copy Bundle;token 通常约 10 分钟、一次性。Agent 无法代贴。
3. 截图 → JSON UI
提供参考截图。
优先让 Agent 走
brookesia_visual_loop(规范化 → 构建 → 仿真 → 对比)。不要手工串
prepare_reference_screenshot+compare_simulator_to_reference,除非在排查单步问题。
4. 调用设备 Service (Storage / Wi-Fi 等)
读取
brookesia://schemas/service-catalog。用户点名开发板或已连 USB 时,先
brookesia_board_capabilities/brookesia_validate_service_usage。在
app.js中通过@brookesia/service调用对应 API。PC 仿真可验证部分逻辑;依赖真实硬件的 Service 仍需设备固件。
5. 真机部署
brookesia_deploy 使用 Serial/JTAG USB CLI (brookesia-usb install):
固件需启用 USB CDC / USB service。
主机口必须是 USB Serial/JTAG (常见
/dev/ttyACM0)。仅有 USB 转 UART (如 CP2102 的
/dev/ttyUSB0) 时,brookesia_deploy不可用;应改用 littlefs 预置或 SD/网络安装。deploy与device_status之间建议间隔约 1–2 秒:USB 控制会话是独占的,紧跟调用可能 busy。
升级、卸载与更多细节
升级全局包后请 Reload MCP:
npm install -g @brookesia/app-dev-plugin@latest esp-brookesia-toolkit@latest
# 或不改写 MCP、只处理依赖:
npx @brookesia/app-dev-plugin deps --yes
卸载 MCP 配置:
brookesia-plugin uninstall
brookesia-plugin uninstall --yes
安装器参数、各 Agent manifest、Skills/Hooks 包形态,以及完整工具表见 @brookesia/app-dev-plugin npm 页面。
相关页面:
Toolkit CLI:Toolkit
USB 主机工具:Serial/JTAG USB CLI