Interactive HTML feedback loop for Claude Code agents. The agent opens an HTML file in your browser with an injected annotation layer. You click elements, select text, type a note, and hit Send. The agent gets your annotations back as JSON and iterates.
- The agent calls
node dist/cli.js open <file>. A local HTTP server starts (port 7429 by default, bound to 127.0.0.1). Your browser opens a review shell with the HTML in an iframe. - In the browser: hover to highlight elements, click to select one, select text to capture a quote. Type your feedback in the compose box and hit Send (or Cmd/Ctrl+Enter).
- The agent is blocked on
node dist/cli.js poll <file>. When you send, the poll returns JSON with your annotations. - The agent edits the HTML, saves it, the browser reloads automatically, and the loop continues.
/plugin marketplace add codewithagents/loupe/plugin install loupe@codewithagents- If prompted, run
/reload-pluginsto activate.
The skill is invoked as /loupe:loupe. Requires Node.js 18+ and has zero runtime dependencies.
For local development, launch Claude Code pointed at the repo directly:
claude --plugin-dir ./Terminal 1 (agent or you):
node dist/cli.js open /path/to/your/file.htmlTerminal 2 (agent or you):
node dist/cli.js poll /path/to/your/file.htmlWhen you hit Send in the browser, terminal 2 prints the JSON and exits.
To send a reply to the browser before polling again:
node dist/cli.js poll /path/to/your/file.html --reply "I've updated the layout."LOUPE_PORTenv var: override the default port (7429).--timeout <sec>: make poll return after N seconds even with no feedback.
- Node.js 18 or newer.
- Zero runtime npm dependencies.
MIT. See LICENSE.