Install Offprint
Run the command-line interface (CLI) to capture pages from a shell, or install a language package for your application. Each interface uses the same capture engine and verification defaults.
Run the CLI
Use uvx, uv's Python command runner:
uvx offprint capture https://example.com --output example.html --quietOr use npx, npm's command runner, with Node.js 22 or newer:
npx offprint capture https://example.com --output example.html --quietBoth commands download the Offprint package and run its CLI. The capture prints example.html after reopening the saved file with networking blocked. Existing output files are preserved unless you pass --on-exists replace.
Install the CLI
Install a persistent offprint command with uv:
uv tool install offprint
offprint --versionOr install it with npm:
npm install --global offprint
offprint --versionStandalone native archives are available from GitHub Releases. Continue with your first capture.
Choose a language package
| Interface | Install | Runtime baseline |
|---|---|---|
| Node.js | npm | Node.js 22 or newer |
| Python | PyPI | Python 3.10 through 3.14 |
| Rust | Source checkout | Rust 1.97 |
Native packages support Linux x86-64 with glibc, macOS arm64, macOS x86-64, and Windows x86-64. Linux hosts also need the browser libraries listed in Linux runtime libraries.
Install the Node SDK
npm install offprintContinue with the Node.js integration.
Install the Python SDK
uv add offprintThe package is published on PyPI, the Python package index. Its wheels use Python's stable application binary interface from Python 3.10. Continue with the Python integration.
Use Rust
Use a checkout as a path dependency:
[dependencies]
offprint = { path = "/path/to/offprint/offprint-rs/core" }Read the Rust integration for the API and contributor setup for source builds.
Linux runtime libraries
Linux capture hosts need Chromium's shared libraries. On Ubuntu 24.04:
sudo apt-get update
sudo apt-get install -y \
libasound2t64 \
libatk-bridge2.0-0 \
libgbm1 \
libgtk-3-0 \
libnss3 \
libxkbcommon0Package names differ across Linux distributions. Verify that a Chromium-based browser can start in the target image before capture.
Browser requirement
Offprint discovers Chrome, Chromium, or Microsoft Edge based on Chromium 120 or newer. When automatic installation is enabled and no compatible browser is present, first use downloads and verifies the pinned Chrome for Testing build, Google's versioned Chromium browser distribution.
Run offprint doctor to check browser availability, or call offprint.browsers.doctor() through an SDK. Read browsers and ownership when provisioning a browser, sharing a cache, or connecting to a remote browser.