Skip to content

Screenshots and visual triage

gowitness

Go tool that screenshots websites with headless Chrome from URL lists, CIDRs or Nmap/Nessus results and serves a browsable report.

4.6k stars · last push October 29, 2026 · 3.2.2 · GPL-3.0

GitHub repositoryOfficial docs

What it finds

gowitness loads each target URL in headless Chrome, saves a screenshot, and can record the request log, console logs, headers and cookies along the way. Targets can come from a single URL, a file or stdin, network CIDRs, Nmap or Nessus results, or a JSON API. Results go to SQLite, JSON Lines or CSV, with a web report viewer for SQLite data.

  • page screenshots
  • HTTP headers
  • cookies
  • console logs
  • request logs

Does it touch the target?

Sends traffic to the target's systems. Use only with the owner's permission.

It "uses Chrome Headless to generate screenshots of web interfaces", so each target page is loaded in a real browser, including its sub-requests.

API keys: The README and wiki describe no API keys; its own report server exposes an API, but no third-party key is needed.

Install

Install with go
go install github.com/sensepost/gowitness@latest

From the project's documentation

Install with docker
docker pull ghcr.io/sensepost/gowitness:latest

From the project's documentation

How to run it

Examples use reserved documentation hosts such as example.com. Replace them with a domain you own or are authorised to test.

Screenshot one site, writing to SQLite and ./screenshots
gowitness scan single --url "https://example.com" --write-db

From the project's documentation

Screenshot targets from an Nmap XML file (Docker)
docker run --rm -v $(pwd):/data -p7171:7171 ghcr.io/sensepost/gowitness gowitness scan nmap -f /data/nmap.xml

From the project's documentation

Start the local report viewer
gowitness report server

From the project's documentation

Output formats: sqlite, jsonl, csv, stdout

Limits the project documents

  • Requires Google Chrome or Chromium installed.
  • "Both Linux and macOS is supported, with Windows support mostly working."
  • Building from source needs Go 1.23.1 or later plus npm for the frontend (wiki).
  • The web report viewer works only "if you saved data to SQLite"; it listens on localhost:7171 by default.

Deepak's take

Analysis, not documentation

Use it when
Use it after host or port discovery to eyeball hundreds of web services quickly and spot login pages, default installs and forgotten admin panels.
Skip it when
If you only need status codes and titles in a pipeline, httpx is faster and lighter. gowitness is for visual triage and a shareable report.
What it will miss
It only screenshots the URLs it is given, so it will not discover hosts, paths or non-web services.

Facts read from the project's README and docs on November 10, 2026. Repository data as of November 11, 2026. Licence: GPL-3.0. gowitness is a trademark or project name of its owners; this library is not affiliated with it.