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
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.
cat targets.txt | aquatoneFrom the project's documentation
cat hosts.txt | aquatone -ports largeFrom the project's documentation
cat scan.xml | aquatone -nmapFrom the project's documentation
cat hosts.txt | aquatone -out ~/aquatone/example.comFrom 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.