
The problem. When you build UI with a coding agent, design feedback happens in chat — and chat is lossy. "Make the hero feel less cramped" forces the agent to guess which element, which direction, how far. Screenshots and Figma links barely help: they're static, and nobody can point back at the exact element you mean. Teams burn cycles re-explaining visual intent in words, and the agent re-guesses on every round. The solution. Pikaso replaces the words with a pointer. Run `npx pikaso` and you get a pan-and-zoom board of live HTML mockups — real iframes, not screenshots. Click any element (a heading, a button, a price tag) and Pikaso pins a numbered comment to that element's stable CSS selector, capturing its box and viewport. Your agent never needs a screenshot: it reads annotations.json, sees exactly which element and what to change, edits that mockup's HTML in one batch, and marks each comment resolved. Live reload updates the right iframe instantly — no refresh, no re-upload. When the design feels right, one click on Lock freezes every decision into DESIGN-SPEC.md (per-frame purpose, token contract, resolved annotation history, final state) and emits the implementation prompt, so real implementation starts from evidence instead of memory. Who it's for and how they use it. Developers, designers, and small teams shipping UI with coding agents. The daily loop: create mockup frames → click to annotate → tell the agent "apply annotations" → watch the board update live → repeat → lock and hand off. What makes it different. First, feedback is selector-anchored, not pixel-anchored — pins survive refactors and resizes, and comments read like code (h1), which is exactly what an agent consumes best. Second, it's protocol-first: a universal AGENTS.md, builder rules, and a critic rubric let any agent harness take part, and a Design Council (Scout → Art Director → parallel Builders → Critics, one fix cycle) orchestrates multi-frame work. Third, it's zero-dependency: pure Node built-ins, npx pikaso, no database, no bundler, no account. Why it works. The annotate → apply → resolve → lock cycle runs end-to-end today: an annotation on a hero headline, a one-line token edit by the agent, live reload, resolution, and a locked spec. Batch-applying turns N comments into one edit cycle instead of N chat threads, and the locked spec means implementation never re-litigates design that's already decided.
27 Sep 2026