full-page-screenshot

Captures full-page screenshots of web pages via Chrome DevTools Protocol.

Updated Aug 14, 2026
One-click install
npx skills add https://github.com/Rohithdgrr/REEK-uninstaller --skill full-page-screenshot-rohithdgrr
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: full-page-screenshot
Source: https://github.com/Rohithdgrr/REEK-uninstaller/tree/main/.opencode/skills/full-page-screenshot
Command: npx skills add https://github.com/Rohithdgrr/REEK-uninstaller --skill full-page-screenshot-rohithdgrr

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Standard screenshots only capture the visible viewport, missing content that requires scrolling. This Skill captures an entire web page as a single PNG, handling SPA scroll containers, lazy-loaded images, and pages taller than 16,000 pixels. ## Core Features & Use Cases - Full-page capture via CDP: Connects to Chrome over the DevTools Protocol, expands internal scroll containers, triggers lazy-loading, and captures beyond the viewport. - Two capture modes: Screenshot an already-open tab (ideal for authenticated/SSO pages) or pass a URL to open a background tab, capture, and close it automatically. - Tiled capture for very tall pages: Pages exceeding 16,000px are captured in 8,000px tiles and stitched with Python PIL, with a fallback to separate tile files. - Use Case: You need a complete capture of a long analytics dashboard rendered by a React SPA. Run the script against your logged-in Chrome tab to produce one PNG containing every chart, including content inside scrollable panels. ## Quick Start Take a full-page screenshot of the currently open Chrome tab and save it to /tmp/screenshot.png.

Frequently Asked Questions about full-page-screenshot

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I take a full-page screenshot of a web page?▼

Run the script with a target tab ID or a URL and an output path, for example passing --url with the page address and an output PNG file. It connects to Chrome via the DevTools Protocol, expands scroll containers, waits for images, and captures the full content height.

How to screenshot a page that requires login or SSO?▼

Use the --list mode to find the targetId of a tab where you are already logged in, then capture by targetId. The --url mode opens a fresh background tab without your session, so it cannot access authenticated pages.

What are the requirements for Chrome DevTools Protocol screenshots?▼

You need Node.js 22 or later and Chrome with remote debugging enabled via chrome://inspect/#remote-debugging. The script auto-discovers the debugging port from the DevToolsActivePort file or probes ports 9222, 9229, and 9333.

Why is my full-page screenshot blank or truncated?▼

Blank captures usually mean the page had not finished loading, so increase the --wait value to 10000-15000ms for SPAs. Truncation happens when internal scroll containers are not expanded, which the script handles automatically by removing overflow constraints.

Can I capture very tall pages over 16000 pixels?▼

Yes, pages exceeding 16,000px are captured in 8,000px tiles and stitched into one image using Python PIL. If Pillow is not installed, the tiles are saved as separate files instead.

Should I use --dpr 2 for Retina-quality screenshots?▼

Only for shorter pages. On pages taller than 10,000px, a device pixel ratio of 2 quadruples memory usage and can cause Chrome to run out of memory, so keep --dpr at 1 for tall pages.