Skip to main content
skill CX Codex

screenshot · zernie — Claude Code skill: what it does, how to install

This skill renders local pages in Chromium and saves full-page desktop and mobile captures. Use it to inspect a landing page, report, or local dev server.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add zernie/vigiles --skill screenshot -a claude-code
Open on GitHub

What screenshot does

The skill prepares a local site or report, serves the built files, and captures the page as desktop and mobile PNGs. It covers the site/ landing page, report/ output, local HTML, and pages running on a development server.

It drives the Chromium already present in the environment through playwright-core. Before taking the final images, the bundled script scrolls through the page so sections controlled by IntersectionObserver are revealed, then returns to the top. Output files follow the <name>-desktop.png and <name>-mobile.png pattern.

The landing build uses npm install and npm run build inside site/; the report uses the root npm run build. A local server can run with python3 -m http.server, and the driver is checked with node. Do not run playwright install: browser downloads are blocked, while Chromium is already available.

What it helps with

  • capture a complete local webpage
  • inspect a UI change in site/
  • compare desktop and mobile layouts
  • render the audit report locally
  • capture below-the-fold reveal sections

Example prompts for the agent

  • Take full-page desktop and mobile screenshots of the local site in site/.
  • Build report/, serve it locally, and show me the rendered report.
  • Check the latest UI change on the local dev server and save PNG captures to the scratchpad.

How to install screenshot

1Skills CLI (Vercel)

npx skills add zernie/vigiles --skill screenshot -a claude-code

2Manually: put the files in place

~/.claude/skills/screenshot/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/screenshot/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about screenshot

How do I install screenshot in Claude Code?

Run npx skills add zernie/vigiles --skill screenshot -a claude-code, then check ~/.claude/skills/screenshot/SKILL.md.

What does screenshot do?

It opens a local page in the pre-installed Chromium and produces full-page PNGs for desktop and mobile. It also scrolls through the page before capture so reveal-based sections are rendered.

What does the skill need before it can capture a page?

The target must be built or available through a local HTML or development server. The workflow uses playwright-core, node, and python3 for serving pages.

Source text

SKILL.md · MIT
---
name: screenshot
description: Render a local web page / built site and capture full-page screenshots (desktop + mobile) using the pre-installed Chromium. Use when asked to screenshot, render, or "see how it looks" for the vigiles landing site (site/), the audit report (report/), or any local HTML/dev server. Handles the scroll-reveal gotcha (below-the-fold cards captured blank) automatically.
---

# screenshot — render a local page and capture it

Contributor dev skill. Drives the container's **pre-installed Chromium** (no `playwright install`,
no browser download) via `playwright-core` to full-page-screenshot a locally-served page. Built
from the hard-won gotchas of doing this by hand (see below).

## When to use

- "screenshot the landing page / site", "how does the report look", "render `site/` and show me".
- Verifying a UI change in `site/` (the landing) or `report/` (the audit report) before committing.

## Procedure

1. **Build the target** (if it's a Vite app, you need `dist/`):
   - Landing: `cd site && npm install && npm run build` → `site/dist/`
   - Report: it builds with the root `npm run build` → `dist/audit-report.template.html`
2. **Serve it** on a port (relative asset refs need the dir as web root):
   ```bash
   cd site/dist && python3 -m http.server 8899 >/tmp/httpd.log 2>&1 &
   sleep 1 && curl -s -o /dev/null -w "%{http_code}\n" http://localhost:8899/   # expect 200
   ```
3. **Ensure the driver** (no browser download — uses `PLAYWRIGHT_BROWSERS_PATH`):
   ```bash
   node -e "require.resolve('playwright-core')" 2>/dev/null || npm install --no-save playwright-core
   ```
4. **Shoot** with the bundled script → writes `<outDir>/<name>-desktop.png` + `-mobile.png`:
   ```bash
   node .claude/skills/screenshot/scripts/shot.mjs http://localhost:8899/ "$SCRATCHPAD" landing
   ```
   Override viewports with `SHOT_WIDTHS="1440x900,768x1024,390x844"`.
5. **Look before sending**: `Read` the desktop PNG to sanity-check it rendered, THEN `SendUserFile`
   (display: render) so the user sees it. Send to the scratchpad dir, not the repo.

## Gotchas this skill encodes (don't relearn them)

- **Scroll-reveal = blank cards.** Sections that fade in on scroll (`opacity-0` + IntersectionObserver)
  are captured INVISIBLE by a naive `fullPage` screenshot — the hero renders, everything below the fold
  is blank. The script scrolls top→bottom to trigger the reveals, then returns to top before shooting.
  If cards are blank, this is why.
- **Chromium is pre-installed** at `/opt/pw-browsers/chromium-*/chrome-linux/chrome`; pass it as
  `executablePath` + `--no-sandbox`. NEVER run `playwright install` (blocked; wastes time).
- **CJS-from-ESM import**: `playwright-core`'s entry is CJS, and a script run from the scratchpad can't
  resolve the repo's `node_modules` by a bare import — use `createRequire(cwd + '/package.json')`
  (the script does this).
- **Mobile uploads sometimes 400** on `SendUserFile` — retry once, or send desktop alone.

## Not shipped

This is a `.claude/` contributor skill (this repo's own harness), not a published consumer skill.

© zernie · MIT · zernie/vigiles

Similar skills

Everything for Frontend and UI →

screenshot by other authors comes first.

screenshot nexu-io Captures app windows or pixel regions across operating systems. Useful for bug reports and design reviews. CX Codex +1 2,700installs screenshot bobmatnyc This skill sets up screenshot checks for UI changes across desktop, tablet, and mobile. Use it when a pull request needs visible proof of the result. CX Codex +1 380installs frontend-design official anthropics This skill guides intentional visual design for new interfaces and redesigns. Use it when a generic generated UI is not enough. 1,025,790installs design-taste-frontend Leonxlnx This skill directs the design of public pages and work screens, then checks the result in a browser through screenshots. Use it when an interface feels generic or unfinished. CX Codex +1 678,700installs prototype Matt Pocock Creates throwaway prototypes for checking state logic or exploring UI before committing the decision to the main codebase. 986,201installs hyperframes heygen-com Instructs coding agents on creating, validating, and rendering HTML-based videos using the HyperFrames framework and CLI. CX Codex +1 1,200,000installs hyperframes-cli heygen-com Controls HyperFrames video workflows from the CLI: audits layouts and contrast, edits timeline clips, captures snapshots, and renders locally or in cloud runtimes. CX Codex +1 1,300,000installs webapp-testing official anthropics This skill tests local web apps with Playwright, helping agents debug UI behavior, capture screenshots, and inspect browser logs. 186,758installs

From the same set13

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor