Spotnote is a Vite plugin for UI feedback to coding agents. Click any element in your running app, write what should change, and hand your agent its exact file, line and column. solo-demo.mp4 Features Exact spot. Your UI feedback points to the exact file, line and column in your source code, so your agent doesn't have to search for it. Any Vite framework. React, Vue, Svelte, Solid, Astro, and so on. Zero imports. Nothing to import in your app code. Production stays clean. Spotnote runs only in vite dev, and in staging builds you turn it on for. Everything is local. No account, no cloud. Requirements Vite 5 or later Node 22 or later Install Usage // vite.config.ts import spotnote from "spotnote"; export default defineConfig({ plugins: [react(), spotnote()], }); Start your dev server and click the launcher in the bottom-left corner. Click an element, type what should change and press Enter. The prompt is on your clipboard: paste it into Claude Code, Cursor, Codex or any chat. Output The prompt Spotnote copies for a note, ready to paste into your agent: ## Request Make the padding bigger ## Target - file: components/ProductCard.jsx - line: 7, column: 5 - used at: pages/Products.jsx:68 ( in Products) - element:
- text: "shoes Aero Runner $120" - instance: 1 of 12 rendered from this line (by DOM order) — target the one matching the text above ## Source path (outer → inner) App > Products > ProductCard ## Current computed styles padding: 16px margin: 0px color: rgb(26, 26, 26) background: rgba(0, 0, 0, 0) font-size: 16px font-weight: 400 border-radius: 12px Every field is explained in Prompt Format. MCP (local agent) Skip the copy and paste: your agent picks up notes as you write them. claude mcp add --scope user spotnote -- npx -y spotnote-mcp Then ask your agent: Watch my Spotnote notes. Codex, Cursor and Gemini CLI. demo.mp4 With MCP connected: click a button, ask for a pill shape, and Claude Code picks up the note, makes the change and replies on it. You never leave the browser. Staging builds Let designers and reviewers write notes on a staging or preview deploy, and paste them to your team: spotnote({ build: ["staging"] }) vite build --mode staging then includes Spotnote, and vite build still doesn't. Each prompt also names the commit the build was made from. See Staging Builds. staging-demo.mp4 On a staging build: the designer writes a note and pastes it to the team chat, and the developer's agent goes straight to the file and line. Webhook Send each note to a URL of yours as it's written: to post it to your team's chat or issue tracker, without the copy and paste. spotnote({ build: ["staging"], webhook: "https://feedback.example.com/spotnote" }) Each note arrives as JSON, with its text, page, file and line, commit, and prompt. See Webhook. demo-webhook.mp4 On a staging build with a webhook: press Enter, and the note lands in your team's chat, with its file and line. Docs Full documentation is here License MIT