Highlight, draw, and leave notes on any page. Local-first: everything is stored in your browser, nothing leaves your machine.
See DESIGN.md for the principles this follows.
- Annotate — highlighter (with recolor / note / copy / delete menu), pen,
sticky notes, eraser, select-and-drag pointer. Toggle with
`, tools onhdnev,Cmd+Z/Cmd+Shift+Zundo/redo per page. - Persistence — annotations saved per page (URL normalized so tracking params don't fragment them), re-anchored when page text shifts, restored automatically on revisit. Unplaceable highlights are kept, not dropped.
- Find & review — feed of all annotations across all pages, full-text search, click to jump to the annotation on its page.
- Export — one-click dump to JSON or Markdown.
- Open
chrome://extensions, enable Developer mode. - Load unpacked → select this folder.
- Open any page, press
`to toggle the overlay. - Click the extension icon (or the Feed button in the toolbar) for the feed.
manifest.json MV3 manifest (no build step)
src/
storage.js chrome.storage.local wrapper + URL canonicalization
anchor.js highlight serialize / re-anchor / wrap / unwrap
history.js snapshot undo/redo
tools/ highlighter, pen, notes, eraser, pointer (one file each)
toolbar.js shadow-DOM UI: toolbar, canvas, notes, menus, toasts
content.js overlay bootstrap, keyboard, render-on-load
background.js 5 lines: open the feed on icon click
feed.html/js/css find & review page
export.js JSON + Markdown export
- Load unpacked, open
example.com, press`— toolbar appears. h, drag over text — highlight appears, menu offers colors / note / copy / delete.d, draw on the page.e, click the drawing — it's gone.Cmd+Z— it's back.n, click the page — sticky note appears. Type, drag it by the header.v, click a note, drag it. Select the drawing, drag it.Deleteremoves selection.- Reload the page — everything is still there.
- Toolbar → Feed (or click the extension icon): annotations listed, search filters, Open jumps to the annotation on the page.
- Feed → Export JSON / Export Markdown — files download.
Cloud sync, accounts, realtime presence, importers, CLI companion, cross-extension APIs. See DESIGN.md — these stay out until the core is flawless.