screenshot

Universal screenshot tool for capturing web pages, desktop apps, and images. Supports viewport presets (mobile/tablet/desktop), CSS selectors, batch capture, auto-upload to image hosts, and markdown output for PRs. Use when user says "take a screenshot", "screenshot this", "capture the page", "screenshot of [app/url]", "batch screenshots", "all viewports", or "upload screenshot".

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "screenshot" with this command: npx skills add szoloth/skills/szoloth-skills-screenshot

Universal Screenshot Skill

A unified screenshot tool that captures any source (web, desktop, images) with viewport presets, element targeting, batch capture, and auto-upload.

Agent Behavior Rules

DO:

  • Detect source type automatically from input (URL, app name, file path)
  • Use --mobile, --tablet, or --desktop for web captures
  • Wait for networkidle before capturing web pages
  • Use --markdown when user wants output for PRs or docs
  • Use --upload when user wants shareable links
  • Run pre-flight checks before first capture

DO NOT:

  • Assume viewport without user context (default to desktop for web)
  • Use --full unless explicitly asked for full-page/scroll capture
  • Skip the networkidle wait on dynamic pages
  • Upload without asking if destination is unclear

Source Detection

Input PatternSource TypeTool Used
http://, https://, file://Webplaywright-cli
App name (e.g., "Figma", "Xcode")DesktopOS screenshot
.png, .jpg, .pdf pathImagesips/ImageMagick
Figma URL (figma.com/...)FigmaWeb capture

Quick Reference

# Set skill path
export SCREENSHOT_SKILL="$HOME/.claude/skills/screenshot"

# Basic web capture
python3 "$SCREENSHOT_SKILL/scripts/screenshot.py" https://example.com

# Mobile viewport with selector
python3 "$SCREENSHOT_SKILL/scripts/screenshot.py" https://example.com --mobile --selector ".hero"

# Desktop app capture
python3 "$SCREENSHOT_SKILL/scripts/screenshot.py" --app "Figma"

# Capture existing image region
python3 "$SCREENSHOT_SKILL/scripts/screenshot.py" image.png --crop 100,100,800,600

# Batch capture with multiple viewports
python3 "$SCREENSHOT_SKILL/scripts/screenshot.py" --batch urls.txt --viewports mobile,tablet,desktop

# Capture with upload and markdown
python3 "$SCREENSHOT_SKILL/scripts/screenshot.py" https://example.com --upload --markdown

Command Options

Viewport Presets (web only)

FlagDimensionsUse Case
--mobile375x812iPhone viewport
--tablet768x1024iPad viewport
--desktop1440x900Default for web
--size WxHCustomAny dimensions
--fullFull scrollFull page capture

Element Targeting (web only)

FlagDescription
--selector ".class"CSS selector
--text "Button"Text content match
--id "element-id"Element ID

Desktop App Capture

FlagDescription
--app "Name"Capture app by name
--window "Title"Specific window title
--activeCapture active window
--region x,y,w,hCapture region

Image Processing

FlagDescription
--crop x,y,w,hCrop region
--resize WxHResize output
--format png/jpgOutput format

Batch Capture

FlagDescription
--batch file.txtURLs/apps from file
--viewports m,t,dCapture all viewports

Output Options

FlagDescription
--output dir/Output directory
--name prefixFilename prefix
--uploadUpload to 0x0.st
--upload gistUpload to GitHub Gist
--markdownGenerate markdown table
--copyCopy result to clipboard

Pre-flight Checks

The tool automatically:

  1. Checks for playwright-cli availability
  2. Installs if missing: npm install -g @playwright/mcp@latest
  3. Verifies OS screenshot tools on desktop captures
  4. Checks for curl (uploads) and gh CLI (gist)

Vercel Protection Handling

For .vercel.app URLs returning 401/403:

  1. Tool detects protected deployment
  2. Prompts for bypass token or suggests alternatives
  3. Can use vercel inspect if Vercel CLI is available

Output Examples

Single capture:

Screenshot saved: ~/Downloads/example-desktop-1706900000.png

With upload:

Screenshot saved: ~/Downloads/example-desktop-1706900000.png
Uploaded: https://0x0.st/abc123.png

Markdown output:

| Viewport | Screenshot |
|----------|------------|
| Desktop | ![desktop](https://0x0.st/abc123.png) |
| Mobile | ![mobile](https://0x0.st/def456.png) |

Error Handling

ErrorResolution
playwright-cli not foundAuto-installs via npm
Element not foundVerify selector, try broader match
401/403 on URLProtected deployment, see above
App not foundCheck app name, ensure visible
Upload failedRetry or try different host

Integration with PR Workflow

# Capture staging vs production
python3 "$SCREENSHOT_SKILL/scripts/screenshot.py" https://staging.example.com --upload --markdown > screenshots.md

# Append to PR
gh pr edit --body-file <(cat <(gh pr view --json body -q .body) screenshots.md)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

screenshot

No summary provided by upstream source.

Repository SourceNeeds Review
General

executive-assistant

No summary provided by upstream source.

Repository SourceNeeds Review
General

screenshot

No summary provided by upstream source.

Repository SourceNeeds Review
General

mdfind-search

No summary provided by upstream source.

Repository SourceNeeds Review