Eighteen annotation tools. All of them run on this page.
Screenshot annotation in the desktop app, in the browser extension or on the web. The editor below is that same file, served here unchanged.
It stores nothing, and says so.
Redact something here, then look inside the file
What is below is not a picture of the editor. It is the same file the desktop app and the browser extension run, served here unchanged in a frame, so all 18 tools work, undo works, and the dialog quoted further down this page really does stop you on the way out.
The picture loaded into it is a real capture of the SnapBuddy recorder window. Nothing on this page is invented, including the thing you are about to cover up.
- Choose Redact. It is in the amber Hide group, with Blur and Pixelate.
- Drag a box across the Source row at the top of the picture.
- Press Save annotation.
- The file the editor wrote comes back below it, and the region you covered is read out of that file pixel by pixel.
All of it happens in this tab. Nothing is uploaded, nothing is stored, and reloading the page loses whatever you drew.

The editor runs in JavaScript, so it is not on this page without it. Everything it demonstrates is written above, and the desktop app runs the same editor with no browser involved.
Annotate
Eighteen tools.
Three of them
really delete.
Arrows, boxes, step numbers and text, grouped by what they do to your image. On a still image, redact, blur and pixelate destroy the pixels underneath rather than painting over them.
- One engine, mirrored to the extension and the web
- PNG, JPEG or WebP, named before you save
A screen reader hears the same groups you see
All 18, by name. Mark, Hide (privacy), Sequence and Frame are real groups carrying their own labels, and Move belongs to none of them.
Move
1Pick up a mark you already placed and drag it somewhere else. The only tool here that does not draw.
- Move
Mark
9Point at the thing. Nine ways to draw a shape, a highlight or a label over the capture. Spotlight is here rather than below because it dims the picture around a region and removes nothing: it is not a lighter redaction, and the toolbar does not let it look like one.
- Box
- Filled box
- Ellipse
- Line
- Arrow
- Arrow + Text
- Highlight
- Spotlight
- Text
Hide (privacy)
3The three with consequences, which is why the toolbar gives them their own outlined band rather than a place in the row.
- Redact
- Blur
- Pixelate
Sequence
1Numbered discs, in the order you place them, for a report that has to be followed rather than read.
- Step number
Frame
4The four that change the picture itself rather than draw on it. Crop to a region, turn or straighten, pad the edges with a coloured background, or scale the whole thing. Marks already on the picture move with it, so what was circled is still circled.
- Crop
- Rotate
- Background
- Resize
Around them: seven preset colours and the native picker as an eighth, a hex field, a size range, and Undo, Redo and Clear. Undo and redo take their keyboard shortcuts, and Copy image copies the flattened canvas without leaving the editor.
On a screenshot, redaction removes the pixels
Redact, blur and pixelate destroy the pixels underneath. The covered content is gone from the image rather than painted over it. Marks are baked into the picture when you save, and kept as data at the same time, so the markdown export can describe what was circled as percentages of the frame.
On a recording the same marks are overlays, drawn at playback time. The pixels they cover are still in the file. The product is loud about it rather than quiet: the markdown export carries the warning in bold, and it withholds the positions of those shapes, so the document cannot be read as a map of what was hidden.
The redactions on this recording are not real.
Burn in is the way to hand the file over. On the desktop it writes a separate annotated copy with the shapes baked in and the effects applied to the footage, and the card keeps pointing at the original take. In the browser extension the player carries that warning permanently, under the video, where somebody about to send the file will read it.

Three copies of the editor, and drift between them fails the build
The editor is a single file. A build script mirrors it into the browser extension and into the web app, and a check compares all three on every run. A mark behaves the same wherever you draw it, because it is the same code drawing it.
The desktop splits the editor chrome across three bars and the extension keeps one. That is host markup, not a second engine: the shared file shows and hides chrome by class rather than by name, so one implementation wears two layouts and neither is a port of the other.
The third copy runs on the web, in a frame, which is what /annotate puts in front of you with no account and no install.
Cut the middle out and the marks stay on their own frames
On a recording, Annotate here stamps a mark with a three second window at the playhead. Every mark gets a row beside the player carrying its colour, its type and its window, and in, out and always buttons to retime it. That list is how you choose where a mark appears and how long it lasts.
Trim the recording afterwards and the windows move with the footage. Annotations and markers stay on the frames they were drawn on instead of drifting by the length of the cut, on both trim outcomes. The default outcome saves a new card and leaves the original take alone.
It remembers, and it asks before it forgets
The file name and the format, PNG, JPEG or WebP, are chosen in the editor top bar and persist on the card, so Save files, Save as and auto save all write the same thing. Type the extension yourself and it is stripped: a file named shot.png does not become shot.png.png.
Close the editor with unsaved marks and a dialog stops you first:
Keep your annotations? Closing without saving discards everything you drew on this capture.
Cancel, Discard, Save annotation, with Save focused, so a blind Enter keeps your work. It is a real dialog and it behaves like one: announced to screen readers, focus trapped inside it while it is up, and focus returned to where you were when it closes.
Reload it and your marks are gone. Nothing was stored to lose.
The web copy of the editor runs unmodified in a frame. Pick an image, mark it up, and the result comes back in the page. That route stores nothing, and says so on the page itself.