Full-Page Screenshot logo

Full-Page Screenshot

Free

Captures full-page screenshots of web pages via Chrome DevTools Protocol with zero dependencies. *By [@LewisLiu007](https://github.com/LewisLiu007)*

FreeFree tier
Inputs: url
Type
Open Source

About Full-Page Screenshot

Full Page Screenshot is a zero-dependency Claude Code skill for capturing full-page screenshots of entire web pages as a single PNG image. It connects directly to Chrome DevTools Protocol (CDP) — no Puppeteer, Playwright, or npm install needed. The skill supports SPA detection, DOM stability waiting, lazy-loaded image triggering, and ultra-long page tiling (pages over 16,000px are captured in tiles and stitched with Python PIL). It can screenshot an existing browser tab by targetId or open a URL, capture, and close automatically. Designed to work within Claude Code, it can also be used as a standalone CLI tool. Requires Node.js 22+ and Chrome with remote debugging enabled. Licensed under MIT.

Key Features

Full-page capture renders entire scrollable page into one PNG
SPA support auto-detects overflow-y: scroll/auto containers and expands them
DOM stability wait monitors element count changes until SPA rendering completes
Lazy-load handling scrolls through page to trigger IntersectionObserver images
Ultra-long page tiling captures pages over 16,000px in 8,000px tiles and stitches with Python PIL
CDP Proxy fallback automatically falls back to proxy API when CDP proxy holds WebSocket
Two capture modes: screenshot existing browser tab by targetId, or provide URL to open, capture, then close
Zero external npm dependencies — uses only Node.js built-in modules (fs, net, path, os, child_process)
Configurable viewport width and device pixel ratio
Works as Claude Code skill or standalone CLI tool

Pros & Cons

Pros
  • Zero dependencies — no npm install, no Puppeteer, no Playwright required
  • Works seamlessly within Claude Code via natural language commands
  • Handles modern web complexities like SPAs, lazy-loading, and extremely long pages
  • Configurable viewport width and DPR for high-quality captures
  • MIT license allows free use and modification
  • Can be used standalone via CLI, not just within Claude Code
Cons
  • Requires Chrome browser with remote debugging enabled and manually configured
  • Requires Node.js version 22 or higher
  • Optional Python PIL dependency needed for stitching ultra-long pages (over 16,000px)
  • Ultra-long pages at high DPR may cause Chrome memory issues — recommends lowering DPR
  • Not a standalone application; tied to Claude Code ecosystem or CLI usage

Best For

Capturing full-page screenshots of websites for documentation or archivingTesting visual rendering of long pages, SPAs, or pages with lazy-loaded contentAutomating screenshot capture within Claude Code workflowsGrabbing high-resolution screenshots of wide tables or dashboards (viewport width adjustable)

FAQ

How do I enable Chrome remote debugging?
Open chrome://inspect/#remote-debugging and check 'Allow remote debugging for this browser instance'.
How do I install this skill for Claude Code?
Run 'npx skills add LewisLiu007/full-page-screenshot' or manually clone the repo into ~/.claude/skills/full-page-screenshot.
Can I use this without Claude Code?
Yes, it can be used as a standalone CLI tool. Use node scripts/full-page-screenshot.mjs with --url or targetId parameters.
Does it support single-page applications (SPAs)?
Yes, it auto-detects overflow-y: scroll/auto containers, expands them, and waits for DOM stability before capturing.
How are pages longer than 16,000px handled?
They are captured in 8,000px tiles and stitched using Python PIL. For very long pages, lowering DPR to 1 is recommended to avoid memory issues.