- Category
- Developer Tools
- Rank
- No. 2884Tools index
Previous survey · No. 2761 ·
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Coding
- Interfaces
- Web
- Builder
- manavarya09
- GitHub
- 20 stars
- Latest release
- v2.4.2
- Date
About
Visual drag-and-drop editor for your real codebase. Click, drag, resize, edit text in the browser — Claude writes the code.
What it does
A local Node command sits in front of whatever dev server you already run, rewrites every HTML page it passes through to add an editing overlay, and lets you nudge, reorder, restyle and retype elements on the live page. Tweaks show up instantly as temporary style overrides. On save, the pending changes are squashed into a small batch and handed to the Claude Code command line in headless mode, which finds the matching components and templates and patches them so hot reload shows the real result.
Why it's ranked here
The architecture is framework-agnostic in a way that holds up in the code: it proxies plain HTML, so any stack that serves pages gets the overlay, and a lookup table of route conventions covers Next.js, Nuxt, SvelteKit, Angular, Vue, Django, Rails and Laravel. It is MIT licensed and ships as a single npx command. The verdict is mixed, though: the manifest in the default branch contains an unresolved merge conflict, and the local control socket accepts file operations without checking origin or path.
What's good
Edit batching is thoughtful. Repeated drags on one element collapse into a single change that keeps the original starting value and the latest end value, and changes that net to zero are dropped, so the model sees a short, clean instruction list. The source lookup ranks candidates sensibly: a matching element id first, then matching visible text, then the route file, then a distinctive class name, while common utility classes are skipped. The overlay lives inside a shadow root, so its styling cannot bleed into your page, and it blocks form submits while active.
Tradeoffs
The package manifest on the default branch contains leftover merge-conflict markers, which makes it invalid JSON, so installing from a clone will fail until that is fixed. The local socket server listens without an origin check, and its reject handler deletes whatever file path the message names, with no check that the path sits inside the batch folder. Auto-apply requires the Claude Code command line; other assistants only get instruction files to apply by hand. Source mapping is heuristic text search capped at ten hits, so pages built from generic markup may map to the wrong file.
How to use it well
Best for a solo developer polishing spacing, copy and ordering on an existing site where finding the right component is the slow part. Keep the default preview step on rather than auto-apply, and read the resulting diff before committing, as the author also advises. Run it only on a trusted machine and close it when finished, since the control socket is reachable by other local pages. Add stable ids to elements you edit often, because ids are the strongest mapping signal. It does not replace a design tool for building new layouts from scratch.
Technical notes+
bin/moldui.js wires a Commander CLI: it detects the dev server port, starts createProxy (src/proxy.js) on a free port from 4444 and createWebSocketHub (src/websocket.js) on the next, debounces incoming changes for 1500 ms, and runs compressChanges before building the prompt with buildSyncPrompt (src/differ.js), which adds px-divided-by-4 Tailwind hints. src/proxy.js deletes accept-encoding, buffers text/html responses and injects the editor script before the closing body tag. src/mapper.js weights id 0.9, text 0.85, route 0.8, class 0.7. The reject handler in bin/moldui.js calls unlinkSync on payload.batchFile unchecked. package.json holds conflict markers inside dependencies. src/inject/editor.js caps its undo stack at 100 entries.
Observed
- License
- MIT
- Language
- JavaScript, ES modules, Node 20 or newer
- Install surface
- npx or global npm install; optional Claude Code plugin
- Interfaces
- CLI plus a browser overlay injected by a local HTTP proxy
- AI dependency
- Auto-apply shells out to the Claude Code CLI in headless mode
- Manifest state
- package.json on the default branch contains unresolved merge-conflict markers
- Local socket
- WebSocket server with no origin check; reject message deletes the named file path
Read from README.md, package.json, bin/moldui.js, src/index.js, src/proxy.js, src/mapper.js, src/differ.js, src/inject/editor.js, src/websocket.js, LICENSE.
What it can do
Edit UI elements through visual drag-and-drop interface
Mouse interactions (click, drag, resize) on UI components → Modified visual layout and component positioning
Generate code from visual UI modifications
Visual changes made through drag-and-drop editor → Updated source code written by Claude AI
Edit text content directly in browser
Text input typed directly on UI elements → Updated text content in both visual interface and underlying code
Resize UI components visually
Drag gestures on component resize handles → Resized components with corresponding code changes
Manipulate existing codebase through visual interface
Real application codebase and visual interactions → Modified source code files reflecting visual changes
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.