Anyone clicks an element on your preview and leaves feedback. Every comment captures the exact DOM context, so your AI coding agent reads it, edits the source, and resolves the thread. No screenshots. No "which button?".
Sara · Design
This CTA should read "Start free" and use the brand purple, not blue.
Claude Code
Updated Hero.tsx — label now "Start free", variant set to purple. Marking resolved.
Works with your agent
The loop
Feedback stops being a screenshot in a Slack thread and becomes a task your agent can actually close.
Embed the widget
One script tag on any preview, staging, or demo. Also ships as React and Vue components. No app rebuild, no reviewer login.
Reviewers click & comment
Anyone points at a real element and leaves a threaded comment. Pins appear inline. Everything syncs live over the room.
The agent reads the context
Over MCP or the CLI, your coding agent pulls the full thread — selector path, quoted text, component metadata — and jumps to the source file.
Fix & resolve
The agent edits the code, replies with a summary, and marks the thread resolved. Reviewers watch it update in real time.
One thread
Humans and agents work the same thread, in real time, without stepping on each other.
Reviewers
PM · Design · QA · Clients
Point at any element and type. No account, no screenshots, no "which button?". Pins land exactly where the feedback belongs.
Operators
Product owners · Leads
Triage every thread in one cross-project inbox. Move each from Open → Discussed → Resolved, reply directly, and never lose a piece of feedback.
AI agents
Claude Code · Codex · Cursor · Gemini
Read, reply, and resolve threads over MCP or CLI. Every reply is attributed by agent name, so the audit trail stays honest.
Agent-native
Every comment is captured as machine-readable context — enough for an agent to jump straight to the source file instead of guessing from a screenshot.
MCP server
Your agent reads and closes threads with a handful of tools:
list_comment_threadsget_comment_threadlist_review_pagesreply_to_comment_threadresolve_comment_threadget_install_command CLI context packs
Export open threads into a ready-to-run pack — brief.md, threads.json, resolved context, and agent prompts. Reviewer text is safely fenced as untrusted input.
Install in minutes
A script tag on your preview, a component in your app, or an MCP entry in your agent. Pick one.
<script
src="https://cdn.jsdelivr.net/npm/@magic-comment/widget/dist/magic-comment.global.js"
data-project-id="my-project"
data-server-url="wss://comments.example.com"
data-api-key="pk_live_..."
data-review-id="preview"
></script> Vue component and vanilla bundle also available.
Stay on top of it
The dashboard rolls every project into a single inbox. Filter by status, reply as an operator, and move threads through their lifecycle. Email and Slack keep the right people looped in.
Built for teams
Magic-link auth
No passwords. Rate-limited sign-in by email and IP.
Scoped keys
Publishable pk_ keys for the browser, secret sk_ keys for agents and servers.
Origin allowlists
Lock a widget to your exact domains. Empty means open, non-empty means strict.
Untrusted by default
Reviewer text is fenced as untrusted input inside every agent prompt and context pack.
Your infrastructure
Collab server, control plane, and Postgres — self-hostable, real-time on your own stack.
Notifications you control
Per-project email and Slack alerts, debounced so one thread never spams the channel.
Pricing
Scale up when you add projects and teammates.
Free
$0 forever
For a single app and a solo reviewer.
Pro
$19 /mo
For a product team shipping across projects.
Team
$49 /mo
For agencies and multi-team orgs.
Early access — pricing shown is indicative and finalized at launch.
Point at the page. Let your agent do the rest.