gowitness
3.2.1 open-sourceThe section your link pointed to isn't on gowitness's page any more, so we've brought you to the top.
gowitness is a website screenshot utility written in Golang that uses Chrome Headless to generate screenshots of web interfaces via the command line.
gowitness scan single --url "https://internal.corp.example.com" --write-db --chrome-user-data-dir ~/.config/google-chrome/Default
gowitness scan file -f targets.txt --screenshot-filter 200
echo '192.168.1.10:443' | gowitness scan file -
curl -X POST 'http://localhost:7171/submit/single' -H 'Content-Type: application/json' -d '{"url": "https://example.com"}'
runner, _ := runner.NewRunner(...opts)
reader := readers.NewFileReader(...fileopts)
go func() {
if err := reader.Read(runner.Targets); err != nil {
log.Error("error in reader.Read", "err", err)
}
}()
runner.Run()
runner.Close()
gowitness --allow-insecure-uri -f targets.txt
gowitness --delay 5 https://example.com
gowitness merge --help
gowitness file urls.txt --proxy http://localhost:8080
gowitness report list --json > gowitness_report.json
gowitness report serve
gowitness server
# Then browse to http://localhost:7171/?url=https://www.google.com
tool | gowitness file --source -
gowitness single -o my_screenshot.png https://example.com
gowitness nmap --service-contains http <target>
gowitness scan --cidr 192.168.0.0/30 --append-uri '/admin'
gowitness --port 80 --port 443 scan
gowitness nmap -f scan.xml --disabled-db
gowitness report generate --sort-perception
gowitness --user-agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)' https://example.com
gowitness --cidr 192.168.1.0/24 --file-cidr extra_targets.txt scan
Summary
gowitness is an open-source command-line utility, written in Go, that drives Chrome Headless to take screenshots of large numbers of websites and log what it sees along the way. It runs locally as a CLI tool (or as an importable Go library for embeddingembeddingLists of numbers a model produces to represent the meaning of text, images or code, so similar items sit close together. They power semantic search and RAG. into other tooling), reading targets from URL lists, CIDRCIDRA notation for a block of IP addresses, such as 10.0.0.0/24. The number after the slash says how many leading address bits identify the network. ranges, or Nmap and Nessus output, and writing results to SQLite, JSON Lines, or CSV, with a web-based viewer and REST APIREST APIA web API design style where clients interact with resources over HTTP using standard methods like GET, POST, and DELETE, giving cyber tools a predictable, language-agnostic way to integrate with external services. for browsing captures afterward. It suits red teamers and reconnaissance-focused practitioners who need to visually triage exposed web interfaces across a large target set rather than check them one by one. It sits in the recon tooling space alongside other HTTP-probing and attack-surface mapping utilities, distinguished by its focus on screenshotting at scale. First committed in 2017, it has 45 contributors and 49 commits in the past year, with a release roughly nine months ago, suggesting active but unhurried maintenance.
gowitness is a website screenshot utility written in Golang that uses Chrome Headless to generate screenshots of web interfaces via the command line.
How gowitness helps
Which of the web servers on this network actually have something worth logging into?
scans a list of URLs, CIDR ranges, or Nmap/Nessus output and screenshots every reachable host, so a large target set becomes a gallery you can scan by eye instead of visiting each address
Which of these hundreds of captures are actually the same login page or default install screen?
groups screenshots by perceptual similarity using hamming distance on their hashes, surfacing near-duplicate pages across a large capture set
Which of these hosts share a login page I've already seen, or match a page I'm looking for?
lets you search the report by the page's HTML body content, so you can find every capture containing a particular string or form rather than opening each one
What did a target's page actually send back, beyond the screenshot itself?
records the request log, headers, and cookies alongside each capture, and can surface debug-level error logs when something failed to load properly
Can I check a single suspicious URL right now without kicking off a whole scan?
submits one URL through the API or the immediate-mode web UI and returns the screenshot result directly in the response, without writing anything to the database
Can I capture pages that sit behind a login I've already established in my browser?
points the browser at an existing Chrome user data directory so the scan reuses an already-authenticated session instead of hitting an auth wall on every target
Languages
Command line
No command matches.
| option | found in | since | description |
|---|
Values are placeholders taken from each option’s declared default. Nothing is executed here — the output shown is a recording of a run that already happened.
Score card
-
Shipping velocity releases a month, last 12 months
-
Documentation quality release-notes rubric, 0–100
-
Breaking-change discipline how rarely a release breaks users, and notice given
-
Maintenance risk quiet time against its own cadence, maintainers
-
Innovation & surface new capabilities, API and MCP surface
- Community health
-
Contributor trend distinct committers, this year against last
-
Maintainer concentration bus factor now against a year ago
-
Issue backlog trend issues closed per issue opened, 12 months
-
Responsiveness median time to a maintainer’s first reply
Nine scores for gowitness, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.
Score cards are part of every paid plan.
See plans → Already subscribed? Sign in →Trajectory
Blank means never measured; nothing here is a filled-in zero.
Peer standings are included with Researcher and Business. See how this tool ranks against its competitors, using data we don't publish anywhere else.
See plans →Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.
How this is scored
- Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
- Documentation quality — the release-notes rubric published on the analytics page, unchanged.
- Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
- Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
- Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
- Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
- Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
- Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.
Release-note detail over time
See how much detail gowitness puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.
Checking release-note history…
Releases
25 entries
No entries match these filters.
- October 20261
- September 20261
- November 20251
- October 20242
- September 20244
- May 20231
- July 20221
- June 20221
- May 20211
- March 20211
- December 20201
- November 20201
- September 20202
- August 20201
- February 20201
- December 20191
- September 20192
- April 20181
- February 20181
Project health
Issue, contributor and maintainer activity in sensepost/gowitness, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.
- Contributors 10 +7 vs prior 12 months
- Maintainers 1 +0 joined · −0 left, last 12 months
- Bus factor 1 committers behind half the commits
- Community-filed 100% of issues opened, last 12 months
- Median time to close 207 days first maintainer reply 3.5 hours
- Open backlog 30 of 217 issues ever filed
- Issues opened / month 1 · 0 communitymaintainers
- Open backlog 30
- Contributors / month 3
- Commits / month 15
- Stars 4,510
- features 8%
- other 92%
Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this
Articles
1 article · updated Nov 4, 2026Where gowitness turns up in what others publish: how-tos, attack reports that name it, and incident write-ups. A row says why it is here and quotes where the article names it; the link goes to the publisher.
Breach post-mortems & incident response 1
-
From edge appliance to enterprise compromise: Multi-stage Linux intrusion via F5 and Confluence
The threat actor used gowitness to perform a detailed reconnaissance of the HTTP/HTTPS services identified in the previous scan.
1 more quote
gowitness scan nmap -f $i --write-db --write-screenshots --screenshot-path ./screenshots --screenshot-fullpage --open-only --service-contains http --delay 5 --threads 1 --chrome-proxy socks5://127.0.0.1:9090 Where they…
Libraries its release ships
What its latest release locks, checked against known advisories.None of its release's images build from a lockfile we can read.
Add the badge to your README
Maintain this project? The badge links readers straight to this page, so they can follow every release here.