website-screenshots.capture
Capture a screenshot of a public website so the user or agent can inspect its layout, content, and UI.
The image is saved to account file storage. The response includes screenshot_url for API users and download_code for agents to run vee3-get-file.
Cost = 20 tokens.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http or https URL to capture. Private, localhost, and internal network addresses are blocked. | |
| format | No | Output image format. 'png' preserves lossless quality (default). 'jpeg' produces smaller files. | png |
| quality | No | JPEG compression quality from 0 (smallest) to 100 (best). Only applies when format is 'jpeg'; ignored for PNG. | |
| dark_mode | No | When true, emulate prefers-color-scheme: dark so sites with dark-mode CSS render in dark mode. Has no effect on sites without dark-mode styling. | |
| file_name | No | Optional account-relative storage path for the screenshot. If omitted, the file is stored under downloads/ with a generated name. | |
| full_page | No | Capture the full scrollable page. When false, only the viewport area is captured. | |
| wait_until | No | When to take the screenshot: 'load' (load event), 'domcontentloaded' (DOM ready, faster; use with post_load_wait to let the page settle), or 'networkidle' (no network activity for 500ms; can time out on pages with ongoing requests). | domcontentloaded |
| post_load_wait | No | Extra seconds to wait after wait_until before capturing. Only valid when wait_until is domcontentloaded. Use this instead of networkidle when pages keep network activity. | |
| viewport_width | No | Browser viewport width in pixels. | |
| timeout_seconds | No | Maximum seconds to wait for the page to load before failing. | |
| viewport_height | No | Browser viewport height in pixels. | |
| block_cookie_banners | No | When true, attempt to dismiss common cookie consent banners and overlays before capture. Best-effort - custom or first-party banners may remain. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Echo of requested URL. | |
| format | No | Echo of the requested output format (png or jpeg). | |
| status | No | Always "completed" for synchronous capture. | |
| command | No | Suggested terminal command for downloading to a local path. | |
| quality | No | Echo of JPEG quality used when format is jpeg. | |
| dark_mode | No | Echo of whether dark color scheme emulation was used. | |
| file_name | No | Account-relative path where the screenshot was stored. | |
| full_page | No | Whether full page was captured. | |
| created_at | No | ISO 8601 timestamp. | |
| expires_at | No | ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve). | |
| download_id | No | Stable identifier for the reserved download. | |
| download_code | No | Short code to pass to the @vee3/cli `vee3-get-file` command. | |
| screenshot_id | No | Unique identifier, prefix ss_. | |
| retained_until | No | ISO 8601 timestamp when account storage retention expires. | |
| screenshot_url | No | Signed download URL from account file storage. | |
| viewport_width | No | Actual viewport width used. | |
| file_size_bytes | No | Image file size in bytes. | |
| install_command | No | One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca. | |
| troubleshooting | No | What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps. | |
| viewport_height | No | Actual viewport height used. | |
| block_cookie_banners | No | Echo of whether cookie banner dismissal was attempted. |