Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add cosmicstack-labs/mercury-agent-skills --skill screenshotgit clone --depth 1 https://github.com/cosmicstack-labs/mercury-agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cosmicstack-labs/mercury-agent-skills/screenshot)<a href="https://agentmods.dev/skills/cosmicstack-labs/mercury-agent-skills/screenshot"><img src="https://agentmods.dev/badge/skills/cosmicstack-labs/mercury-agent-skills/screenshot/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cosmicstack-labs/mercury-agent-skills/screenshot"><img src="https://agentmods.dev/badge/skills/cosmicstack-labs/mercury-agent-skills/screenshot.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00058 | $0.08900 |
| Opus 5 | $0.00029 | $0.04450 |
| Sonnet 5 | $0.00012 | $0.01780 |
| Haiku 4.5 | $0.00006 | $0.00890 |
Grade A, and why
screenshot scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
subprocess.run(cmd, check=True) How it starts
The opening of the file, as written. The whole thing — 1,070 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Screenshot Skill
Capture high-fidelity screenshots of any website using Playwright — the industry-standard browser automation framework. This skill covers viewport presets (mobile, tablet, desktop), dark/light mode, full-page captures, custom dimensions, element-level capture by CSS selector, text-based area capture, split-screen viewports, and automatic delivery to the user via Telegram or the active output channel.
Core Principles
1. Wait for the Right Moment
Screenshots fail when content hasn't loaded. Always wait for network idle, specific selectors, or a minimum timeout before capturing. Rushing the capture produces blank or partial images.
2. Match the Viewport to the Use Case
A screenshot taken at 1920x1080 tells a different story than one at 375x667. Choose viewport presets deliberately based on what you're testing or documenting.
3. Respect Rate Limits and Server Load
Don't hammer a website with concurrent screenshot requests. Add delays between captures, respect robots.txt, and avoid high-frequency automated captures of any single domain.
4. Handle JS-Heavy Pages
Modern SPAs and dynamic content need extra care. Use wait_until: networkidle, wait for specific CSS selectors, or add explicit delays for animations to finish before capturing.
5. Capture Only What Matters
Don't always screenshot the full page. Use element selectors and text-based area capture to zero in on the specific content that matters, reducing file size and increasing clarity.
Installation and Setup
Prerequisites
# Install Playwright
pip install playwright
# Install browser binaries
playwright install chromium
# Or install all browsers
playwright install
Verify Installation
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
print(f"Browser version: {browser.version}")
browser.close()
Quick Start — Basic Screenshot
from playwright.sync_api import sync_playwright
def take_screenshot(url: str, output_path: str = "screenshot.png"):
"""Take a simple screenshot with default settings."""
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto(url, wait_until="networkidle")
page.screenshot(path=output_path, full_page=False)
browser.close()
print(f"Screenshot saved to {output_path}")
# Usage
take_screenshot("https://example.com")
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 1,070 lines · 58 tokens per session scan A 40f21fa1b9f2
screenshot is a skill published in the GitHub repository cosmicstack-labs/mercury-agent-skills (470 stars, last pushed 15d ago), licensed MIT. It adds 58 tokens to every session and 8,900 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
dingtalk_channel_connect
Use a headed browser to automatically complete DingTalk channel integration for QwenPaw. Applicable when the user mentions DingTalk, developer console, Client ID, Client Secret, bot, Stream mode, binding or configuring a channel. Supports pausing when a login page is detected and resuming after the user logs in.
browser_cdp
Browser connection controls for finding local debugging ports, attaching to an already running Chrome browser, or sharing one browser between tools.
browser_visible
Browser launch controls for choosing whether a Chromium-based browser window is visible, which browser program to run, and which startup options to pass.
browser_visible
Use this skill when the user needs to control the browser launch mode for browser. By default browser is managed by Playwright and opens no debugging port (pass an explicit cdpport to let another local tool attach); headed controls whether the window is visible, and privatemode is kept for backward compatibility and…
ego-browser
Skill "ego-browser" from citrolabs/ego-lite, covering ego-browser, quick start, common helpers, task spaces and control handoff.
browser
Drive a live browser with async Python against QwenPaw's builtin Browser SDK. The full reference is below; re-load this browser skill after context compaction.