Turn any folder of HTML into a Figma-style review canvas. Highlight, comment, hit ▶ Process — the page reloads with Claude's edits, highlighted and revertable.
git clone https://github.com/sid8491/html-feedback ~/.claude/skills/html-feedback
Highlight text or click an element on the page.
Send the batch to Claude with one button.
Page refreshes with every edit highlighted.
Undo any single edit, keep the rest intact.
Reviewing AI-generated HTML in a chat window is painful. You squint at a diff and type "the third paragraph is too long" hoping Claude finds the right one. html-feedback flips it around — you stay in the browser, comment on the rendered page, and Claude edits the source. Fast, visual, reversible.
Drop it into your Claude Code skills folder, or run it standalone. Python 3.10+, stdlib only — zero extra dependencies.
Then just say "start html feedback on ./pages" or run /html-feedback. Claude handles the rest.
git clone https://github.com/sid8491/html-feedback ~/.claude/skills/html-feedback
git clone https://github.com/sid8491/html-feedback "$env:USERPROFILE\.claude\skills\html-feedback"
2. Open Claude Code and type /html-feedback, or point it at a folder: "start html feedback on ./pages".
No Claude Code? You can still drive it manually. The server is plain Python — no dependencies.
git clone https://github.com/sid8491/html-feedback && cd html-feedback
python scripts/start.py --dir /path/to/your/html
The server binds to 127.0.0.1, prints a tokenized URL, and opens your browser.
Small, polished pieces that add up to a review surface that just works.
Highlight text, click an element, or attach a note to the whole page.
Every comment captures a screenshot of what you were looking at. Claude reads it and edits with visual context, not just source code.
Jump between HTML files from the sidebar. Per-page comment counts; a red dot tells you when work is pending elsewhere.
Queue a dozen comments and ship them to Claude with one ▶ Process click.
A floating pill shows Processing N/M… while Claude works through the batch.
Push back on an edit without losing the original comment's anchor.
Undo a single edit. Reverting one change never wipes out the others. Redo to bring it back.
Every change reloads with a yellow mark. Press j / k to step through.
Wipe processed comments in one click — the inbox stays focused on what's open.
Binds to 127.0.0.1, random per-session token, idle shutdown. Nothing leaves your machine.
Python 3.10 + stdlib. No pip install, no virtualenv dance, no surprises.
The browser writes comments to a JSONL inbox. Claude tails it. The server pushes events back the moment files change.
A tiny injected script adds a sidebar, selection toolbar, and walkthrough overlay to every page. Comments are anchored with selector + surrounding text so they survive edits.
A 127.0.0.1-only Python server appends comments to inbox.jsonl, hands snapshots to Claude, and streams change events back as Server-Sent Events so the page reloads instantly.
When you click ▶ Process, Claude reads the batch, locates each anchor, snapshots before+after, and edits the file with the smallest possible change. Patch diffs power the per-edit revert.
Anywhere a folder of generated HTML needs a hundred small edits, this is the loop.
No screenshots — these are CSS mockups. Same as what you'd see if you installed it right now.
Highlight any text — a pill appears next to your selection. A screenshot of the region is captured automatically.
Type your request. Send. Repeat for as many spots as you want.
Open the sidebar, review the batch, click ▶ Process. The 📄 Pages dropdown next to it jumps you to other HTML files.
A live pill tracks Claude's progress through the batch.
Page reloads, edits highlighted. Don't love one? Revert just that change.
*.html file once, so if you point it at hundreds of pages Claude will confirm before starting. Past a few hundred files, you'll want to point it at a sub-folder.127.0.0.1 only — never 0.0.0.0. There's no LAN access, no external calls, no telemetry. The only "cloud" component is Claude itself, which is doing the editing through your existing Claude Code session.feedback/.screenshots/<comment-id>.png next to your HTML files. Nothing leaves localhost. Claude Code reads them through its standard file-Read tool, same as any other file in your project.Processing N/M… for the current batch. Your new comments stay in the inbox marked open, and you ship them with the next ▶ Process click. The batch boundary is what you decide it is.~/.claude/skills/html-feedback) and run python scripts/inject.py remove --dir <your-folder> from a clone of the repo to strip the injected script tags. The feedback/ sub-folder in your target dir holds all comments and snapshots — keep it or trash it.inbox.jsonl until Claude is reachable again.One git clone. One slash command. A loop that actually feels good.
git clone https://github.com/sid8491/html-feedback ~/.claude/skills/html-feedback