Scan a whole page for Human and AI
One layout, both outputs
A capture that scrolls the page and stitches the screenshots together gives you a file that looks right and is dead: no sentence to select, no Ctrl+F, mush past 100% zoom. This one lays the page out once at its true full height and asks Chrome to print it, so the preview you crop and the PDF you keep are the same layout.
Full-page capture
One click, or Alt+Shift+P, takes the page to the bottom of its scroll rather than the screenful in front of you.
Text that is still text
Select it, search it, copy it out. Artwork stays vector, so it holds up under zoom.
An exact crop
Drag a rectangle in the editor and the file lands on it. The preview and the PDF come from one layout, so the crop cannot drift.
Page breaks, before you commit
Choose a paper size and the sheet shows the page count, the pixel size and where the breaks will fall while you are still adjusting.
Three formats
One capture becomes a PDF, a lossless PNG, or a much smaller JPEG.
Nothing leaves the machine
No host permissions, no analytics, no cookies, no account. The privacy policy is the document the store listing links to.
From a script, and from an agent
Two packages on npm drive the same capture as the extension, through the Chrome you are already signed in to, so a page behind a login is a page you are logged into. Pair the machine to the browser once and neither asks again.
Command line
@page-scanner/cli captures a page from a script and writes the PDF where you point it. It also holds the daemon the browser talks to.
npx @page-scanner/cli scan --url https://example.com --out ./page.pdf
Model Context Protocol
@page-scanner/mcp is a stdio server with four tools, pair, list_browsers, list_tabs and scan_page. It reaches the browser over the local bridge on 127.0.0.1 and nowhere else.
claude mcp add page-scanner -- npx -y @page-scanner/mcp