Use a remote Chromium browser
Offprint can capture through a browser running on another host. It connects through the Chrome DevTools Protocol (CDP), the browser's automation interface. The caller owns the browser process and network controls. Remote captures use static verification.
offprint capture https://example.com \
--cdp-url https://browser.example/cdp \
--network-policy unrestricted \
--verification static \
--output example.htmlThe endpoint can use HTTP, HTTPS, WebSocket, or secure WebSocket. HTTP discovery tries the standard version endpoint, then the target list, then a direct WebSocket URL. This connection bypasses capture NetworkPolicy and is trusted coordinator egress. Never accept an endpoint from an untrusted tenant.
Endpoint user information and common secret query keys are redacted. Unknown query names can remain visible, so keep credentials in recognized secret fields and review reports before sharing them.
Required contract
Remote capture requires:
- HTTP or HTTPS page input
NetworkPolicy::UnrestrictedVerificationMode::Static- Permission to create and dispose browser contexts
- Runtime and page-domain access required by the collector
The unrestricted policy permits public, private, link-local, loopback, and otherwise non-routable address classes. Offprint still blocks page-created WebSocket, EventSource, and WebRTC transports in managed page and frame targets. This is not a whole-browser firewall.
Ownership
Offprint creates and disposes the contexts and pages used for its captures. The caller owns:
- Endpoint authentication and transport trust
- Browser process startup and shutdown
- Browser-side persistent state
- Network enforcement outside Offprint's page containment
- Availability and concurrency limits of the remote service
The remote browser operator can observe source URLs, injected headers, cookies, browser requests, and rendered private content through CDP. Use an endpoint whose operator is permitted to receive the captured data.
Closing Offprint closes its protocol connection. It leaves the remote browser process running.
Supported operations
One-page capture and batch can use a remote browser when each affected request satisfies the remote contract. A batch-level endpoint replaces auto browser selection and preserves explicit per-request choices. One service owns one active browser identity. Mixing endpoints or local and remote selections while that identity is active can fail with offprint.browser.selection_conflict.
Crawl, coordinator-local file: input, and offline verification require a local browser. Use the resulting static verification report as the supported evidence boundary.
doctor can connect to the endpoint and create a temporary context while probing collector compatibility. Its ready field describes the default local offline path and can remain false for a working remote static configuration.