For Claude Code, Codex, OpenCode, Mistral Vibe and Gemini CLI

Point at it. Your coding agent gets the rest.

annotaitr opens an image, a web page, a video, a PDF or a Markdown file in your browser. You mark it up. The agent receives numbered, structured feedback it can act on, instead of pixel coordinates and line numbers you typed by hand.

$ curl -fsSL https://konradmichalik.github.io/annotaitr/install.sh | bash
annotaitr reviewing a PDF: numbered marks on the page, a dock of tools at the bottom and a feedback panel with four notes on the right

An agent can read your code. It cannot see your page.

Saying "this, right here" is easy for you and impossible for a model. annotaitr closes that gap in three steps.

1

The agent opens it

When the agent has something for you to judge, it calls annotaitr. Your browser opens with the screenshot, page, recording, PDF or document.

2

You mark it up

Draw boxes and arrows, drop pins, select text, or pick an element straight off a captured page. Add a comment where it helps.

3

It acts on your notes

The agent gets each note with its number, your words and position, and reopens the annotator for another round until you approve.

From a mark to a line the agent can use.

Draw a box, type what you mean. Each mark becomes a numbered note, and each note becomes a line in the agent's feedback.

Simple pricing for every team Start free, upgrade when you need more seats. Starter $0 Team $24 Enterprise Custom Frequently asked 1 2
Feedback
1CommentBox Highlight is too loud next to the hero.
2CommentArrow Is the FAQ still loaded lazily?
2 annotations on the screenshot.### 1. Boxed area: center Highlight is too loud next to the hero.### 2. Arrow: bottom right Is the FAQ still loaded lazily?

Mark it, type what you mean.

No type to pick before you write. Change this, add that, why is it like this: the agent reads it from your words. Only a removal is its own kind, so a cut is never mistaken for a comment.

1Comment

Select, start typing, ⌘↵. A fix, an addition or a question, all in your own words.

2Remove

Press ⌫ before typing and the selection is struck out for the agent to take out.

Colours tell notes apart

Each note takes the next of four colours, so neighbours never look alike. Mark and card share number and colour.

One annotator for everything you review.

The mode is detected from what you open, and before a commit the agent walks you through its changes. Tools, notes and the decision work the same way in all of them.

Web page capture with the Element tool outlining a section and its selector

Web pages

Capture any URL at a chosen viewport. The Element tool picks a part of the page straight off the screenshot, and the feedback names the element so the agent finds it in the source.

A video on a timeline with note markers, a cluster of two close notes and two overlapping spans

Videos and GIFs

Annotate a screen recording as single moments or spans. The agent gets each annotated frame, a strip per span and an overview.

A Markdown review with a Files overview, numbered highlights in the text and notes in the panel

Markdown and plain text

Select text and type a comment, or strike it out for removal. Review several files in one session, with a Files overview that shows what you have read. Mermaid, PlantUML and math are annotatable as a whole.

An image in the dark theme with a note being written in the composer

Images, screenshots and PDFs

Boxes, arrows, freehand, highlighter and numbered pins on a screenshot, the clipboard or a PDF page. Light and dark theme, with marks that stay readable on any image.

A changes walkthrough laid out like a pull request: changed files as a tree, the agent's overview with its commits and proposed commit message, and a file card with a question on a diff line

Changes before a commit

The agent presents its uncommitted changes, or a whole branch against its base, laid out like a pull request: an overview with the proposed commit message, the changed files as a tree and one card per file with the agent's explanation. A note on a diff line names the file and its line. Approve, and the agent commits.

The agent gets a list, not a screenshot to squint at.

Your notes arrive as text, each with its number, your words and a plain-language position. The marked-up image is saved next to it, so the agent can match both.

Approve with nothing to change, or approve with notes that are only context. The agent knows the difference.

what the agent reads
2 annotations on the screenshot.

### 1. [#a3f19c2e] Boxed area: top left
Make the title shorter.

### 3. [#7b210e44] Comment pin: bottom right
Are refunds net or gross?

Install it where your agent lives.

Needs Node.js 22.13 or newer. Web page capture also needs a Chromium build for Playwright: npx playwright install chromium.

Claude Code

Everything: images, web pages, video, PDF, Markdown and the changes walkthrough. The installer script sets it up, or add the plugin by hand.

Setup steps

Codex

Every target kind. Drives the standalone CLI, so install that too.

Setup steps

OpenCode

Markdown for now. Add it to opencode.json.

Setup steps

Mistral Vibe

Markdown for now. Drives the standalone CLI, so install that too.

Setup steps

Gemini CLI

One target per call, no flags, untested. Drives the standalone CLI.

Setup steps

Standalone CLI

Use it by hand or from any script.

Setup steps

Runs on your machine.

annotaitr serves its UI from localhost and prints your decision to the terminal that started it. Its fonts are bundled, there is no tracking and no account.

Star it on GitHub