Skip to main content
skill official · GitHub

latchshot-page-capture — GitHub Copilot skill: page screenshots

Turns a public page URL into a local PNG, JPEG or PDF through the Latchshot service. Handy for reports, QA checks and preview images.

Install into GitHub Copilot · Skills CLI (Vercel) All methods and platforms ↓
npx skills add github/awesome-copilot --skill latchshot-page-capture
Open on GitHub

What latchshot-page-capture does

The skill gives the agent a single route from URL to file on disk. It ships a dependency-free Node.js client, scripts/latchshot.mjs. Output format follows the extension in --output, or you state it with --format. You get a one-line JSON reply carrying ok, output, format and bytes.

Node.js 20 or newer plus network access are required. For authenticated runs the key is read from LATCHSHOT_API_KEY and sent only to https://latchshot.fly.dev. No key? A JPEG demo exists with three tries per IP each hour. PNG, PDF and full-page shots need the key, and it must never land in chat, command arguments or a committed file.

Full-page captures use --full-page together with --scroll-page; PDFs take --paper A4. Cleanup flags such as --block-ads and --hide-cookie-banners only tidy the image, they do not defeat protection. Pages behind a login, CAPTCHAs and scripted browser actions are out of scope, so keep a local browser for those.

What it helps with

  • grab a screenshot of a public page for a report
  • export a webpage as an A4 PDF
  • capture a long page with lazy-loaded sections
  • preview a landing page before it ships
  • archive a page as a local file

Example prompts for the agent

  • Capture https://example.com into ./artifacts/example.png
  • Save https://example.com as an A4 PDF at ./artifacts/example.pdf
  • Check my remaining renders with node scripts/latchshot.mjs usage

How to install latchshot-page-capture

1Skills CLI (Vercel)

npx skills add github/awesome-copilot --skill latchshot-page-capture

2GitHub CLI

gh skill install github/awesome-copilot latchshot-page-capture

3Manually: put the files in place

.github/skills/latchshot-page-capture/SKILL.md

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

Questions about latchshot-page-capture

How do I install latchshot-page-capture in GitHub Copilot?

Run npx skills add github/awesome-copilot --skill latchshot-page-capture, or gh skill install github/awesome-copilot latchshot-page-capture instead. The skill file lands at .github/skills/latchshot-page-capture/SKILL.md.

What does latchshot-page-capture do?

It saves a public page as PNG, JPEG or PDF on your machine, going through the Latchshot service via scripts/latchshot.mjs.

Can I use it without an API key?

Yes, for one JPEG per hour per IP address. PNG, PDF and repeat captures require LATCHSHOT_API_KEY; without it the skill points you to the setup docs and stops.

Source text

SKILL.md · MIT
---
name: latchshot-page-capture
description: 'Use this skill when a user needs a screenshot, website thumbnail, full-page capture, or PDF of a public HTTP(S) webpage saved as a local artifact through Latchshot, including report, QA, archive, and social-preview workflows. Do not use it for private or authenticated pages, raw HTML, scraping or extraction, arbitrary browser actions, CAPTCHA or anti-bot bypass, or local-file capture.'
---

# Latchshot page capture

Use the bundled dependency-free client to turn one public webpage URL into a validated local PNG, JPEG, or PDF. Start with a constrained no-key JPEG demo when appropriate. Authenticated commands send the API key only to the fixed `https://latchshot.fly.dev` origin, and every artifact is written atomically.

Latchshot is a hosted third-party service maintained by this skill's contributor. Keep its use optional and preserve an existing local-browser workflow when the task needs private pages or unsupported browser actions.

## Prerequisite

Require Node.js 20 or newer and network access. Read the key only from `LATCHSHOT_API_KEY` for authenticated capture and usage commands.

If the variable is missing, use the no-key demo for one bounded JPEG when it fits the request. For PNG, PDF, full-page, cleanup, or repeat work, direct the user to the [Agent Skills setup documentation](https://latchshot.fly.dev/integrations.md#agent-skills), then stop. Never ask the user to paste a key into chat, a command argument, source code, a committed file, or output. Never print or return the key.

## No-key demo

Use this command for a public page when a viewport JPEG is acceptable:

```bash
node scripts/latchshot.mjs demo \
  --url 'https://example.com' \
  --output './artifacts/example-demo.jpg'
```

The demo is JPEG-only, does not use an account or render quota, and allows three attempts per IP address per hour. It accepts only width, height, query confirmation, and explicit overwrite options. The public URL is still sent to Latchshot, and the request carries the coarse `agentskill` acquisition label. Reject private pages, secrets, signed URLs, and authenticated access exactly as in the capture workflow. Treat the result as a proof artifact, not as a customer activation or plan signup.

## Capture workflow

1. Confirm the target is a public HTTP or HTTPS page. Reject credentials, private/internal pages, non-web ports, signed URLs, query secrets, and any request requiring login, cookies, CAPTCHA handling, proxy rotation, arbitrary scripts, clicks, typing, or anti-bot bypass.
2. Choose a user-approved output path. Infer the format from `.png`, `.jpg`/`.jpeg`, or `.pdf`, or pass the matching `--format` explicitly.
3. Run the client from this skill directory:

   ```bash
   node scripts/latchshot.mjs capture \
     --url 'https://example.com' \
     --output './artifacts/example.png'
   ```

4. For a bounded full-page screenshot that activates lazy content:

   ```bash
   node scripts/latchshot.mjs capture \
     --url 'https://example.com' \
     --output './artifacts/example-full.png' \
     --full-page \
     --scroll-page
   ```

5. For a PDF:

   ```bash
   node scripts/latchshot.mjs capture \
     --url 'https://example.com' \
     --output './artifacts/example.pdf' \
     --paper A4
   ```

6. Parse the one-line JSON result. Confirm `ok`, `output`, `format`, `contentType`, and `bytes`; inspect the local artifact when the surrounding task requires visual or document verification. Report the path and relevant render/quota diagnostics without exposing the key.

Run `node scripts/latchshot.mjs --help` for the exact bounded options. Use `--block-ads`, `--block-trackers`, `--block-chats`, `--hide-cookie-banners`, and `--hide-popups` only as best-effort cleanup—not bypass. Use `--allow-query` only after confirming that the query contains no credential, signature, token, customer data, or other secret. The client refuses to overwrite a file unless `--force` is explicit.

## Read quota

Use the read-only command when the user asks about remaining renders or reset time:

```bash
node scripts/latchshot.mjs usage
```

This does not consume render quota or change a plan.

## Failure handling

- Read the structured error code and message from stderr; do not retry validation or authentication failures.
- For `demo_limit`, wait for the hourly reset rather than looping or switching identities.
- For `rate_limited`, wait for the reported reset or retry-after boundary rather than looping.
- For a render failure, state the failure and preserve any existing output file. Do not silently substitute a local browser, a different provider, or unsupported private-page access.
- Do not initiate an upgrade, checkout, payment, implementation request, or other commercial action. Those remain user- and owner-controlled.

## Hard boundaries

Latchshot accepts public pages only and returns one binary artifact. It does not offer raw HTML input, DOM extraction, selectors, sessions, arbitrary JavaScript, authenticated/private pages, CAPTCHA solving, residential proxies, or anti-bot evasion. Only successful renders consume quota.

© github · MIT · github/awesome-copilot

Similar skills

All skills for Browser and scraping →

From the same set928

The whole set →

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