Guide

How to use Anynotate

Every step from install to a finished change, with screenshots. Click any picture to see it full size.

Install

  1. Install the bridge, a small helper that runs on your computer. Paste one line into a terminal (macOS, or Linux Beta):
    curl -fsSL https://github.com/genexk/anynotate/releases/latest/download/install.sh | sh
    On Windows Beta, in PowerShell:
    irm https://github.com/genexk/anynotate/releases/latest/download/install.ps1 | iex
    Using Claude Desktop, Cursor or Codex? The installer connects them automatically; restart the app. To add one later, see step 10.
  2. Add the Anynotate extension from the Chrome Web Store. It works in Chrome, Edge, Brave and Chromium.
  3. The extension opens a welcome page. When it says Connected, you are ready.
The Anynotate welcome page: a green dot by Connected and a three-step tour: press Alt+Shift+A, select text or pick an element, choose a session and press Send. Below it: Using Claude Desktop, Cursor or Codex? Restart it after installing; the bridge connects it automatically.
The welcome page finds the bridge by itself.

Use herdr? herdr plugin install genexk/anynotate/integrations/herdr installs the bridge too, and adds the inbox popup.

Make your first note

  1. Open any page and press Alt+Shift+A (⌥⇧A on a Mac), or click the Anynotate icon and choose Annotate this page. The Anynotate panel opens in the corner.
  2. Select some text. A note box opens under it.
  3. Write what you want done, then press Save (or Ctrl+Enter, ⌘Enter on a Mac).

Shortcut does nothing? Chrome may have left it unset. Set it at chrome://extensions/shortcuts; see A keyboard shortcut does nothing.

From the keyboard: select text with Shift and the arrow keys (caret browsing, F7); the note box opens when you let go of Shift.

A tomato soup recipe page on example.com with the Anynotate panel open in the bottom right corner. The panel is empty and says: Select text or pick an element to add a note.
Annotate mode is on: the panel waits for your first note.
The phrase 'Roast the tomatoes with a little olive oil' is selected and a note box below it reads 'Say what temperature to roast at', with three intent icons and Cancel and Save buttons.
Select text, write a note, save.

Pick elements

For a button, an image or a whole block, pick the element instead of selecting text. Your agent gets its HTML and a crop of what it looks like.

  1. Click the crosshair in the panel, or press Alt+Shift+E. You can also hold Alt and click.
  2. Move over the page: an outline and a label show what you would pick.
  3. Click it and write your note.
The crosshair in the panel is pressed. The Print recipe button has a blue outline and a dark label above it reads main › div.actions › button#print.
The outline and label show the element under the pointer.

Elements inside open shadow roots can be picked too.

Frames

  • Frames from the same site work like the rest of the page.
  • A frame from another site, such as an AI chat artifact or an embedded tool, is picked as a whole. The panel shows Content here comes from that site with Allow and Not now; press Allow and Chrome asks you to approve the site. After that you can select text, pick elements and draw regions inside its frames.
  • One Allow covers every claude.ai artifact.
  • Allowed sites are listed in the options under Frames from other sites, each with Remove.
  • Payment forms from card providers are never entered.

Mark a region

For something that is not its own element, such as part of a chart, a canvas, a corner of an image or a patch of blank space, draw a box around it.

  1. Turn on the picker: click the crosshair in the panel, or press Alt+Shift+E (⌥⇧E on a Mac).
  2. Press and drag over the area. A dashed box follows the pointer; Esc cancels it. A plain click still picks the whole element.
  3. Let go and write your note.
The crosshair in the panel is pressed and a dashed blue box is being dragged over the red tomato in the recipe's picture.
Drag in the picker to draw a box.
The panel with one note: Region 200×100 on <div>, Make this tomato a deeper red.
The note's row names the region.

The note belongs to the element under the box, and the box stays on the page with its number. Your agent's README gets a line such as Region: 200×100 at (360, 246) on <div#hero> · see crops/A1.png, and the note's crop is just the box.

Pages that draw their content on a canvas, like charts and maps, have no text to select. Click one and the panel suggests dragging a region.

The recipe page with a numbered box around the red tomato in its picture, and the panel listing the note Region 200×100 on <div>: Make this tomato a deeper red.
A saved region note: numbered on the page and in the panel.

Tag intent

Three icons under the note say what kind of answer you want. Tagging is optional; click a pressed icon again to clear it.

Close-up of the note box: the comment 'Say what temperature to roast at', and the Request change icon pressed between the Explain and Approve icons.
Here the note asks for a change.
  • Explain — you have a question; the agent should answer, not edit.
  • Request change — the agent should change this.
  • Approve — this is right; leave it alone.

Edit and delete

Every note gets a number on the page and a row in the panel, and stays there until you send it, even if you close the tab.

  1. To change a note, click its highlight on the page or the pencil in its row. The note box opens with your text.
  2. To remove a note, click the bin in its row.
  3. Optionally, add an overall note for the whole page in the box under the list.

Pages that change

  • Notes stay attached through live values (an age like 36s, a counter), re-rendered lists and hash routes.
  • A note that is off screen, or in a view that isn't showing, gets a Scroll to button in its row. If it still can't be found, choose Keep or Mark orphaned.
  • Off-screen and orphaned notes are still sent, with the crop taken when you made them, marked Not on the page when sent.
  • When a page's address changes, the panel offers notes made on another path that match it: N notes from /path match this page, with Show here and Not now.
The recipe page with two highlighted phrases and the Print recipe button numbered 1 to 3. The panel lists the three notes with pencil and bin icons, an overall note and a session picker set to claude · recipes · soup.
Numbered notes on the page and in the panel. Highlights stay readable on light and dark pages.
Note 1 is selected: its highlight is underlined, its row in the panel is marked, and the note box under it shows the saved comment ready to edit.
Clicking a highlight reopens its note.

Send to an agent

  1. Choose where the notes go in the session picker at the bottom of the panel. Each session reads workspace · agent · folder · title, and a line under the picker says how the one you chose gets the notes. The ↻ button refreshes the list.
  2. Press Send (or Alt+Shift+S to send to the last place you used). The panel shows a spinner while it captures the page and hands it to the bridge.
  3. The line under Send tells you when your agent has the notes, and shows ✓ with the agent's summary once it marks them done.
The panel with three notes and its session picker open. First Inbox · any agent can read it; then under Sessions: kitchen · claude · recipes · soup (selected), store · codex · shop · pricing, claude · Claude app · weekend trip ⏳ and claude · recipes · plan the menu ⏳. The line under the picker reads Typed into the pane now.
Pick a session.
The panel while sending: each note row shows a spinner and the button reads Sending…
Sending.
The panel after sending: the notes are gone and the status line reads 'delivered · typed into claude · recipes · soup'.
Delivered.
In the pickerWhat happens
⚡ pushA session connected live to the bridge gets the notes right away.
SessionsHerdr panes and sessions outside herdr, in one list. Any agent in a herdr pane gets the notes typed into the pane as soon as it is idle; the pane's herdr workspace leads its name.
… ⏳A Claude Code or Codex session outside herdr: the notes arrive with your next message in that session. Claude app marks a session in the Claude desktop app.
📥 InboxOne inbox for any agent or app: it reads the notes when you ask, with /annotations, anynotate annotations latest or over MCP.

The hint under the picker for each choice:

ChoiceHint
herdr paneTyped into the pane now.
⚡ pushPushed into the session now.
… ⏳⏳ Arrives with your next message in that session.
📥 InboxAny agent reads it with /annotations or MCP.

What the agent sees

Each send becomes a folder in ~/.anynotate/inbox/. The agent is pointed at its README.md: your notes in order, with the quoted text or element, your intent and comment. Next to it are the page as text, a screenshot with the numbered markers, and a crop for each note.

Illustration of an agent session in a terminal: the prompt 'Browser notes waiting: read ~/.anynotate/inbox/…/README.md and act on them.' followed by the agent's reply working through the three notes and marking the bundle as read.
Illustration: the agent gets one line pointing at the notes, and works through them.
The README of a bundle shown in the Anynotate inbox: the page title and address, the overall note, then note A1 with its quote, comment, crop and selector.
The README your agent reads, here opened in the inbox.

Use the herdr inbox

The inbox lists everything you have sent, newest first, with where it went and whether the agent has read it. Open it with anynotate inbox in any terminal, or as a popup in herdr with the plugin (bind it to a key such as prefix i; see the plugin's key bindings).

The Anynotate inbox in a terminal: five bundles with status queued, delivered or read, their age, note count, target such as claude · w1:p2, and the page title.
Status, age, number of notes, target and page for each bundle.
KeyDoes
↑ ↓ or k jMove
EnterRead the bundle's README
sSend the bundle to a herdr agent pane
dDelete the bundle (asks first)
aShow or hide archived bundles
rRefresh
?Help
q or EscBack, or quit
The inbox asking which agent pane to send a bundle to, listing three herdr panes with their agent, status, pane id, title and folder.
s sends a bundle to any agent pane.
The inbox asking: Delete “Onboarding docs – Getting started”? This removes its folder. y/n
d deletes, after you confirm.
The inbox help screen listing every key.
? shows every key.

Use with Claude Desktop, Codex or Cursor

Apps read your notes through anynotate mcp, a local MCP server that never goes online. It works in Claude Desktop (chat and Cowork), Cursor, Codex and Claude Code. The installer adds it to the apps it finds; use these steps to add one later or to check.

  1. See which apps Anynotate finds. Nothing is changed yet.
    anynotate mcp install
  2. Add it to the apps you use with --claude-desktop, --codex, --cursor or --claude-code. Anynotate keeps everything else in each app's settings and saves a backup first.
    anynotate mcp install --claude-desktop --cursor
  3. Restart the app. It now lists the Anynotate tools: list_notes, read_notes, mark_done and get_screenshot.
  4. Send your notes to the 📥 Inbox in the extension, then ask the app to read my browser notes. In Claude Desktop you can also pick review-browser-notes from the + menu.
  5. The app marks them done when it has acted on them, and the panel shows ✓ with its summary.

To remove it again, run anynotate mcp uninstall with the same flags; installs and updates then leave that app out. To skip MCP when installing, set ANYNOTATE_NO_MCP=1 or run anynotate install --no-mcp.

Settings and storage

Open the extension's options from its menu (right-click the Anynotate icon, then Options).

  • Bridge shows whether the bridge answers, how many sessions it sees, and the extension and bridge versions.
  • Storage counts the notes you have not sent yet. They live only in your browser; Clear all unsent notes removes them.
  • Frames from other sites lists the sites you allowed Anynotate into; Remove takes one away.
  • Advanced is for a bridge on a different port.
The Anynotate options page, with a Buy me a coffee link in the header: Bridge says connected · 2 sessions with Extension 0.3.1 and Bridge 0.6.4 and a check mark; Storage says Unsent notes: 2 on 1 page; Frames from other sites lists *.frame.claudeusercontent.com with a Remove button; Advanced has the bridge URL.
The options page.

Sent notes are kept in ~/.anynotate/inbox/ and deleted 30 days after delivery. Change that with anynotate retention 7, or anynotate retention off; anynotate prune deletes everything past the period now.

Privacy on the page

  • Password, payment-card and one-time-code fields are covered in screenshots and blanked in captured text, in the page, its same-site frames and frames you allowed.
  • The panel lives in a closed shadow root, so the page's scripts can't read it.
  • Anynotate does nothing on a page until you turn it on there.

Troubleshooting

One command checks the install, the bridge, the Chrome helper and the agent hooks, and tells you what to fix:

anynotate doctor

Some pages can't be annotated, and the Anynotate menu says why: browser and extension pages, the Chrome Web Store, view-source pages and PDFs. Local file:// pages need Allow access to file URLs turned on for Anynotate in chrome://extensions.

Common problems and their fixes are on the support page.