Features #
Everything a human can do, an agent can do too — same schema, same threads.
Single element
Click any element to pin a comment. Captures a stable selector + forensic context.
Text selection
Highlight a span of text; the annotation anchors to the exact selection rect.
Multi-element
Group several elements into one annotation — the marker outlines every selected element, all pinned to the page as it scrolls.
Discussion threads
Each annotation is a Slack-style thread — humans and agents reply back and forth.
Agent push
Agents add annotations, reply, acknowledge, resolve, and move cursors via the API.
Live multi-cursor
Presence cursors glide in real time so you can watch agents work the page.
Modes #
A parent frame can read and drive the mode (handy for headless / CDP control).
| Mode | Behaviour |
|---|---|
view | Read-only. Pins + cursors render; the page is not capturing. |
feedback | Picking is live — hover highlights, click/select captures, composer opens. |
layout | Placement / rearrange capture for layout-mode annotations. |
Multi-cursor presence #
Mirror any number of actors onto the page. Each cursor glides to its new position.
window.__annotations.setCursors([
{ id: "cro", label: "CRO Expert", kind: "agent", x: 42, y: 300 },
{ id: "designer", label: "Designer", kind: "agent", x: 61, y: 980 },
]);
window.__annotations.removeCursor("cro"); // actor left
window.__annotations.clearCursors();