Local agents
Let a script or an AI agent on your own machine ask the extension for a capture.
The extension captures the page you are looking at when you click its icon. Two other things can
ask it to capture a page instead: the page-scanner command, and an AI agent speaking MCP (the
Obsidian plugin and the Raycast extension run the command). Both are off until you connect them, and both go
through the same connection.
What they share
- The capture happens in a Chrome you are already signed in to. A page behind a login is a page you are logged into, and no second browser is started.
- The connection stays on this computer. Chrome starts Page Scanner's helper and talks to it
directly, and the helper reaches the background process on
127.0.0.1, never0.0.0.0. Nothing it carries leaves the machine. - One setup per machine.
npx @page-scanner/cli installsets the helper up for every Chromium browser here, once. There is no port or token to copy. - A background process does the work. The command and the MCP server both talk to that one process, so you can use them at the same time, and the helper connects the extension to it.
Which one you want
The command line if you want to capture a page from a script, a Makefile or a
terminal. npx @page-scanner/cli scan --url <address> --out <file> prints the path it wrote and
nothing else.
The MCP server if you want an agent to do it: Claude Code, Claude Desktop, or anything else that speaks MCP. It is nine tools over the same connection.
Installing both is fine. They share the setup and the background process.
The agent skill goes with either. It tells the agent when Page Scanner is the
right tool and how to use it well, and comes as a Claude Code plugin that also registers the
server, or as a skill any agent can install with npx skills add sbd530/page-scanner-skills.
Connect it
- Run
npx @page-scanner/cli install, or ask your agent to set up Page Scanner. It sets up the helper and says which browsers it found. - Open the extension's settings. Under Local Agents, give this browser a name and press Connect. Chrome asks once whether Page Scanner may "communicate with cooperating native applications", which is the helper; allow it.
The same prompt asks to let Page Scanner manage tab groups: a page an agent asks for opens in a background tab inside a green Page Scanner group, so you can see which tabs it is working in, and the group goes away when the scan is done. Turn off Group an agent's tabs before pressing Connect if you would rather not allow that; the tab then opens without a group.
The button is an icon: a plug and its socket, joining over and over while there is nothing
connected. Once you have pressed it, it becomes Disconnect, the plug at rest, with Reconnect
now (the circling arrows) beside it, which tries again at once rather than waiting for the next
retry. The browser connects once a command or an agent is
running. The first time, that can take up to a minute: Chrome gives the permission to a fresh
start of the extension, not to the one already running, so leave the settings open, or reload
Page Scanner on chrome://extensions to do it at once. If the connection fails, a toast says why,
such as a helper that is not set up yet. Chrome runs a separate copy of the extension in every profile, so repeat
step 2 in each profile you want reachable; your work profile and your personal profile are two
browsers here.
With a port and a token instead
The way it worked before the helper, for a computer where it cannot be installed, and still
working for every browser paired that way: run npx @page-scanner/cli pair, set Connect
through to A port and a token, paste the port and the token it printed, and press
Connect. The MCP pairing guide covers checking and rotating a pairing.
How an agent's scan differs from a click
- It always captures the whole page. An agent has no preview to crop against.
- There is no raster fallback. A click can fall back to scrolling and stitching when the debugger cannot attach; an agent's scan cannot, so it fails and says so instead of handing back an image.
- It follows the clean-up settings. Ads, banners, chat widgets and pop-ups are hidden before
an agent's capture too, unless the agent asks otherwise (
--hideon the command line,hidefor the MCP server).
Off by default, and visible when on
Connecting is a deliberate act: the extension ships with this off, and turning it on means pressing Connect and allowing Chrome's prompt, which no agent can do for you. While a scan runs, Chrome shows its own "started debugging this browser" bar, which no extension can hide, so a scan an agent started is never invisible.
Settings
The choices that have to be made before a scan, the theme, notifications, the model the AI features ask, the usage statistics and the local agent pairing, in one dialog.
Why the debugger
Why a scan attaches Chrome's debugger to the tab, what the "started debugging this browser" bar means, and why it stays a few seconds after the scan.