{
  "schemaVersion": "1.0",
  "item": {
    "slug": "screenshot",
    "name": "Screenshot",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/ivangdavila/screenshot",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/screenshot",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/screenshot",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=screenshot",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/screenshot"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/screenshot",
    "agentPageUrl": "https://openagent3.xyz/skills/screenshot/agent",
    "manifestUrl": "https://openagent3.xyz/skills/screenshot/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/screenshot/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "When to Use",
        "body": "Use when the task needs a screenshot of a desktop app, browser page, simulator, region, window, or full screen, especially for debugging, QA, documentation, release notes, bug reports, visual review, or before/after comparison.\n\nThis skill is about taking the right screenshot reliably, not about editing images after the fact."
      },
      {
        "title": "Tool Choice",
        "body": "ContextBest defaultWhymacOS desktop or windowscreencaptureBuilt-in, reliable, supports silent, interactive, region, and window captureiOS Simulatorxcrun simctl io booted screenshotMore reliable than generic desktop capture for simulator outputLinux Waylandgrim + slurpX11 tools often fail or behave oddly on WaylandLinux X11 / headless CIscrot or browser-native captureWorks in minimal or virtual-display environmentsWindows desktop capturenircmd savescreenshot or Pillow ImageGrabEasier than verbose PowerShell screen APIsWeb page or web appPlaywrightBest for stable viewport, element, full-page, masked, and regression screenshotsVisual diff / screenshot testsPlaywright with fixed viewportBetter control over animations, caret, masks, and reproducibility\n\nDefault to the most native capture path first. Move to browser-native tooling when determinism, masking, element capture, or visual regression matters more than convenience."
      },
      {
        "title": "1. Pick the capture path by artifact, not by habit",
        "body": "Desktop UI screenshots usually want OS-native tools.\nWeb pages and web apps usually want browser-native capture, not a desktop screenshot of the browser window.\nSimulator screenshots should come from the simulator tooling when possible.\nUse region, window, or element capture when the point is local; use full screen or full page only when the full context matters."
      },
      {
        "title": "2. Stabilize the target before capturing",
        "body": "Dynamic pages should settle before capture: wait for network idle or the specific element that matters, then give fonts and transitions a brief moment to finish.\nDo not take the screenshot before the real rendered state exists.\nFor browser capture, prefer explicit readiness over blind sleeps when possible.\nIf the page never truly goes idle, wait for the exact UI state you need instead of chasing perfect stillness."
      },
      {
        "title": "3. Freeze viewport, scale, zoom, and theme for reproducibility",
        "body": "Screenshot comparisons are meaningless if viewport, zoom level, theme, or device scale changed.\nFor browser captures, fix the viewport before taking baselines or before/after images.\nRetina and HiDPI displays can produce more pixels than expected; decide whether you want physical pixels or CSS-scale output and keep that choice consistent.\nIf dark/light mode matters, capture both intentionally instead of mixing them accidentally."
      },
      {
        "title": "4. Capture the smallest useful scope",
        "body": "Element, region, or window screenshots are usually better than noisy full-screen captures.\nFull-page screenshots are useful for audits and archives, but long pages become hard to read and compare.\nFor browser work, element screenshots or clipped regions usually produce cleaner diffs than full-page output.\nIf the screenshot is evidence, keep enough surrounding context that the user can understand what they are looking at."
      },
      {
        "title": "5. Remove noise before you capture",
        "body": "Hide or avoid unstable UI when it is not the subject: cursors, carets, toasts, chat widgets, notifications, loading spinners, timestamps, and randomized content.\nMask or avoid secrets, personal data, tokens, and internal URLs before capture.\nFor Playwright-style browser capture, features like disabled animations, hidden carets, and masking are worth using when visual stability matters.\nIf the noise is the bug, keep it; otherwise remove it."
      },
      {
        "title": "6. Use the right output format",
        "body": "PNG is the default for screenshots, UI, code, terminals, and text-heavy captures.\nJPEG is for photographic content, not normal screenshots.\nWebP is fine for sharing or storage when compatibility is acceptable, but do not default to it if the consumer expects plain PNG files.\nAvoid recompressing screenshots through JPEG pipelines unless the user explicitly wants smaller lossy output."
      },
      {
        "title": "7. Make automation and CI captures debuggable",
        "body": "On failures, save a screenshot immediately before retrying or moving on.\nUse stable filenames for baselines and timestamps for ad hoc or batch captures.\nIn CI, identical viewport and deterministic state matter more than raw screenshot volume.\nHeadless runs should prefer browser-native screenshots over trying to screen-grab the host display."
      },
      {
        "title": "8. Validate that the screenshot is actually useful",
        "body": "Check that the important detail is visible, legible, and not cropped away.\nVerify that secrets are not still visible in tabs, sidebars, URLs, notifications, or test data.\nBefore/after comparisons should use the same viewport, zoom, theme, and state.\nA screenshot is bad if it is technically correct but useless for the human who needs it."
      },
      {
        "title": "High-Value Patterns",
        "body": "macOS: screencapture -x out.png for silent capture, -i for interactive selection, -R x,y,w,h for a fixed region.\niOS Simulator: xcrun simctl io booted screenshot out.png\nLinux Wayland: grim -g \"$(slurp)\" out.png\nPlaywright page capture: wait for the target state, then use page, element, clipped, or full-page screenshots deliberately.\nPlaywright stability features worth remembering: fixed viewport, disabled animations, hidden caret, masks for sensitive regions, and stable theme/media settings."
      },
      {
        "title": "Common Traps",
        "body": "Taking a browser-window screenshot when an element or page screenshot was the real need.\nCapturing before fonts, data, or layout transitions finish.\nComparing screenshots with different viewport sizes or zoom levels and treating the diff as meaningful.\nUsing JPEG for screenshots and blurring text, edges, and code.\nLetting timestamps, cursor blinks, notifications, or random data ruin visual diffs.\nForgetting that Wayland breaks familiar X11 screenshot tools.\nSharing screenshots with secrets still visible in tabs, sidebars, URLs, or test accounts.\nTaking full-page captures of huge pages and ending up with unreadable evidence."
      },
      {
        "title": "Related Skills",
        "body": "Install with clawhub install <slug> if user confirms:\n\nplaywright — Browser automation, DOM interaction, and web screenshots\nimage — Post-capture format, cropping, compression, and export decisions\nimage-edit — Annotation, cleanup, masking, and targeted edits after capture\ndocumentation — Turning screenshots into docs, guides, and release assets\nvideo — When a flow should be recorded instead of reduced to still images"
      },
      {
        "title": "Feedback",
        "body": "If useful: clawhub star screenshot\nStay updated: clawhub sync"
      }
    ],
    "body": "When to Use\n\nUse when the task needs a screenshot of a desktop app, browser page, simulator, region, window, or full screen, especially for debugging, QA, documentation, release notes, bug reports, visual review, or before/after comparison.\n\nThis skill is about taking the right screenshot reliably, not about editing images after the fact.\n\nTool Choice\nContext\tBest default\tWhy\nmacOS desktop or window\tscreencapture\tBuilt-in, reliable, supports silent, interactive, region, and window capture\niOS Simulator\txcrun simctl io booted screenshot\tMore reliable than generic desktop capture for simulator output\nLinux Wayland\tgrim + slurp\tX11 tools often fail or behave oddly on Wayland\nLinux X11 / headless CI\tscrot or browser-native capture\tWorks in minimal or virtual-display environments\nWindows desktop capture\tnircmd savescreenshot or Pillow ImageGrab\tEasier than verbose PowerShell screen APIs\nWeb page or web app\tPlaywright\tBest for stable viewport, element, full-page, masked, and regression screenshots\nVisual diff / screenshot tests\tPlaywright with fixed viewport\tBetter control over animations, caret, masks, and reproducibility\n\nDefault to the most native capture path first. Move to browser-native tooling when determinism, masking, element capture, or visual regression matters more than convenience.\n\nCore Rules\n1. Pick the capture path by artifact, not by habit\nDesktop UI screenshots usually want OS-native tools.\nWeb pages and web apps usually want browser-native capture, not a desktop screenshot of the browser window.\nSimulator screenshots should come from the simulator tooling when possible.\nUse region, window, or element capture when the point is local; use full screen or full page only when the full context matters.\n2. Stabilize the target before capturing\nDynamic pages should settle before capture: wait for network idle or the specific element that matters, then give fonts and transitions a brief moment to finish.\nDo not take the screenshot before the real rendered state exists.\nFor browser capture, prefer explicit readiness over blind sleeps when possible.\nIf the page never truly goes idle, wait for the exact UI state you need instead of chasing perfect stillness.\n3. Freeze viewport, scale, zoom, and theme for reproducibility\nScreenshot comparisons are meaningless if viewport, zoom level, theme, or device scale changed.\nFor browser captures, fix the viewport before taking baselines or before/after images.\nRetina and HiDPI displays can produce more pixels than expected; decide whether you want physical pixels or CSS-scale output and keep that choice consistent.\nIf dark/light mode matters, capture both intentionally instead of mixing them accidentally.\n4. Capture the smallest useful scope\nElement, region, or window screenshots are usually better than noisy full-screen captures.\nFull-page screenshots are useful for audits and archives, but long pages become hard to read and compare.\nFor browser work, element screenshots or clipped regions usually produce cleaner diffs than full-page output.\nIf the screenshot is evidence, keep enough surrounding context that the user can understand what they are looking at.\n5. Remove noise before you capture\nHide or avoid unstable UI when it is not the subject: cursors, carets, toasts, chat widgets, notifications, loading spinners, timestamps, and randomized content.\nMask or avoid secrets, personal data, tokens, and internal URLs before capture.\nFor Playwright-style browser capture, features like disabled animations, hidden carets, and masking are worth using when visual stability matters.\nIf the noise is the bug, keep it; otherwise remove it.\n6. Use the right output format\nPNG is the default for screenshots, UI, code, terminals, and text-heavy captures.\nJPEG is for photographic content, not normal screenshots.\nWebP is fine for sharing or storage when compatibility is acceptable, but do not default to it if the consumer expects plain PNG files.\nAvoid recompressing screenshots through JPEG pipelines unless the user explicitly wants smaller lossy output.\n7. Make automation and CI captures debuggable\nOn failures, save a screenshot immediately before retrying or moving on.\nUse stable filenames for baselines and timestamps for ad hoc or batch captures.\nIn CI, identical viewport and deterministic state matter more than raw screenshot volume.\nHeadless runs should prefer browser-native screenshots over trying to screen-grab the host display.\n8. Validate that the screenshot is actually useful\nCheck that the important detail is visible, legible, and not cropped away.\nVerify that secrets are not still visible in tabs, sidebars, URLs, notifications, or test data.\nBefore/after comparisons should use the same viewport, zoom, theme, and state.\nA screenshot is bad if it is technically correct but useless for the human who needs it.\nHigh-Value Patterns\nmacOS: screencapture -x out.png for silent capture, -i for interactive selection, -R x,y,w,h for a fixed region.\niOS Simulator: xcrun simctl io booted screenshot out.png\nLinux Wayland: grim -g \"$(slurp)\" out.png\nPlaywright page capture: wait for the target state, then use page, element, clipped, or full-page screenshots deliberately.\nPlaywright stability features worth remembering: fixed viewport, disabled animations, hidden caret, masks for sensitive regions, and stable theme/media settings.\nCommon Traps\nTaking a browser-window screenshot when an element or page screenshot was the real need.\nCapturing before fonts, data, or layout transitions finish.\nComparing screenshots with different viewport sizes or zoom levels and treating the diff as meaningful.\nUsing JPEG for screenshots and blurring text, edges, and code.\nLetting timestamps, cursor blinks, notifications, or random data ruin visual diffs.\nForgetting that Wayland breaks familiar X11 screenshot tools.\nSharing screenshots with secrets still visible in tabs, sidebars, URLs, or test accounts.\nTaking full-page captures of huge pages and ending up with unreadable evidence.\nRelated Skills\n\nInstall with clawhub install <slug> if user confirms:\n\nplaywright — Browser automation, DOM interaction, and web screenshots\nimage — Post-capture format, cropping, compression, and export decisions\nimage-edit — Annotation, cleanup, masking, and targeted edits after capture\ndocumentation — Turning screenshots into docs, guides, and release assets\nvideo — When a flow should be recorded instead of reduced to still images\nFeedback\nIf useful: clawhub star screenshot\nStay updated: clawhub sync"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/screenshot",
    "publisherUrl": "https://clawhub.ai/ivangdavila/screenshot",
    "owner": "ivangdavila",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/screenshot",
    "downloadUrl": "https://openagent3.xyz/downloads/screenshot",
    "agentUrl": "https://openagent3.xyz/skills/screenshot/agent",
    "manifestUrl": "https://openagent3.xyz/skills/screenshot/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/screenshot/agent.md"
  }
}