A concurrency-first web crawler and scraping engine in Rust that renders JavaScript only where needed.
projectdiscovery/katana
A fast, configurable web crawler and spider framework from ProjectDiscovery, with standard and headless browser modes for discovering endpoints.
- Stars
- 17,807
- Forks
- 1,218
- Open issues
- 21
- Last commit
- 23 hours ago
What is it?
Katana is a command-line crawler written in Go for discovering URLs and endpoints on websites. It runs in two modes: a standard mode that uses Go's HTTP client and only parses raw responses, and a headless mode that drives Chrome so it can also capture endpoints produced by JavaScript and XHR requests.
Scope is controlled by root domain, fully qualified domain, or custom regex rules, and output can be written to stdout, a file, or JSONL with selectable fields. Input can come from a single URL, a list file, or stdin, which makes it easy to chain with tools such as httpx.
The project also includes options for JavaScript endpoint parsing, automatic form filling, known-file crawling (robots.txt and sitemap.xml), similar-URL and similar-page filtering, rate limiting, and a machine-learning knowledge base that classifies page types and detects secrets or API endpoints.
Key features
- 01Standard HTTP crawling and headless Chrome crawling modes
- 02JavaScript file parsing to discover endpoints
- 03Scope control by root domain, FQDN, or regex
- 04Automatic form filling and recorded-flow login replay in headless mode
- 05Similar-URL and similar-page filtering to reduce duplicate crawling
- 06Output to stdout, files, or JSONL with configurable fields
Use cases
- Mapping the attack surface or endpoints of a web application during security testing
- Building a URL list for further scanning in an automation pipeline
- Crawling single-page applications that rely on JavaScript-rendered content
- Collecting site structure while limiting scope to a target domain
Quick start
- 1
Install katana with Go (requires Go 1.26+)
CGO_ENABLED=1 go install github.com/projectdiscovery/katana/cmd/katana@latest - 2
Crawl a target URL
katana -u https://tesla.com
Things to know
- Requires Go 1.26 or newer to install.
- Headless mode needs a Chrome browser, either installed locally or provided by you.
- Several features are marked experimental, including automatic form filling and headless hybrid crawling.
In collections
Topics
FAQ
- What is katana?
- A fast, configurable web crawler and spider framework from ProjectDiscovery, with standard and headless browser modes for discovering endpoints. Katana is a command-line crawler written in Go for discovering URLs and endpoints on websites. It runs in two modes: a standard mode that uses Go's HTTP client and only parses raw responses, and a headless mode that drives Chrome so it can also capture endpoints produced by JavaScript and XHR requests.
- Is katana free to use? What license does it have?
- katana is open source under the MIT license. Check the license terms before using it in commercial products.
- Is katana still maintained?
- Actively maintained. The last commit to katana was on Nov 6, 2026.
- What can I use katana for?
- Mapping the attack surface or endpoints of a web application during security testing Building a URL list for further scanning in an automation pipeline Crawling single-page applications that rely on JavaScript-rendered content Collecting site structure while limiting scope to a target domain
- How do I install katana?
- Install katana with Go (requires Go 1.26+): CGO_ENABLED=1 go install github.com/projectdiscovery/katana/cmd/katana@latest Crawl a target URL: katana -u https://tesla.com
- Where can I get katana?
- The source code and installation instructions are on GitHub: https://github.com/projectdiscovery/katana
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Go framework for writing web scrapers and crawlers that extract structured data from websites.
Async Python web scraping micro-framework built on asyncio and aiohttp, aiming to make crawling URLs as convenient as possible.
Open-source SEO audit tool that crawls a website and reports technical issues such as broken links, redirects, and missing or duplicate meta tags.
Python web scraping framework covering single HTTP requests, stealth browsers, parsing, and full concurrent crawls with exports.
Open-source Python web crawler that turns any website into clean, LLM-ready Markdown, with CSS/LLM-based structured extraction and an optional hosted API.