- Home
- Skills
- Frontend & Web Apps
- Layout Debug: point at UI, agent fixes the code
More screenshots
Works with the AI Agents you already use
Layout Debug: point at UI, agent fixes the code
Alt+click any element in your running web page or Android Compose app, drag it or type the change, and your agent edits the right line of code.
Free
Layout Debug: point at UI, agent fixes the code
Example session with this skill installed
Open the layout-debug window on http://localhost:3000 and listen for my edits.
- Read your context and instructions
- Compiled the layout debug
- Generated the UI component
Summary
The layout-debug window is open and I'm listening. Your first request moved the plan price under the title; the frame refreshed with the change.
What I received from the window
Your comment: "Put the price under the title, same gap as the subtitle", sent on the element you Alt+clicked and dragged:
| Field | Value |
|---|---|
| element | span "$49 / year" |
| source | src/components/PlanCard.tsx:41 |
| data-testid | plan-price |
| classes | ml-auto text-sm text-gray-500 |
| box | 72×20 @ 912,231 (css-px) |
| parent box | 416×40 @ 588,221 |
| live edit | offset -324, 22 |
What I changed
The price sat in the same flex row as the title and was pushed right by ml-auto. Your drag moved it left and down by one line, so this is a column, not an offset:
- <div className="flex items-center">
+ <div className="flex flex-col gap-1">
<h3 className="text-lg font-semibold">{plan.name}</h3>
- <span className="ml-auto text-sm text-gray-500" data-testid="plan-price">
+ <span className="text-sm text-gray-500" data-testid="plan-price">
gap-1 matches the gap between the title and the subtitle in PlanCard.tsx:36.
Reply sent to the window
reply_in_window(status: "done"): "Moved the price under the title: the header row is now flex flex-col gap-1, removed ml-auto (src/components/PlanCard.tsx:39-41)."
Next steps
- Check the refreshed frame; your other live edits were re-applied on top.
- Select the next element and send another change; I'm back on
wait_for_message. - Say "stop listening" when you're done.
PlanCard.tsx
TSX · React component
Example file from a real run - the skill writes it into your workspace.
Connects securely to your tools. The creator never sees your data.
About this skill
Stop describing UI to your agent in words. This skill teaches your agent to work with layout-debug-mcp, a free open-source MCP server that opens a local window over your running UI. You Alt+click the element you mean, drag or resize it on the real screen if you like, and type what to change. Your agent gets the element's anchors, box, parents and the measured delta, edits the code, and answers in the same window while the frame refreshes with the result.
What it does
- No more "which element?" The agent receives
file:line(React/JSX with the bundled dev plugin, always on Android), test id, id, class string and text, so it edits the right element on the first try. - Measurements, not adjectives. Drag a button 16 px down and the real page moves without a rebuild. The agent gets
offset 0, 16in css-px (web) or dp (Android) and decides whether that becomes a margin, a gap, a reordered child or aSpacer. - A chat per element. The agent listens to the window, replies in the element's thread and waits for your next message, so you iterate until it looks right.
- Safe by default. Page text reaches the agent marked as untrusted data, and the skill tells the agent never to follow instructions found there.
How it works
- The agent calls
open_window: the local server starts and the window opens in your browser. - The agent calls
wait_for_messageand listens. - You select an element, optionally drag or resize it, and type the change.
- The agent finds the element by its strongest anchor, edits the code and calls
reply_in_windowwith what changed. - The window waits for hot reload, refreshes the frame, and the agent goes back to listening.
Targets
- Web: any real DOM page from your dev server (React, Vue, plain HTML).
file:lineneeds the bundled Vite or Babel plugin; without it the agent uses test id, id and classes. - Android: Jetpack Compose on a device or emulator over
adb, with a debug-only on-device agent library. You get the full composition tree withfile:linefrom the Compose compiler and live overrides on the device.
Requirements
- Node.js 22.12+ (or 20.19+)
- The
layout-debug-mcpMCP server:npx -y layout-debug-mcpin any MCP client - Android only:
adband a debug build with the on-device agent
Known limitations
- Live edits in the window are a preview; the code changes only when the agent edits it.
- The web page is shown in an iframe; pages that forbid framing need the built-in framing proxy.
- Compose Multiplatform on wasmJs (canvas) is not supported.
How to use
Skills on Agensi run inside your AI agent. Copy the prompt, paste it into your agent, and it connects to Agensi and installs this skill for you. If a payment is needed, your agent shows it to you first.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
Free forever
No account required to browse
Trust & safety
Security scanned
Verified clean today
- Free to download with an account
Requires