Screenshot Annotator

A screenshot pasted into an issue is only as useful as the reader's guess about where to look. Ring the row that renders twice, put an arrow on the 500, dim the rest with a highlighter, add a short label, and take away a PNG named after the file you started from. Reading, drawing and writing all happen in this tab.

All tools

Start with a screenshot

PNG, JPEG or WebP - dropped here, pasted with Ctrl+V, or picked below.

Everything runs in your browser. Nothing is uploaded.

Why a bare screenshot costs a round trip

Attach a full-page capture to an issue and the next message is almost always a question: which of these is the bug? Each of those exchanges costs a day when it crosses a time zone. A mark put where you were already looking makes the screenshot the answer instead of the prompt, and it takes about four seconds.

From capture to attachment

  1. Ctrl+V is usually enough, since the clipboard your capture tool just filled goes straight in. Dragging the file onto the panel, or picking it with the button, does the same job.
  2. Arrows, boxes and highlights are one drag across the image. A label is typed into the field first and then dropped with a click. Line weight is scaled to the file, so thin on a phone capture is not invisible on a retina one.
  3. Undo walks back a mark at a time and Remove all empties the image; the download arrives as the original filename with -annotated on the end.

Nothing is resampled on the way through

The canvas keeps the file's own width and height, and only its display size follows your window, so a mark lands on the real pixels rather than on a shrunken preview of them. Zoom into the saved PNG afterwards and the arrow has the same edges as the text underneath it. Very large captures are the one limit - beyond about sixteen million pixels in total the panel refuses the file rather than drawing something wrong.

What a network tab would show

Nothing, once the page itself has finished loading. The file is opened through a blob URL this tab mints for itself, the marks are composited in memory, and the PNG comes back out of the same canvas. No request from this page carries the image anywhere, which is a stronger statement than a promise not to look at it.

Start creating your next app now