Skip to content

Screenshots and visual triage

Aquatone

Archived Go tool that probes common web ports on hosts, screenshots responsive sites with Chromium and clusters them in an HTML report.

6.0k stars · last push May 22, 2022 · v1.7.0 · MIT

GitHub repository

This repository is archived: it no longer receives fixes. For the same job, see gowitness.

What it finds

Aquatone reads hosts, domains, IPs or URLs from stdin, scans hosts on common web ports, and turns responsive ones into URLs. It screenshots each with Chrome or Chromium, saves headers and bodies, and builds an HTML report clustering pages by similarity. It can also parse Nmap or Masscan XML. The repository is archived on GitHub.

  • open web ports
  • responsive URLs
  • page screenshots
  • response headers
  • response bodies

Does it touch the target?

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

"IPs, hostnames and domain names in the data will undergo scanning for ports that are typically used for web services" (default 80, 443, 8000, 8080, 8443), then each responsive URL is loaded in a headless browser.

API keys: The README describes no API keys or third-party services.

Install

The project documents prebuilt release downloads rather than an install command. It is archived, so prefer a maintained alternative such as gowitness.

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.

Process a list of targets
cat targets.txt | aquatone

From the project's documentation

Use the large built-in web port list
cat hosts.txt | aquatone -ports large

From the project's documentation

Report on hosts from an Nmap or Masscan XML scan
cat scan.xml | aquatone -nmap

From the project's documentation

Write output to a chosen directory
cat hosts.txt | aquatone -out ~/aquatone/example.com

From the project's documentation

Output formats: html, txt, json, png

Limits the project documents

  • Repository is archived on GitHub (read-only); last release v1.7.0 was published 2019-05-19 and last push was 2022-05-22.
  • "Google Chrome is currently giving unreliable results when running in headless mode, so it is recommended to install Chromium."
  • Compiling from source is unsupported: "You are on your own if you want to do this."
  • URLs in the input "are assumed to be alive and do not undergo port scanning."

Deepak's take

Analysis, not documentation

Use it when
Use it only to reproduce older workflows or reports that expect its HTML clustering output. It still parses Nmap and Masscan XML.
Skip it when
For new work prefer gowitness, which is maintained and covers screenshots, Nmap input and a report viewer. Pair it with httpx or naabu for probing.
What it will miss
It does not enumerate subdomains itself, so it misses any host not already in its input.

Facts read from the project's README and docs on November 10, 2026. Repository data as of November 11, 2026. Listed under GitHub's reconnaissance topic. Licence: MIT. Aquatone is a trademark or project name of its owners; this library is not affiliated with it.