latchshot-page-capture

$npx mdskill add github/awesome-copilot/latchshot-page-capture

Captures a public webpage as a screenshot, PDF, or full-page artifact.

  • Solves capturing public webpages for reports, QA, or archiving.
  • Depends on Node.js 20+, network access, and optional LATCHSHOT_API_KEY.
  • Uses no-key JPEG demo for one-off captures; otherwise requires API key.
  • Delivers validated PNG, JPEG, or PDF files saved as local artifacts.

SKILL.md

.github/skills/latchshot-page-captureView on GitHub ↗
---
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.

More from github/awesome-copilot

SkillDescription
acquire-codebase-knowledgeUse this skill when the user explicitly asks to map, document, or onboard into an existing codebase. Trigger for prompts like "map this codebase", "document this architecture", "onboard me to this repo", or "create codebase docs". Do not trigger for routine feature implementation, bug fixes, or narrow code edits unless the user asks for repository-level discovery.
acreadiness-assessRun the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc readiness` and hands off rendering to the @ai-readiness-reporter custom agent. Supports policies (--policy) for org-specific scoring. Use when asked to assess, audit, or score the AI readiness of a repo.
acreadiness-generate-instructionsGenerate tailored AI agent instruction files via AgentRC instructions command. Produces .github/copilot-instructions.md (default, recommended for Copilot in VS Code) plus optional per-area .instructions.md files with applyTo globs for monorepos. Use after running /acreadiness-assess to close gaps in the AI Tooling pillar.
acreadiness-policyHelp the user pick, write, or apply an AgentRC policy. Policies customise readiness scoring by disabling irrelevant checks, overriding impact/level, setting pass-rate thresholds, or chaining org baselines with team overrides. Use when the user asks about strict mode, AI-only scoring, custom weights, CI gating, or wants org-wide standardisation.
ad-campaign-analyzerUse this skill when the user shares ad campaign performance data and asks what to cut, scale, or test. Trigger for prompts like "analyze my ad campaigns", "where am I wasting ad spend", "reallocate my ad budget", "which ads are actually working", or "ROAS analysis". Do not trigger for campaign planning or creative generation without performance data.
add-educational-comments'Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.'
adobe-illustrator-scriptingWrite, debug, and optimize Adobe Illustrator automation scripts using ExtendScript (JavaScript/JSX). Use when creating or modifying scripts that manipulate documents, layers, paths, text frames, colors, symbols, artboards, or any Illustrator DOM objects. Covers the complete JavaScript object model, coordinate system, measurement units, export workflows, and scripting best practices.
agent-governance|
agent-owasp-compliance|
agent-skill-stackFind, evaluate, and assemble the smallest compatible set of AI Agent Skills for an end-to-end natural-language goal. Use when a user wants Skills for a multi-step workflow, asks which Skills fit a project, needs an installed-Skill audit or conflict check, has low Skill recall, wants indirect helpers such as humanizers or compliance checks, or wants a project-specific Skill Stack with controlled installation. Search local Skills, registries, GitHub, and OpenCLI; compare adoption, verified fit, safety, and overlap. Do not use for locating one known or common Skill; use the generic find-skills workflow.