an
Open and operate Agent-Native workspace apps through Dispatch MCP, with inline app surfaces,…
Open and collaboratively edit a running local app in Design, with shared fallback previews and source handoff. Use when the user asks to inspect, share, or edit a real local app in Design.
$ npx -y skills add builderio/agent-native --skill visual-edit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/visual-editContext preview
The summary Claude sees to decide when to auto-load this skill.
Open and collaboratively edit a running local app in Design, with shared fallback previews and source handoff. Use when the user asks to inspect, share, or edit a real local app in Design.
name: visual-edit description: >- Open and collaboratively edit a running local app in Design, with shared fallback previews and source handoff. Use when the user asks to inspect, share, or edit a real local app in Design. metadata: visibility: exported
Use `/visual-edit` when the user wants to inspect or edit a real local app visually instead of generating standalone Alpine HTML. The source of truth is the running localhost app plus its route URLs. Design shows those routes as iframe-backed screens on the infinite canvas.
The editor is hosted at `https://design.agent-native.com`. Never start local Design; only the target app and bridge run locally.
See the [Visual Edit guide](https://github.com/BuilderIO/agent-native/blob/main/skills/visual-edit/README.md) for a worked onboarding-flow example.
The skill belongs to the coding host; Design is always the hosted app above.
`AUTH_DISABLED=1` with its normal dev command. This is local-only and gives the visual editor the framework's dev identity without a user login.
restart that server with `AUTH_DISABLED=1` and probe the route again before opening Design. Never present a sign-in page as the requested screen.
agent-owned dev server with its normal command when it is down, and wait for the requested routes to respond before opening Design. Never leave a dead localhost URL in the canvas.
session or explain that the target app, rather than Design, requires login.
paths directly. Discover routes only when paths were not supplied.
`npx @agent-native/core@latest skills add visual-edit` installs the skill and hosted Design MCP connector. `npx skills@latest add BuilderIO/agent-native --skill visual-edit` installs instructions only; page-capable WebMCP hosts need no connector installation.
Prefer the MCP App from `open-visual-edit`: it keeps Design beside chat. Use **Copy prompt** to hand the visual edits to the coding agent; the host may request conversation confirmation. Otherwise, `openUrl` is a credential-free, read-only fallback; never claim it is editable.
and call its `open-visual-edit` WebMCP tool. It works signed in or out; the one-time capability is not a Design account session. A page-capable browser controller is enough, so Claude-in-Chrome, Claude Code browser tools, the ChatGPT Chrome/browser extension, Puppeteer or Playwright MCP, CDP, and similar JavaScript-capable controllers do not need the hosted MCP connector.
Design MCP connector and its normal OAuth/device authorization. Never replace either path with a local Design server.
Inside Design, use **Show/Hide UI** from the `Cmd K` menu or press Figma's `Shift \` shortcut to toggle all editing chrome so only the canvas remains.
Without a connected Design MCP, use a visible browser tab with a main-world JavaScript evaluator. Prefer the host's inline browser; use external Chrome only when requested or unavailable. Open `https://design.agent-native.com/visual-edit`, keep it visible while tools register, and read the title before work. Never enter, copy, or request passwords, cookies, tokens, or codes. Signed-out loopback visual-edit works; other pages that block tools behind sign-in still require a signed-in tab. If the browser exposes CDP permissions, grant `local-network-access` to `https://design.agent-native.com` before calling page tools; otherwise use the page's Connect button and let the browser's permission prompt complete.
Use a native browser-session WebMCP bridge when the host provides one: list once with `list-browser-session-webmcp-tools` and run with `run-browser-session-webmcp-tool`, or use the `list-host-webmcp-tools` and `run-host-webmcp-tool` pair. Preserve the exact discovered name, origin, and args. Otherwise use the page-world API. Agent-Native pages expose this helper:
Example assumes signed-in or existing bridge; fresh signed-out loopback must add the locally held `bridgeToken` described below.
const an = window.__agentNativeWebMcp;
const status = await an.ready({ waitMs: 20_000 });
if (status.state !== "ready") throw new Error(status.error ?? status.state);
const tools = await an.tools("visual-edit");
if (!tools.some((tool) => tool.name === "open-visual-edit")) {
throw new Error("open-visual-edit is not registered yet");
}
const result = await an.call("open-visual-edit", {
devServerUrl: "http://localhost:5173",
paths: ["/"],
navigate: true,
}, { waitMs: 2_000 });
if (result.state === "pending") {
// On the next evaluation, read the still-running call without replaying it.
an.result(result.id);
}If the helper is absent, use standard WebMCP directly. `document.modelContext` is canonical; `navigator.modelContext` is deprecated:
const ctx = document.modelContext;
const tool = (await ctx.getTools()).find((candidate) => candidate.name === NAME);
if (!tool) throw new Error(`WebMCP tool not found: ${NAME}`);
const codex = typeof ctx.codexExecuteTool === "function" ||
typeof ctx.codexGetTools === "function";
const result = await ctx.executeTool(tool, codex ? ARGS : JSON.stringify(ARGS));The helper handles live discovery, partial registries, and pending calls. If a call returns `state: "pending"`, read `an.result(id)` on the next evaluatio
Agent-Native is an open-source TypeScript framework for building agents that pair autonomous work with a purpose-built UI. Define each capability once as an action: the agent uses it as a tool, and the UI calls it from code.
Repo: builderio/agent-native
Open and operate Agent-Native workspace apps through Dispatch MCP, with inline app surfaces,…
Use Agent-Native Assets for image and video generation requests, brand-safe asset…
Use Content for repo-backed Markdown/MDX docs, blogs, resources, rich document editing, local…
Visualize local Codex and Claude Code context usage, open a report, flag warnings, and…
Use Design for UI/UX exploration, side-by-side design directions, interactive prototype…
Turns a thread, skill, spreadsheet, or Claude/ChatGPT project into a polished, visual…