Updated Jul 14, 2026

Discovery

Screenshot every URL in a target list

Browser-driven screenshots for visual host triage.

Agent

overview

What webscreenshot does

webscreenshot renders each URL and writes an image to a folder. Point --input-file at one URL per line, or pass a single url. Choose --renderer among phantomjs, chrome, chromium, edgechromium, or firefox.

Use it after a liveness probe when you need a contact sheet of login panels, default pages, and odd apps. Control --format, --window-size, --workers, --proxy, and --cookie (or --http-username / --http-password) for auth and scale.

Trickest provides webscreenshot as a managed Discovery node: input file in, folder of images out. Prefer httpx when probe-and-screenshot should stay one step. Prefer gowitness or aquatone when you want a bundled report UI.

source github.com/maaaaz/webscreenshot

use cases

Where webscreenshot fits

Triage a surface visually

Screenshot every live host so an analyst can spot login portals, admin panels, and default pages at a glance instead of reading headers.

Capture a large list in parallel

Point --input-file at a file of URLs and raise --workers to render hundreds of targets without waiting on one at a time.

Screenshot authenticated pages

Pass --cookie, a --header, or --http-username and --http-password so the capture shows the page as a logged-in user would see it.

Choose a renderer and format

Set --renderer to chrome or firefox over the legacy PhantomJS, and use --format and --quality to match how the output gets reviewed.

reference

webscreenshot inputs and flags

28 inputs
NameTypeFlagDescription
urlSTRING·Single URL target.
input-fileFILE--input-fileFile containing the target list, one URL per line.
rendererSTRING--rendererphantomjs, chrome, chromium, edgechromium, or firefox (default phantomjs).
formatSTRING--formatOutput image format (pdf, png, jpg, jpeg, bmp, ppm). Default png.
window-sizeSTRING--window-sizeWidth and height of the screen capture (default 1200,800).
workersSTRING--workersNumber of parallel execution workers (default 4).
proxySTRING--proxyProxy to route captures through (e.g. http://proxy.company.com:8080).
cookieSTRING--cookieCookie string to add to each request.

Showing key inputs. webscreenshot exposes 28 inputs in total.

Full flag reference (28 inputs)
NameTypeFlagDescription
sslBOOLEAN--sslEnforce SSL/TLS for every connection.
urlSTRING·Single URL target.
cropSTRING--cropRectangle t,l,w,h to crop the capture to (default WINDOW_SIZE '0,0,w,h'). Example: 10,20,w,h.
portSTRING--portUse the specified port for each target in the input list.
labelBOOLEAN--labelFor each screenshot, create another one displaying the target URL inside it (requires imagemagick).
proxySTRING--proxySpecify a proxy. Example: http://proxy.company.com:8080.
cookieSTRING--cookieCookie string to add. Example: JSESSIONID=1234; YOLO=SWAG.
formatSTRING--formatOutput image file format (pdf, png, jpg, jpeg, bmp, ppm). Default png.
headerSTRING--headerCustom or additional header. Repeat for each header. Example: Host: localhost.
qualitySTRING--qualityOutput image quality, an integer between 0 and 100 (default 75).
timeoutSTRING--timeoutRenderer execution timeout in seconds (default 30).
workersSTRING--workersNumber of parallel execution workers (default 4).
rendererSTRING--rendererRenderer to use: phantomjs (legacy but best results), chrome, chromium, edgechromium, or firefox (version > 57). Default phantomjs.
custom-jsFILE--custom-jsFile containing JavaScript code to run before taking the screenshot (phantomjs only).
input-fileFILE--input-fileFile containing the target list, one URL per line.
label-sizeSTRING--label-sizeFont size for the label (default 60).
no-xserverBOOLEAN--no-xserverRun without an X server (via xvfb-run).
proxy-authSTRING--proxy-authAuthentication information for the proxy. Example: user:password.
proxy-typeSTRING--proxy-typeProxy type: http (default), none (disable completely), or socks5.
window-sizeSTRING--window-sizeWidth and height of the screen capture (default 1200,800).
http-passwordSTRING--http-passwordPassword for HTTP Basic Authentication.
http-usernameSTRING--http-usernameUsername for HTTP Basic Authentication.
multiprotocolBOOLEAN--multiprotocolPerform screenshots over both HTTP and HTTPS for each target.
no-error-fileBOOLEAN--no-error-fileDo not write a file listing the URLs of failed screenshots (default false).
label-bg-colorSTRING--label-bg-colorLabel imagemagick background color (default NavajoWhite).
renderer-binaryFILE--renderer-binaryPath to the renderer executable when it is not on the PATH.
verbosity-levelSTRING--verbosityVerbosity level, repeat to increase (-v INFO, -vv DEBUG). Default ERROR.
ajax-max-timeoutsSTRING--ajax-max-timeoutsPer-AJAX-request and max-URL timeout in milliseconds (default 1400,1800).

example

Run webscreenshot

webscreenshot · command
# screenshot a list of live hosts with Chrome, 8 parallel workerswebscreenshot --input-file live-hosts.txt --renderer chrome --workers 8 --format png
sample output
webscreenshot.py version 2.97 [+] 6 URLs to be screenshot[INFO][http://example.com:80/] Screenshot OK[INFO][https://example.com:443/] Screenshot OK[INFO][http://198.51.100.20:8080/] Screenshot OK[INFO][http://203.0.113.45:80/] Screenshot OK[ERROR][http://198.51.100.37:80/] Screenshot somehow failed[+] 5 actual URLs screenshot[+] 1 error(s)

guidance

Choosing webscreenshot

Use webscreenshot to turn live hosts into images for visual triage. It captures; it does not probe. Run httpx first. For screenshots plus an HTML report, prefer gowitness or aquatone.

gowitness

Go-based screenshotter with a built-in report UI and database. Heavier stack when you want the report UI, not just PNGs.

aquatone

Screenshots plus clustering of similar pages into an HTML report for triage at scale.

httpx

Probes liveness and titles, and can capture screenshots inline, so one node both filters and shoots.

faq

webscreenshot questions

Put one URL per line in a file and set --input-file, or pass a single url. Each target renders to an image in the FOLDER output. Pick --renderer and raise --workers for larger lists.

Run webscreenshot yourself

A host list is filtered to live hosts by httpx, then webscreenshot captures each one and writes the images as the workflow output.

Facts on this page come from the live Trickest tool library.