Full Page Screenshot
Captures a full-page screenshot of any web page via Chrome DevTools Protocol, producing a single PNG that includes all scrollable content. Handles SPA scroll containers, lazy-loaded images, and very tall pages with zero external dependencies beyond Node.js 22+ and Chrome.
✨ What it does
- Detects and expands SPA scroll containers to include all content.
- Monitors DOM stability to ensure dynamic content finishes rendering.
- Triggers lazy-loading by scrolling and waits for images to complete.
- Uses tiled capture for pages over 16,000px, stitching with Python PIL.
- Auto-discovers Chrome debugging port and falls back to CDP proxy API.
- Supports custom CSS injection and configurable viewport width and DPR.
🎯 When to use it
- When the user requests a full-page screenshot, long screenshot, or complete page capture of a web page.
- When capturing a page that requires scrolling to see all content, including SPAs with dynamic rendering.
- When you need a high-quality screenshot of an authenticated page (using an already-open tab).
- When you need to capture a very tall page that exceeds typical viewport limits.
🚀 How to use
Trigger: /eval
Trigger by asking for a full-page screenshot of a URL or an open tab. For authenticated pages, first list tabs with --list, then capture by target ID. For public URLs, use --url mode. Provide output path and optional parameters like --width, --dpr, --wait, and --css. Example prompts:
Capture a full-page screenshot of https://example.com to /tmp/screenshot.png
Take a long screenshot of the current tab and save it to /tmp/page.png
📄 Output: A single PNG file containing the full-page screenshot, or multiple tile files if stitching is unavailable.
📦 Add this skill to Claude Code
# 1. Get the skills repo
git clone --depth 1 https://github.com/alirezarezvani/claude-skills /tmp/claude-skills
# 2. Copy this skill into your project (or ~/.claude/skills for all projects)
mkdir -p .claude/skills
cp -r /tmp/claude-skills/engineering/skills/full-page-screenshot .claude/skills/full-page-screenshotSkill source: engineering/skills/full-page-screenshot/SKILL.md
⚠️ Good to know
Requires Node.js 22+ and Chrome with remote debugging enabled; authenticated pages should use an open tab rather than URL mode.
❓ FAQ
What should I do if the screenshot is blank or white?
Increase the --wait value to give the page more time to load, especially for SPAs.
How can I capture a page that requires login?
Use Option A: list open tabs with --list, then capture the tab where the user is already logged in.
What happens if the page is very tall?
The script captures in tiles and stitches them using Python PIL; if PIL is unavailable, it saves tiles separately.
🤖 Overview, features, install steps and FAQ were generated from the project's SKILL.md on Sep 4, 2026. Always check the original source before running commands.