Chrome Extension for Developers

Annotate any web element. For those who who paste a lot into AI agents.

Alt + Right-Click any element on a website to leave an annotation. Export annotations as a clean, structured Markdown payload that pastes straight into any AI tool (Cursor, Claude, ChatGPT, etc.). Your AI agent gets all of the context it needs: a stable selector, the element text, your note, and the URL; no screenshots required.

  • No telemetry
  • Manifest V3
  • Works offline
  • MIT licensed
Alt + Right-Click annotate any element
Portable Markdown paste into any AI — Cursor, Claude, ChatGPT
No lock-in switch models without reformatting
Local-first no servers, no analytics

How it works

  1. 1

    Open the page you are reviewing

    Any http or https site works — staging, production, localhost, a competitor's landing page. The extension does nothing until you actively annotate.

  2. 2

    Alt + Right-Click any element (default)

    An inline panel opens. Type a note and press Esc or click outside to save — empty notes are auto-discarded. Hold the modifier and click extra elements to attach them to the same note. Change the modifier (Alt / Shift / Ctrl / Meta / none) under Settings → Shortcuts.

  3. 3

    Review and edit in the popup

    Open the popup with the toolbar icon or Alt + Shift + A. Annotations are grouped by page URL. Edit notes inline, search within the active panel, click any pink selector or blue URL header to jump back to that element on the page, and use ↰ / ↱ in the header for multi-step Undo/Redo.

  4. 4

    Copy or cut Markdown, paste into your AI tool

    Use Copy All to put a clean Markdown payload on your clipboard while keeping your notes. Use Cut All (right-click the copy button by default) when you want the list cleared after export. Paste into Cursor, Claude, ChatGPT, Copilot, or v0. The agent ships the PR.

cut-as-markdown.md
## https://example.com/dashboard

1. `button#submit-btn`
   - Make this button larger and change color to green
   - Add a loading state while the request is pending
   - _"Submit"_
   - https://example.com/dashboard

2. `div.sidebar` | `body/div[2]/div[1]`
   - Reduce width to 200px and add a top border
   - _"Navigation Settings Billing"_
   - https://example.com/dashboard

3. `header nav a[href="/pricing"]`
   - Wrong active state on this link
   - _"Pricing"_
   - https://example.com/dashboard

Built for the AI coding workflow

Stop screenshotting. Stop copying CSS selectors by hand. Click elements, type notes, paste a clean payload into your AI agent, ship the PR.

Why plain Markdown?

Pick any model. Switch any time. Notes stay local and export as plain text — paste into Cursor, Claude, ChatGPT, whatever ships next.

  • Portable — works in every AI tool
  • Local-first — no servers, no telemetry
  • No lock-in — switch models without reformatting
  • No UI tax — you control where context lands

Stable selectors

Every annotation captures tag, ID, classes, XPath, the URL, and a snippet of the clicked element's text, so your AI tool can locate the element without ambiguity.

Unlimited annotations

Annotations are grouped by page URL in the popup. Add as many as you want. Premium users can attach multiple notes to a single annotation (one or more elements).

Multi-element annotations

While the inline edit panel is open, hold your modifier (default Alt) and click other elements to attach them as extra selector context on the same note — great for “align this with that” style feedback.

Inline editing

Edit any note directly in the popup. Auto-expanding textboxes save as you type. Per-row delete moves notes to History instead of erasing them.

Export as Markdown

By default, Copy All copies a clean Markdown bundle without clearing your list. Right-click the same button for Cut All (copy and clear). You can remap both footer buttons in Settings.

Multi-step Undo / Redo

The popup header has ↰ and ↱ buttons that walk back through recent storage changes — restore deleted notes, reverse edits, or roll back a Clear All without leaving the popup.

History & Save for Later

Deleted annotations are kept with timestamps (subject to per-tab history limits in Settings). Right-click Clear All to Save for Later instead — stash the current list as a named set you can restore from History.

Copy log

Every export event is logged with a full output preview, so you can see exactly what you sent to your AI agent and re-copy any past payload.

Search the current view

Hit ⌘ or Ctrl + F (or the search icon) to find text in the panel you are looking at: the current annotation list, History, Saved for Later, the Copy Log, or Settings.

Click to navigate

Click a pink selector or a blue URL group to jump straight to the annotated element on the page. The annotation panel opens automatically.

Undo, not confirm

The main Clear All action shows a 5 second undo banner instead of a confirmation dialog. Clearing a single URL group still asks once, so you do not wipe part of a page by accident.

Auto backup

Chrome Sync mirror plus a local in-browser snapshot about every 15 minutes. No download prompts. Auto-Backup is on by default; turn it off in Settings to stop syncing to your Google account (data stays on this device; a local snapshot still refreshes for recovery on this install).

Pricing

Free forever for the core workflow. One-time Premium unlocks a polished dark theme, custom prepend/append export text, and multiple notes per element.

Free

$0

All the essentials, forever

  • Modifier + Right-Click annotation (default Alt)
  • Open popup with Alt + Shift + A (customizable in chrome://extensions/shortcuts)
  • Unlimited annotations grouped by URL
  • Multi-element annotations (modifier + click while editing)
  • Markdown export: Copy All by default; Cut All on right-click
  • Inline editing with auto-save
  • Multi-step Undo / Redo in the popup header
  • History view with restore
  • Save for Later (right-click Clear All) with restore from History
  • Copy Log of every export event
  • Search across the active panel (notes, history, saved sets, copy log, settings)
  • Undo banner on Clear All / Cut All / Save for Later (footer)
  • Auto backup to chrome.storage.sync (on by default; off in Settings stops the sync mirror; data stays on this device)
Install free

Leave a tip

If the free version saves you time and you want to say thanks, you can leave an optional tip. Choose any amount you like (minimum $0.50). Tips are completely voluntary and do not unlock any extra features. The free tier already includes everything most developers need.

Leave a tip

Frequently asked questions

Does the extension send my data anywhere?

No annotation data is sent to an app server. There is no analytics and no telemetry. Annotations live in chrome.storage.local on your device. Auto-Backup mirrors a compressed bundle into chrome.storage.sync (on by default; disable in Settings to stop syncing to your Google account while keeping data on this device). Google encrypts Sync data in transit and at rest. Premium checkout and license delivery use Stripe plus the project's Cloudflare Worker; the extension itself never calls the Worker — license keys are verified locally.

What does it read from the page?

Only when you actively annotate, it computes a stable CSS selector and captures up to 240 characters of the primary element's text. If you add companion elements to the same annotation (modifier + click while the edit panel is open), each stores up to 120 characters. It does not read passwords, form values, cookies, or storage.

Is Premium a subscription?

No. Premium is a one-time $9.99 purchase. Your license key works forever, no recurring charges.

How do I activate Premium?

Click Get Premium and complete the $9.99 Stripe checkout. You'll be redirected to a success page that shows your license key with a copy button. The same key is also in your Stripe receipt email under “License key:”. Open the extension popup, click the gear icon, paste your key in the Premium section, and click Activate.

Which AI tools does it work with?

Any AI tool that reads Markdown. The export format is tuned for Cursor, Claude, ChatGPT, GitHub Copilot Chat, and v0, but works with any model.

What if I delete something by accident?

Almost everything is recoverable. Per-row deletes move the annotation to History (open it with the 🕐 icon and click + to restore). The Clear All / Cut All / Save for Later actions show a 5-second Undo banner before they finalize. The popup header also has multi-step Undo/Redo for recent storage changes.

Are there any limitations?

Yes. Annotations live in the top frame, so elements inside iframes (Stripe Checkout, Calendly, YouTube embeds, etc.) attach to the iframe container. Closed shadow roots cannot be pierced. The extension runs on http and https URLs only, not file:// or chrome:// pages.

Where is my data stored?

Locally in chrome.storage.local: annotations, history, copy log, settings, saved-for-later sets, and your license key. When Auto-Backup is on (default), a compressed snapshot is also mirrored to chrome.storage.sync so a fresh Chrome install signed in to the same Google Account can restore your work.

Stop screenshotting. Start shipping.

Install the free extension, or unlock Premium for $9.99.