Snaprender
Verified@User0856
npx machina-cli add skill @User0856/snaprender --openclawSnapRender — Give Your Agent Eyes
Your agent can read the web but can't see it. One command and it captures pixel-perfect screenshots — any site, any device, in seconds.
"Screenshot stripe.com on iPhone", "Compare desktop vs mobile", "Full-page dark mode capture" — just ask.
Free tier: 50 screenshots/month, no credit card. Get a key →
IMPORTANT: Use the exec tool with curl. NEVER use the browser tool for screenshots.
How to Capture
Run this command via the exec tool. Replace ENCODED_URL with the URL-encoded target (e.g. https%3A%2F%2Fstripe.com):
curl -s "https://app.snap-render.com/v1/screenshot?url=ENCODED_URL&response_type=json&format=jpeg&quality=60&block_ads=true&block_cookie_banners=true" \
-H "X-API-Key: $SNAPRENDER_API_KEY" \
| tee /tmp/snap_response.json \
| jq -r '.image' | sed 's|data:image/[^;]*;base64,||' | base64 -d > /tmp/screenshot.jpg \
&& jq '{url, format, size, cache, responseTime, remainingCredits}' /tmp/snap_response.json
This saves the screenshot to /tmp/screenshot.jpg and prints metadata.
Rules
- Use
exectool only — NEVER thebrowsertool $SNAPRENDER_API_KEYis already set — use it literally in the command, do NOT replace it- URL-encode the target —
https://stripe.com→https%3A%2F%2Fstripe.com - Always use
format=jpeg&quality=60— keeps response small enough for the agent context - Always pipe to save the image to a file — the base64 response is too large to display inline
- Report metadata to the user — file size, response time, cache status, remaining credits
Parameters
Add as query parameters to the URL:
| Parameter | Values | Default |
|---|---|---|
| url | URL-encoded target | required |
| response_type | json | json (always use this) |
| format | jpeg, png, webp | jpeg |
| quality | 1-100 | 60 |
| device | iphone_15_pro, pixel_7, ipad_pro, macbook_pro | desktop |
| dark_mode | true, false | false |
| full_page | true, false | false |
| block_ads | true, false | true |
| block_cookie_banners | true, false | true |
| width | 320-3840 | 1280 |
| height | 200-10000 | 800 |
| delay | 0-10000 | 0 (ms wait after page load) |
Examples
Desktop screenshot of stripe.com:
curl -s "https://app.snap-render.com/v1/screenshot?url=https%3A%2F%2Fstripe.com&response_type=json&format=jpeg&quality=60&block_ads=true&block_cookie_banners=true" -H "X-API-Key: $SNAPRENDER_API_KEY" | tee /tmp/snap_response.json | jq -r '.image' | sed 's|data:image/[^;]*;base64,||' | base64 -d > /tmp/screenshot.jpg && jq '{url, format, size, cache, responseTime, remainingCredits}' /tmp/snap_response.json
Mobile screenshot: add &device=iphone_15_pro to the URL
Full scrollable page: add &full_page=true to the URL
Dark mode: add &dark_mode=true to the URL
Compare desktop vs mobile: make two calls, save to /tmp/screenshot_desktop.jpg and /tmp/screenshot_mobile.jpg
After Capturing
- Tell the user the screenshot was saved to
/tmp/screenshot.jpg(or the filename you used) - Report metadata: file size, response time, cache status, remaining credits
- For comparisons, save each screenshot to a different filename
Errors
- 401: Invalid API key — check SNAPRENDER_API_KEY
- 429: Rate limit or quota exceeded — wait or upgrade plan
- Timeout: Target site is slow — add
&delay=3000to wait longer - Empty response: URL unreachable or blocked
Get an API Key
Free at https://app.snap-render.com/auth/signup — 50 screenshots/month, no credit card.
Overview
SnapRender lets your agent capture pixel-perfect screenshots of any web page in seconds. It supports device emulation (iPhone, iPad, Pixel, MacBook), dark mode, full-page scrolling, and ad blocking, all via a curl-based endpoint with a pre-set SNAPRENDER_API_KEY.
How This Skill Works
Invoke the curl endpoint https://app.snap-render.com/v1/screenshot with an URL-encoded target and params (format=jpeg, quality=60, device, dark_mode, full_page, etc.). The API returns JSON containing the image data and metadata; you decode the base64 image to a file and output the metadata, saving the image to a local path (e.g., /tmp/screenshot.jpg). The API key is pre-set as SNAPRENDER_API_KEY.
When to Use It
- QA and design reviews by rendering pages on real devices (iPhone, iPad, Pixel, MacBook).
- Compare desktop vs mobile layouts by capturing two screenshots.
- Create full-page, dark-mode captures for long articles or landing pages.
- Capture clean screenshots with built-in ad and cookie banner blocking.
- Generate lightweight previews without relying on a browser tool.
Quick Start
- Step 1: Run the curl command with an encoded URL to request a screenshot.
- Step 2: Pipe the output to save the image to a file (e.g., /tmp/screenshot.jpg).
- Step 3: Use jq to display metadata like url, format, size, cache, responseTime, and remainingCredits.
Best Practices
- Use the exec tool exclusively for captures.
- Keep using the literal SNAPRENDER_API_KEY and don't embed it elsewhere.
- URL-encode the target URL before sending.
- Always set format=jpeg and quality=60 to minimize payload.
- Always pipe output to a file and report metadata (size, responseTime, cache, remainingCredits).
Example Use Cases
- Desktop screenshot of stripe.com
- Mobile screenshot using device=iphone_15_pro
- Full-page scrollable capture
- Dark-mode capture
- Desktop vs mobile comparison