- From the tool list of currently loaded plugins, find the
lightcraft-editorservice. Call it with the absolute path of this task's workspace:open_editor, passingworkspaceon the first call; relative file paths can be handed to the specific open tool once the editor is ready. - When the host supports native MCP Apps, present
ui://lightcraft/panel.html. A text-only tool result does not mean the interface has been opened. - When Codex does not automatically present the panel, call
open_browser_editor, and hand the returnededitorUrlto the host's built-in browser opening capability. Codex Desktop can callopen_in_codex, with target as browser and url as the actual return value. Do not guess the local page path as a fixed port. - Only one editing page is opened per instance. Call
editor_status, and wait untilattachedorreadyis true before proceeding; if loading fails, handle the page error first. - All edits in this round use the same service. The native CLI and the Web editor are not the same in-memory document; before switching, you must save and explicitly reopen.
Use command_run to call the actual LightCraft command interface, and inspect to query library.info. The current Web version has no real-time command_list; only call verified version commands. After open_file requests an import, check the library again; output is written back to the workspace via browser export.
If the host only supports MCP, tool-calling capability and the embedded UI are two different things. The same editorUrl can be used in an external browser, but you must clearly state that this is not in-host acceptance.
When the development candidate lacks ui/dist/adapter.mjs , you need to first build according to the plugin ui/README.md . Do not guess paths from arbitrary caches, and do not bypass validation. This skill installed independently does not include the editor service; you need to install the companion plugin or configure its MCP backend.
When the tool is not registered, after obtaining the plugin's actual directory, you can run node ui/dist/adapter.mjs --servein the project terminal, specifying this task's workspace via the environment variable CRAFT_WORKSPACE_ROOT . Keep that process alive; this mode can display the UI, but automation must still connect to the corresponding MCP instance, and you cannot start another backend and claim it shares the session.
When done, save the project and reopen to check; read the actual exported file. Browser storage, preview screenshots, and submitted render jobs do not equal workspace delivery.