← 返回
数据分析 Key 中文

SnapRender

Give your agent eyes on the web — screenshot any URL as an image file. Supports device emulation (iPhone, iPad, Pixel, MacBook), dark mode, full-page scroll,...
让你的代理拥有网络视野——将任意URL截图保存为图片文件。支持设备模拟(iPhone、iPad、Pixel、MacBook)、暗模式、全页滚动等功能。
user0856
数据分析 clawhub v1.5.1 5 版本 100000 Key: 需要
★ 0
Stars
📥 1,483
下载
💾 23
安装
5
版本
#ai-agent#latest#mcp#monitoring#screenshot#vision#visual-analysis#web

概述

SnapRender — 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: 200 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 TARGET_URL with the target URL:

jq -n --arg url 'TARGET_URL' \
  '{url: $url, response_type: "json", format: "jpeg", quality: 60, block_ads: true, block_cookie_banners: true}' \
| curl -s -X POST "https://app.snap-render.com/v1/screenshot" \
  -H "X-API-Key: $SNAPRENDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d @- \
| 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

  1. Use exec tool only — NEVER the browser tool
  2. $SNAPRENDER_API_KEY is already set — use it literally in the command, do NOT replace it
  3. Always build JSON with jq --arg — never interpolate user input directly into shell strings or JSON. Pass values via jq -n --arg to prevent injection
  4. Always use format=jpeg&quality=60 — keeps response small enough for the agent context
  5. Always pipe to save the image to a file — the base64 response is too large to display inline
  6. Report metadata to the user — file size, response time, cache status, remaining credits

Render HTML or Markdown

Use POST with a JSON body to render raw HTML or Markdown content (no URL needed). Always use jq --arg to safely pass content:

# HTML
jq -n --arg html '<html><body><h1>Hello</h1><p>World</p></body></html>' \
  '{html: $html, format: "jpeg", quality: 60, response_type: "json"}' \
| curl -s -X POST "https://app.snap-render.com/v1/screenshot" \
  -H "X-API-Key: $SNAPRENDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d @- \
| tee /tmp/snap_response.json \
| jq -r '.image' | sed 's|data:image/[^;]*;base64,||' | base64 -d > /tmp/screenshot.jpg \
&& jq '{source, format, size, cache, responseTime, remainingCredits}' /tmp/snap_response.json
# Markdown
jq -n --arg md '# Hello World\n\nThis is **bold** text.' \
  '{markdown: $md, format: "jpeg", quality: 60, response_type: "json"}' \
| curl -s -X POST "https://app.snap-render.com/v1/screenshot" \
  -H "X-API-Key: $SNAPRENDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d @- \
| tee /tmp/snap_response.json \
| jq -r '.image' | sed 's|data:image/[^;]*;base64,||' | base64 -d > /tmp/screenshot.jpg \
&& jq '{source, format, size, cache, responseTime, remainingCredits}' /tmp/snap_response.json

Provide exactly one of url, html, or markdown in the JSON body. HTML max 2MB, Markdown max 500KB.

Signed URLs

Generate a pre-signed URL that anyone can use to view the screenshot without an API key. Signing is free; rendering the URL costs one credit.

jq -n --arg url 'TARGET_URL' \
  '{url: $url, expires_in: 86400}' \
| curl -s -X POST "https://app.snap-render.com/v1/screenshot/sign" \
  -H "X-API-Key: $SNAPRENDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d @- \
| jq '.'

The response contains signed_url, expires_at, and expires_in. Use the signed_url in tags, share it, or open it in a browser. No API key needed to render it.

Parameters

Pass as fields in the JSON body:

ParameterValuesDefault
----------------------------
urltarget URLrequired
response_typejsonjson (always use this)
formatjpeg, png, webp, pdfjpeg
quality1-10060
deviceiphone_14, iphone_15_pro, pixel_7, ipad_pro, macbook_prodesktop
dark_modetrue, falsefalse
full_pagetrue, falsefalse
block_adstrue, falsetrue
block_cookie_bannerstrue, falsetrue
width320-38401280
height200-10000800
delay0-100000 (ms wait after page load)
cachetrue, falsefalse (set true to enable caching)
cache_ttl0-259200086400 (seconds, clamped to plan max)
hide_selectorsCSS selectorsnone (comma-separated, hides elements before capture)
click_selectorCSS selectornone (clicks element before capture)
user_agentstringdefault Chrome UA

To add extra options, include them as fields in the jq JSON object. Example for dark mode on iPhone:

jq -n --arg url 'TARGET_URL' \
  '{url: $url, response_type: "json", format: "jpeg", quality: 60, block_ads: true, block_cookie_banners: true, device: "iphone_15_pro", dark_mode: true}' \
| curl -s -X POST ...

Examples

Desktop screenshot of stripe.com:

jq -n --arg url 'https://stripe.com' '{url: $url, response_type: "json", format: "jpeg", quality: 60, block_ads: true, block_cookie_banners: true}' | curl -s -X POST "https://app.snap-render.com/v1/screenshot" -H "X-API-Key: $SNAPRENDER_API_KEY" -H "Content-Type: application/json" -d @- | 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 jq object

Full scrollable page: add full_page: true to the jq object

Dark mode: add dark_mode: true to the jq object

Compare desktop vs mobile: make two calls, save to /tmp/screenshot_desktop.jpg and /tmp/screenshot_mobile.jpg

After Capturing

  1. Tell the user the screenshot was saved to /tmp/screenshot.jpg (or the filename you used)
  2. Report metadata: file size, response time, cache status, remaining credits
  3. 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: 3000 to the jq object to wait longer
  • Empty response: URL unreachable or blocked

Get an API Key

Free at https://snap-render.com/auth/signup — 200 screenshots/month, no credit card.

版本历史

共 5 个版本

  • v1.5.1 当前
    2026-05-08 12:17 安全 安全
  • v1.5.0
    2026-05-03 02:53 安全 安全
  • v1.3.2
    2026-03-29 01:02 安全 安全
  • v1.3.1
    2026-03-26 21:25
  • v1.3.0
    2026-03-11 11:21

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

data-analysis

Data Analysis

ivangdavila
{"answer":"数据分析与可视化。查询数据库、生成报告、自动化电子表格,将原始数据转化为清晰可行的见解。适用于:(1) 您……"}
★ 199 📥 65,180
data-analysis

Excel / XLSX

ivangdavila
创建、检查和编辑 Microsoft Excel 工作簿及 XLSX 文件,支持可靠的公式、日期、类型、格式、重算及模板保留功能。
★ 368 📥 140,626
data-analysis

Stock Analysis

udiedrichsen
{"answer":"基于雅虎财经数据,分析股票与加密货币。支持投资组合管理、自选股预警、股息分析、8维评分、热门趋势扫描及传闻/早期信号探测。适用于股票分析、持仓追踪、财报异动、加密监控、热门股追踪或提前发掘非主流传闻。"}
★ 270 📥 57,002