What Full-Page Screenshot Does
Full-Page Screenshot is a lightweight utility that captures complete web page screenshots using Chrome DevTools Protocol (CDP), regardless of viewport height. Unlike built-in browser screenshot tools that only capture the visible area, this skill automatically scrolls through entire pages and stitches together a single high-fidelity image—perfect for documentation, testing, archiving, or sharing complete page layouts. With zero external dependencies, it integrates seamlessly into automation workflows and CI/CD pipelines without adding bloat to your project.
Designed for product designers, QA engineers, and automation specialists, Full-Page Screenshot excels when you need to capture complex pages with infinite scroll, modals, or dynamic content. Whether you’re automating visual regression testing, documenting design systems, or creating page archives for compliance purposes, this tool provides a programmatic way to capture what users would see after scrolling to the bottom.
How to Install
Installation
-
Verify Chrome/Chromium is installed - Ensure you have Chrome, Chromium, or a Chromium-based browser (Edge, Brave) available on your system
-
Clone or download the repository:
git clone https://github.com/LewisLiu007/full-page-screenshot.git cd full-page-screenshot -
Install Node.js dependencies (if applicable):
npm install -
Verify Chrome DevTools Protocol connectivity:
- Launch Chrome with remote debugging enabled:
google-chrome --remote-debugging-port=9222 -
Integrate into your Claude Code workflow:
- Reference the skill URL or local path in your agent configuration
- Pass target URLs and output file paths as parameters
-
Test with a sample URL:
// Example usage pattern const screenshotTool = require('./full-page-screenshot'); await screenshotTool.capture('https://example.com', './output.png');
Note: No additional npm packages required—the zero-dependency design means fewer conflicts and faster setup.
Use Cases
- Visual Regression Testing: Capture full-page screenshots before and after code changes to automatically detect unintended visual modifications across entire pages
- Design System Documentation: Generate complete mockups of component libraries and design system pages for handoff documents and style guide archives
- Web Page Archiving: Create timestamped PNG archives of critical web pages for compliance, legal discovery, or historical record-keeping
- Automated QA Reports: Include full-page screenshots in test reports to provide context for failed tests without requiring manual browser inspection
- Performance Benchmarking: Capture pages at different viewport sizes to assess responsive design implementation and ensure consistent layouts across devices
How It Works
Full-Page Screenshot leverages the Chrome DevTools Protocol, a low-level debugging interface that allows programmatic control over Chrome instances. Rather than relying on Puppeteer, Playwright, or other high-level frameworks, this skill communicates directly with Chrome’s debugging port (default 9222) to execute screenshot commands with minimal overhead.
When you invoke the skill, it establishes a CDP connection, navigates to the target URL, and measures the page’s full scrollable height. It then captures the viewport in segments, automatically scrolling between each capture to render previously off-screen content. The individual screenshots are intelligently stitched together, accounting for overlapping elements and scroll position changes, to create a seamless full-page image without duplication or visual artifacts.
The zero-dependency approach means the skill contains no external npm packages—all CDP communication and image stitching logic is written in native JavaScript. This eliminates version conflicts, reduces installation time, and makes the tool portable across environments. Since it uses Chrome’s native capabilities rather than emulating a browser, screenshots capture real rendering behavior including GPU-accelerated effects, CSS animations, and font rendering exactly as users experience them.
Pros and Cons
Pros:
- Zero external dependencies—no npm packages to install or manage, reducing setup time and dependency conflicts
- Direct Chrome DevTools Protocol communication—more efficient than high-level frameworks, with faster execution and lower memory overhead
- Perfect for automation workflows—integrates seamlessly into CI/CD pipelines, Claude Code agents, and scheduled tasks
- Captures real rendering—uses actual Chrome rendering engine, ensuring screenshots match what users see including CSS effects and font rendering
- Lightweight and portable—small codebase easy to audit, modify, or copy between projects without npm bloat
- Programmatic control—fully scriptable with no manual browser interaction required, ideal for batch processing multiple URLs
Cons:
- Chrome-only support—no Firefox, Safari, or other browser engines; limits cross-browser testing without multiple instances
- Manual browser launch required—unlike headless Puppeteer, you must explicitly start Chrome with the debugging port enabled, adding setup complexity
- Sticky/fixed element duplication—elements with fixed positioning may appear multiple times in stitched output, requiring post-processing in some cases
- No built-in image optimization—PNG output files can be large for complex pages; you’ll need external tools for compression or format conversion
- Limited error handling documentation—fewer community examples and Stack Overflow answers compared to Puppeteer or Playwright
- No automatic waiting for dynamic content—you must manually ensure pages are fully loaded before capturing; no built-in wait-for-selector or network idle detection
Related Skills
- Puppeteer Screenshots: Higher-level browser automation tool offering more features but with dependency overhead; useful if you need beyond-screenshot functionality like form filling or network throttling
- Playwright Visual Testing: Cross-browser visual regression testing framework with built-in screenshot comparison; better for complex test suites but heavier than Full-Page Screenshot
- Percy Visual Testing: Cloud-based visual regression service that auto-captures and compares screenshots; ideal for team collaboration but requires third-party account
- Lighthouse CI: Automated performance testing tool that captures screenshots alongside metrics; best when combined with full-page screenshots for comprehensive reporting
Alternatives
- **Puppeteer
page.screenshot({fullPage: true}): Built-in full-page capture; requires NPM dependency and heavier footprint but offers tighter integration with other Puppeteer automation - Manual Browser Screenshot Tools: Firefox and Chrome extensions like Full Page Screen Capture; no automation capability but useful for ad-hoc user-triggered captures
- Selenium WebDriver: Traditional browser automation framework with screenshot support; more heavyweight, broader browser support, but steeper learning curve and more dependencies