Web Screenshot and JavaScript Execution

VerifiedCaution

Takes a screenshot of a web page or executes JavaScript against it using the websnap command. Useful for checking layout, verifying styling, inspecting rendered content, or querying page properties such as dimensions and scroll height. Supports configurable viewport size, full-page capture, and running custom JavaScript expressions.

Sby Skills Guide Bot
DevelopmentBeginner
806/2/2026
Claude Code
#screenshot#web-page#javascript#rendering#layout

Recommended for

Our review

Takes a screenshot of a web page or runs JavaScript against it, useful for checking layout or inspecting rendered content.

Strengths

  • Supports screenshots at custom viewport sizes and scroll offsets
  • Can execute arbitrary JavaScript on the target page
  • Full page capture with -f option
  • Clear output: PNG path for screenshots, direct JS result for -r

Limitations

  • Each call spawns a fresh browser with no persistent state (no cookies, localStorage)
  • Requires a Read tool to display the screenshot
  • No support for complex interactions (clicks, forms)
When to use it

Use websnap when you need to visually verify page rendering or extract page properties via JavaScript.

When not to use it

Avoid websnap if you need to interact with the page (navigation, forms) or require persistent session state.

Security analysis

Caution
Quality score85/100

The skill runs a shell command with arguments provided by the user or the agent. While it does not explicitly perform destructive actions, the use of Bash and passing unfiltered arguments to an external tool presents a risk of command injection or unintended behavior if the websnap command fails to sanitize inputs. The -r option allows execution of arbitrary JavaScript, which could be abused if the agent or user provides malicious scripts, though this is inherent to the tool's functionality.

Findings
  • Uses Bash to execute a command with user-supplied arguments, which may be vulnerable to command injection if the websnap tool does not properly sanitize inputs.

Examples

Screenshot of a local page
/websnap http://localhost:1313/guide/
Custom viewport size
/websnap http://localhost:1313/ -w 1920 -h 1080
Run JavaScript to get page title
/websnap http://example.com -r 'document.title'

name: websnap description: Take a screenshot of a web page or run JavaScript against it. Use when checking page layout, verifying styling changes, inspecting rendered content, or querying page properties like dimensions. argument-hint: <url> [-w width] [-h height] [-y scroll] [-f] [-r js] allowed-tools: Bash, Read disable-model-invocation: true

Take a screenshot of the specified URL using websnap and display the result.

Steps

  1. Run: websnap $ARGUMENTS
  2. For screenshots: the command outputs the path to the saved PNG (in /tmp/), then use the Read tool to display the image
  3. For -r (run JS): the command outputs the JavaScript result directly (no screenshot)

Options

  • -w, --width <px> — Viewport width (default: 1280)
  • -h, --height <px> — Viewport height (default: 1080)
  • -x, --xoffset <px> — Horizontal scroll offset
  • -y, --yoffset <px> — Vertical scroll offset
  • -f, --full — Capture full page height (ignores -h)
  • -r, --run <js> — Run JavaScript and output result (no screenshot)

Examples

/websnap http://localhost:1313/guide/
/websnap http://localhost:1313/ -w 1920 -h 1080
/websnap http://localhost:1313/guide/ -y 500
/websnap http://localhost:1313/ -f
/websnap http://example.com -r 'document.title'
/websnap http://example.com -r 'document.documentElement.scrollHeight'

If no URL is provided, ask the user what page they want to screenshot.

Notes

Each call to websnap spawns a fresh browser instance. State does not persist between calls (no cookies, localStorage, or session data).

Related skills