The little browser extension that turns any boring PDF into your personal doodle pad — draw, highlight, scribble notes, then save it flat so it opens anywhere.
Everything below runs offline, right on the PDF — nothing gets uploaded, ever.
Pen, Brush, Highlighter, Line, Arrow, Rectangle, Ellipse, Text box & Eraser — with color, width & opacity to match.
On born-digital PDFs the Highlight tool snaps neatly to whole words, just like a proper reader.
One offline Tesseract pass builds a selectable text layer on image-only PDFs — cached after the first run.
Fix mistakes freely, clear a page in one tap, and zoom or fit-to-width without losing your place.
Your markup is remembered per file on your own machine — close the tab, come back, it's still there.
Save a "(annotated)" copy with pdf-lib that opens perfectly in any standard reader.
P B H M L A R O T E V to switch tools, Ctrl+Z/Y to undo, Ctrl+S/E to save & export.
100% client-side. No servers, no uploads, no accounts. Just you and your PDF.
Six steps, one coffee. Works the same on Chrome, Edge, Brave & Opera (Firefox is nearly identical).
Grab the Puff PDF files — download the zip and unzip it somewhere you'll remember.
Open your browser's extensions page — type chrome://extensions in the address bar and hit enter.
Flip on Developer mode — it's the little toggle in the top-right corner.
Click "Load unpacked" and pick the Puff PDF folder you unzipped. Boom — it's installed.
Pin it, then turn on "Allow access to file URLs" in its details so local file:// PDFs open in Puff automatically.
Open any PDF — from a link, drag-and-drop, or the toolbar icon — and start doodling. That's it! ✎
One Manifest V3 codebase, built on PDF.js + pdf-lib, runs everywhere below.
↳ Safari would need a whole different native wrapper — maybe someday!
honest v1 notes → markup can shift a little on rotated pages or odd crop origins, and auto-opening local PDFs needs that "file URLs" toggle. Fixes are on the list!