A Chrome extension · by Virgil · since 2024

Snap to the element.
Annotate in place.

Most screenshot tools make you draw rectangles by hand and never quite line them up with the button you meant to highlight. This one reads the page's DOM and generates a clean shape fitted to the real bounds of whatever you hover. One click. Pixel-perfect.

The Screenshot Annotation editor snapping a rectangle to a button on a webpage
the actual editor — annotations snap to the DOM element under the cursor

I write a lot of bug reports and product feedback. Every time, the workflow was the same: take a screenshot, paste it into an editor, carefully draw a rectangle around the button I wanted to highlight, realise it's a few pixels off, undo, redraw, redo. Repeat for every annotation on every screenshot.

The rectangles never quite lined up with the actual UI element. Edges were fuzzy. Circles looked hand-drawn — because they were.

So I built this. When you hover an element, the extension reads its getBoundingClientRect and generates a clean annotation fitted to those exact bounds. No hand-drawing, no undo-redo.

V Virgil, building this since 2024. Read my roadmap or email me.

Beyond element-snapping, the extension has the usual annotation toolkit plus a few things I missed in other tools.

  • Twelve annotation tools

    Rectangle, ellipse, line, arrow (auto-straightens), highlight marker, text with font control, numbered steps that auto-renumber, stamps, mosaic and zoom-in-place.

  • Zoom-in-place callouts

    Select a region — the tool auto-trims empty margins and magnifies the content in place. Useful for tutorials highlighting a tiny UI detail.

  • Mosaic & redaction

    Pixelate, blur or black-bar any region to redact passwords, API keys, emails or faces.

  • Text extraction

    Pull readable text from any screenshot to your clipboard in one click. The text comes from the live DOM, not an OCR pass — so it's exact, not approximate.

  • PNG / JPG / PDF + auto-copy

    Download in three formats, add background presets, customise padding and rounded corners. When you close the editor, the result is already on your clipboard.

  1. i

    Capture

    Press Alt+A for the visible area, Alt+C to drag a region, or right-click the page and choose Free region capture.

  2. ii

    Annotate

    The editor opens in-place on the page — no new tab, no leaving your workflow. Hover any element to highlight it, click to drop a fitted shape. Or draw freely on empty space.

  3. iii

    Export

    Close the editor — the result is already on your clipboard. Or download as PNG, JPG or PDF.

An honest side-by-side. Other tools are good — this one just does element-snapping, which they don't.

Screenshot Annotation Lightshot Awesome Screenshot Snagit
Snap to real DOM elements Yes — core Hand-drawn Hand-drawn Hand-drawn
In-page editor Yes Desktop app New tab Desktop app
Text extraction Yes (DOM) Yes (OCR)
Zoom-in-place Yes Manual
Numbered auto-renumber Yes Manual
Free Fully Free Freemium $49.99+
No tracking / analytics Zero requests Has analytics Has analytics Has analytics
Full-page capture On roadmap Yes Yes
Video recording Not planned Yes Yes

Reflects features on each tool's site as of August 2026. Email me if anything's inaccurate.

Browser
Chrome MV3 · also Edge, Brave, Arc
Operating system
Win / macOS / Linux / ChromeOS
Package size
316 KB
Permissions
activeTab · scripting · storage · unlimitedStorage · contextMenus
Network requests
0
Languages
English · 中文
Capture shortcuts
Alt+A (visible) · Alt+C (region)
Min Chrome
88+

See privacy policy for what each permission does — and what the extension does not do.

Is it really free? What's the catch?

Yes. No paid tiers, no premium version, no in-app purchases, no account. I built this for myself and pay $0/month to run it — there's no backend.

Does it send my screenshots anywhere?

No. The extension makes zero network requests. Everything happens locally; screenshots never leave your device. You can verify this yourself in the network tab during a capture.

Why does it need those permissions?

Five permissions, all scoped to the screenshot flow: activeTab captures the tab, scripting reads element positions, storage remembers your preferences, unlimitedStorage handles high-DPI screenshots that exceed Chrome's 5 MB default, and contextMenus adds the right-click "Free region capture" item. No history, no cookies, no webRequest.

Does it work in Edge, Brave or Arc?

Yes — any Chromium browser that supports Chrome extensions. Install directly from the Chrome Web Store.

Mac and Windows?

Both. On macOS, Option (⌥) replaces Alt in the shortcuts.

Why doesn't it work on chrome:// pages?

Chrome blocks all extensions from its internal pages (chrome://, the Web Store, settings). This is a platform limit, not a bug.

Can it capture full pages or scroll?

Not yet. Currently it captures the visible viewport or a dragged region. Full-page capture is on the roadmap.

How do I report a bug?

Email virgil1126@gmail.com. I read everything and usually reply within 48 hours.

What's done, what's coming, and what this extension won't do — even if you ask.

Done

  • Multi-format export (PNG / JPG / PDF)
  • Text extraction from DOM
  • Bilingual UI (English + 中文)
  • Auto-copy on editor close
  • Origin validation for security

Next

  • Full-page / scrolling capture
  • Delayed capture (countdown timer)
  • More languages (Spanish, Japanese, German)
  • Custom keyboard shortcut remapping

Maybe

  • ?Cloud sync of preferences (opt-in only)
  • ?Annotation templates
  • ?Team shared color palettes

Won't do

  • Video / screen recording
  • Account system
  • Paid tiers or in-app purchases
  • Telemetry or usage analytics

Virgil

independent developer · single maintainer

I'm a software engineer who got tired of hand-drawing screenshot annotations. This is the tool I wished existed — small, fast, private, focused on one job.

Not a company. Not VC-funded. No team, no roadmap meetings, no growth team. Just me, fixing bugs and shipping updates when something needs fixing.

X / Twitter @virgil_dean94
Building since 2024