Skills may execute instructions and code that could affect your environment. Marketplace scans reduce risk but do not guarantee safety. Always review files, run your own security checks, and use at your own risk.
full-page-screenshot
Security Scan Summary
Status: Safe
Source: Syntic Skills registry
Automated security scan completed with no high-risk patterns detected. Manual review is still required.
About This Skill
Use when capturing full-page screenshots with lazy-loaded content, SPAs, and tall pages via Chrome DevTools Protocol.
Downloadable SKILL.md
Download SKILL.md and place it in your Syntic skills folder. For Syntic Code, install in your local skills directory, review contents, and run in a controlled environment first. Acknowledge the risk notice above to enable the download.
--- name: full-page-screenshot description: Use when capturing full-page screenshots with lazy-loaded content, SPAs, and tall pages via Chrome DevTools Protocol. category: Engineering version: 1.0.0 tools: [] --- # Full Page Screenshot via Chrome DevTools Protocol Capture entire web pages including scroll-required content. Handles SPA scroll containers, lazy-loaded images, and very tall pages. Zero external dependencies beyond Node.js 22+ and Chrome with remote debugging. ## Prerequisites - Node.js 22+ (built-in WebSocket) - Chrome/Chromium with remote debugging enabled ## Workflow ### Option A: Screenshot an Open Tab (recommended for authenticated pages) 1. List available tabs: ```bash node script.mjs --list ``` 2. Capture using targetId: ```bash node script.mjs <targetId> /tmp/screenshot.png --width 1200 --dpr 1 ``` ### Option B: Screenshot a URL (opens background tab, captures, closes) ```bash node script.mjs --url "https://example.com" /tmp/screenshot.png --width 1200 --dpr 1 --wait 15000 ``` Note: --url mode requires no authentication. Use Option A for SSO/login walls. ## Parameters | Parameter | Description | Default | |---|---|---| | `--width` | Viewport width (1200 articles, 1440+ dashboards) | 1200 | | `--dpr` | Device pixel ratio (2=Retina, 4x file size) | 1 | | `--wait` | Page load timeout ms | 15000 | | `--css` | Custom CSS injection (hide elements) | — | ## Core Capabilities 1. **SPA scroll expansion** — Detects overflow-y containers, scrolls to trigger lazy-load, removes constraints. 2. **DOM stability** — Waits until readyState=complete, monitors element count until stable. 3. **Lazy-load trigger** — Incremental scroll fires IntersectionObserver, waits for `<img>` completion. 4. **Tiling for tall pages** — Pages > 16000px captured in 8000px tiles, auto-stitched (PIL). 5. **Auto-discovery** — Reads DevToolsActivePort, falls back to probing ports 9222, 9229, 9333. 6. **CDP proxy fallback** — When proxy holds WebSocket, uses API endpoints. ## Verification ```bash # macOS sips -g pixelWidth -g pixelHeight /tmp/screenshot.png # Linux file /tmp/screenshot.png ``` ## Anti-Patterns | Do NOT | Do | |---|---| | `--dpr 2` on pages > 10000px | Use `--dpr 1` | | `--url` for authenticated pages | Use `--list` + targetId on logged-in tab | | `--wait` below 5000 for SPAs | Use 10000-15000 | | Skip `--check` | Verify Chrome debugging available | | Hardcode width for all pages | 1200 articles, 1440+ dashboards | ## Troubleshooting | Symptom | Fix | |---|---| | Chrome port not found | Enable chrome://inspect/#remote-debugging | | Blank screenshot | Increase `--wait` | | Truncated bottom | Scroll container auto-expanded; file issue if persists | | Out of memory | Reduce `--dpr` to 1, reduce `--width` |
Bundle Download
Includes SKILL.md and bundled support files where provided. Risk acknowledgement is required.
Install Targets
Syntic App
- 1. Create a dedicated folder for this skill in your local skills library.
- 2. Place SKILL.md into that folder.
- 3. Restart Syntic and invoke this skill on matching tasks.
Syntic Code (CLI)
- 1. Save SKILL.md in your local Syntic Code skills directory.
- 2. Keep related files in the same skill folder.
- 3. Run in a safe environment and validate outputs.
Source
https://github.com/alirezarezvani/claude-skills/blob/main/engineering/skills/full-page-screenshot/SKILL.md
Open Source LinkRelated Skills
a11y-audit
Use when auditing WCAG 2.2 Level A/AA accessibility, fixing violations in React, Next.js, Vue, Angular...
Engineeringadversarial-reviewer
Use when reviewing recent code changes or a PR before merge and you want a genuinely critical review, not...
Engineeringagent-designer
Use when architecting multi-agent systems, selecting orchestration patterns, or evaluating agent performance.
Engineeringagent-harness
Use when building bounded agentic loops with verified task execution and state machines.