URL and endpoint discovery
Hakrawler
Lightweight Go crawler that reads URLs from stdin and prints the links and JavaScript file locations it finds.
5.2k stars · last push August 5, 2026 · 2.1 · GPL-3.0
What it finds
Hakrawler crawls each URL piped to it and outputs discovered URLs and JavaScript file locations. The README describes it as a simple implementation of the Gocolly library. Flags control depth, subdomain inclusion, headers, proxying and JSON output.
- URLs
- JavaScript file locations
- forms (with -s source tagging)
Does it touch the target?
Sends traffic to the target's systems. Use only with the owner's permission.
README: "Fast golang web crawler for gathering URLs and JavaScript file locations." It requests the target's pages directly; there are flags to disable redirects and TLS verification and to route requests through a proxy.
API keys: The README documents no API keys or external services.
Install
go install github.com/hakluke/hakrawler@latestFrom the project's documentation
sudo apt install hakrawlerFrom 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.
echo https://example.com | hakrawlerFrom the project's documentation
cat urls.txt | hakrawler -timeout 5From the project's documentation
echo https://example.com | hakrawler -subsFrom the project's documentation
cat urls.txt | hakrawler -proxy http://localhost:8080From the project's documentation
Output formats: plain text (stdout), JSON (-json)
Limits the project documents
- Often returns no URLs when the given domain redirects to a subdomain outside scope; specify the final URL or use -subs.
- The Kali apt package installs an older version that the author says may be buggy and lacks features.
- Default crawl depth is 2.
Deepak's take
Analysis, not documentation
- Use it when
- Use it for a quick, low-setup crawl inside a shell pipeline, for example after probing which hosts respond.
- Skip it when
- Skip it for JavaScript-heavy apps that render links client-side; Katana's headless mode covers those. Skip it too when no traffic to the target is allowed.
- What it will miss
- Its README documents no headless browser, so routes built by client-side JavaScript at runtime may not appear.
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: GPL-3.0. Hakrawler is a trademark or project name of its owners; this library is not affiliated with it.