Pagesmith

Full-page screenshots for Chrome. One click captures the whole page, top to bottom, as one image or PDF. Nothing leaves your browser.

Free and MIT licensed. Not yet on the Chrome Web Store.

Captures stay on your machine

A screenshot tool sees whatever you were looking at: mail, statements, internal dashboards. So Pagesmith makes no network requests at all.

It asks for no sites when you install it

No “read and change all your data on all websites” prompt.

Pagesmith uses Chrome's activeTab permission. It can access a tab only after you click its button or press its shortcut on that tab, and only until you navigate away. The full permission list is three entries:

PermissionWhy
activeTabAccess to the tab you clicked the button on, to capture it.
scriptingScrolls that tab step by step during the capture, then puts it back.
storageYour settings, and the progress of a running capture.

What it does

The whole page

Scrolls one screen at a time and joins the frames into one image, at your screen's full resolution.

Headers shown once

Fixed headers, cookie bars and chat buttons appear at the top, not on every screen. Configurable.

Lazy images loaded

The page is scrolled through once before capturing, so images that load on scroll are there.

Web apps too

Mail, chat and dashboards that scroll an inner panel instead of the page are detected and captured in full.

PNG, JPEG, PDF, clipboard

PDF in A4, Letter or fit-to-content sizes. Very tall pages are split into several images, all included in the PDF.

Runs in the background

Closing the popup does not cancel the capture. Progress shows on the toolbar icon.

English, French, German, Spanish and Japanese. Default shortcut: Alt+Shift+S.

You can check the build yourself

The Web Store signs the package itself with a key the developer never holds, so a store signature says nothing about which source the bytes came from.

Every Pagesmith release is reproducible, so you can rebuild it and compare:

git clone https://github.com/bcollard/pagesmith.git && cd pagesmith
git checkout v0.1.0
nvm use            # the Node version affects the output
npm ci
node scripts/verify-reproducible.mjs ~/Downloads/pagesmith-0.1.0.zip

Each release also carries a provenance attestation binding those exact bytes to a commit:

gh attestation verify pagesmith-0.1.0.zip --repo bcollard/pagesmith

The shipped bundle is not minified and has no third-party code. The whole extension is about 80 KB of readable JavaScript.

Questions

Why does the sticky header appear only once?
Pagesmith keeps fixed elements in the first frame and hides them for the rest, and turns sticky elements into ordinary ones during the capture so they appear where they sit in the page. Both can be changed in Options.
Why did a long page download as several images?
Chrome cannot reliably encode an image taller than about 16,000 pixels. Above that a canvas can come out blank without an error. Such pages are split into several numbered images, and the PDF contains all of them.
Why can it not capture some pages?
Chrome does not allow any extension to capture chrome:// pages or other extensions' pages. On the Chrome Web Store, extensions cannot scroll the page, so only the visible area is captured there.
Does closing the popup cancel the capture?
No. The capture runs in the extension's background worker and opens in a new tab when it is done.
How do I check that what I installed matches the source?
Run gh attestation verify on the release, then rebuild from the same tag and compare. The commands are above.

Install

Not yet on the Chrome Web Store. Until then, build it from source:

git clone https://github.com/bcollard/pagesmith.git && cd pagesmith
npm ci
npm run build