website-screenshot

website-screenshot is a skill for Claude Code, Codex from JansenAnalytics/claudex. It costs 84 tokens per session (858 once invoked), scanned A, original, MIT.

A website screenshot tool that opens a URL in a headless browser—a browser running without a visible window—and saves a PNG image. It supports full-page, mobile, dark-mode, and different loading options.

In plain words
What is it for?
Use it to capture desktop or mobile pages, include the full scrollable page, wait for JavaScript content, or test a dark color scheme.
Why use it?
It gives you a repeatable visual snapshot of a webpage without opening it manually.

Skill for Claude CodeCodex

Which agent this was written for is unclear — built for openclaw. Also seen: built for openclaw.

Good fit Use it to capture desktop or mobile pages, include the full scrollable page, wait for JavaScript content, or test a dark color scheme.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/jansenanalytics/claudex/website-screenshot
Install

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.

Any agent
npx skills add JansenAnalytics/claudex --skill website-screenshot
Clone the repo
git clone --depth 1 https://github.com/JansenAnalytics/claudex

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for website-screenshot

README.md
[![agentmods](https://agentmods.dev/badge/skills/jansenanalytics/claudex/website-screenshot.svg)](https://agentmods.dev/skills/jansenanalytics/claudex/website-screenshot)
Your own site
<a href="https://agentmods.dev/skills/jansenanalytics/claudex/website-screenshot"><img src="https://agentmods.dev/badge/skills/jansenanalytics/claudex/website-screenshot.svg" alt="Measured on agentmods" height="20"></a>
Per session 84 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 858 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00084 $0.00858
Opus 5 $0.00042 $0.00429
Sonnet 5 $0.00017 $0.00172
Haiku 4.5 $0.00008 $0.00086

Measured 4d ago against content hash 65b36c37c610, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

website-screenshot scanned grade A with 0 findings 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 4d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/screenshot.cjs), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/website-screenshot/SKILL.md · 79 lines

How it starts

The opening of the file, as written. The whole thing — 79 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Website Screenshot

Uses playwright-core + system Chromium to capture screenshots headlessly. Prints the output path to stdout; exits 0 on success, 1 on failure.

Script

${CLAUDE_SKILLS_DIR:-$HOME/.claude-agent/.claude/skills}/website-screenshot/scripts/screenshot.cjs

Note: The .cjs extension is required — OpenClaw's package.json has "type": "module", which breaks .js files using require.

Usage

node <script> <url> [options]
Option Default Description
--output <path> /tmp/screenshot-<ts>.png Where to save the PNG
--width <px> 1280 Viewport width
--height <px> 900 Viewport height
--full-page off Capture full scrollable page
--wait <strategy> domcontentloaded domcontentloaded / load / networkidle
--delay <ms> 0 Extra wait after load (for JS-heavy pages)
--timeout <ms> 20000 Navigation timeout
--dark off Emulate dark color scheme
--mobile off 375×812 viewport, pixel ratio 2, mobile UA

The URL scheme is auto-added if missing (example.comhttps://example.com).

Workflow

  1. Run the script, capture stdout as the output path.
  2. Save to a persistent path/tmp vanishes between exec calls. Use the workspace or a reliable path.
  3. Send via message tool, then delete the file.

Standard pattern

OUTFILE=$HOME/.openclaw/workspace/screenshot-$(date +%s).png

node ${CLAUDE_SKILLS_DIR:-$HOME/.claude-agent/.claude/skills}/website-screenshot/scripts/screenshot.cjs \
  "https://example.com" \
  --output "$OUTFILE" \
  --wait domcontentloaded

# Then in message tool:
#   media: $OUTFILE
#   caption: "example.com"

# Then clean up:
rm "$OUTFILE"

Read the full file on GitHub · 79 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

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.

  1. 4d ago First seen · 79 lines · 84 tokens per session scan A 65b36c37c610

Subscribe to this mod's changes

website-screenshot is a skill published in the GitHub repository JansenAnalytics/claudex (5 stars, last pushed 2mo ago), licensed MIT. It adds 84 tokens to every session and 858 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.

Related

Other skills, from other repositories

stealth-browser-launch

Launch stealth Chromium with C++ fingerprint patches for anti-bot bypass.

uphiago/recon-skills · 19 tokens

browser-automation-expert

Drive a real browser to navigate, extract data and complete flows on sites without an API: scraping, crawling, authentication, dynamic content and anti-bot handling. Use when the user mentions web scraping, crawling, browser automation, Puppeteer or headless Chrome, wants data pulled from a website, needs a login or…

personamanagmentlayer/pcl · 94 tokens

fortress-stealth-browser

Use when a web fetch is blocked — Cloudflare, DataDome, PerimeterX, Akamai, a 403/429, a CAPTCHA/"Press & Hold", "Access denied", an empty JavaScript shell, or a page whose data only appears after client-side rendering. Drives a real recompiled-Chromium stealth engine (Fortress) via the Fortress MCP to fetch, extract…

tiliondev/fortress · 130 tokens

playwright-cli

Automate browser interactions, test web pages and work with Playwright tests.

microsoft/playwright · 19 tokens

spanify-buffers

Find and fix unsafe buffer operations in a C++ file by removing UNSAFETODO markers and replacing unsafe raw pointers/C-style functions with base::span and standard safe containers. Use when the user asks to fix unsafe buffer warnings or -Wunsafe-buffer-usage errors. Don't use for other types of memory safety bugs like…

chromium/chromium · 86 tokens

chrome-performance-optimizer

Autonomous multi-agent performance optimization loop for Chromium and V8. Supports profile-seeded mode (analyzing Speedometer 3 / JetStream profiles via pprof or Sagacity MCP) and pattern-driven discovery mode (fan-out exploration of Blink and V8 macro-patterns grounded in historical wins and past rejected CLs).…

chromium/chromium · 119 tokens