PAGES
← all tools
◆ Web Application Security

Katana

v1.8.0 open-source

Katana is a command-line web crawling tool written in Golang designed to crawl websites to gather information and endpoints.

Summary

Katana is an open-source command-line web crawling tool written in Golang, built to enumerate URLs and endpoints across a target site, with a headless mode that renders JavaScript so single-page apps built on React or Angular get crawled properly rather than skipped. It runs from the terminal, taking input via STDIN, a single URL, or a list, and writing results to stdout, a file, or JSON, which makes it easy to slot into a larger recon pipeline. It's aimed at penetration testers, bug bounty hunters, and red teamers who need attack-surface and asset discovery ahead of deeper scanning with tools like nuclei. First committed in 2022, it now has 76 contributors and a release just 16 days ago, so development is active.

Katana is a command-line web crawling tool written in Golang designed to crawl websites to gather information and endpoints.

How Katana helps

Which endpoints and URLs does this target actually expose, including the ones a plain HTTP fetch would miss?

crawls the site in headless mode, rendering JavaScript so links, forms, and routes built by React or Angular are discovered rather than skipped

Which pages sit behind a login that a simple crawl would never reach?

carries cookies and can drive an automatic login flow so authenticated areas of the target get crawled instead of stopping at the login page

Is a JavaScript-heavy page actually finished loading before it gets crawled?

lets you switch the browser's page load strategy from a load event to waiting for network activity to settle, so content that renders late still gets captured

What hidden config, backup, or archive files is the default crawl silently throwing away?

turns off the built-in extension filter so paths normally dropped from output show up in the results

What technology stack is running behind each URL this crawl turns up?

opts into technology detection alongside the crawl so the stack behind each endpoint is recorded next to it in the JSON output

Why did a headless crawl stall or miss content on this target?

writes diagnostic information and verbose logs to a dedicated directory during the run, so the browser state at the point of failure can be inspected afterward

all 14 features, with the evidence for each →

Languages

Not documented

Features

14 capabilities · 3 backed by code, an API document or a real run

Built from Katana's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

What Katana offers you

  • Command-line interface2
  • GraphQL API support1
  • JSON data export1
All capabilities 14 capabilities
Web crawling verified Crawls a target web application and discovers in-scope URLs, assets, and links including out-of-scope references. 31 releases · 34 other sources · first seen Nov 2022

release 31 total

  • Adds BrowserContextID to the hybrid crawler output, allowing correlation with specific browser contexts. v1.8.0 · Oct 2026 · source · release history
  • Adds BrowserContextID exposure to the hybrid crawler, allowing callers to correlate crawl traffic to a specific browser context. v1.8.0 · Oct 2026 · source · release history
  • Adds optional per-page BeforeNavigate and AfterLoad hooks to the hybrid engine, enabling custom logic to run at each page lifecycle event during a crawl. v1.8.0 · Oct 2026 · source · release history
  • Adds -rf / --recorded-flow flag to replay a Chrome DevTools Recorder JSON (or explicit steps file) before a headless crawl, enabling authenticated crawling without manual session setup.⁠︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄⁠ v1.8.0 · Oct 2026 · source · release history
  • Adds recorded flow support for headless authentication, enabling replay of captured user interactions during crawl. v1.8.0 · Oct 2026 · source · release history
  • Adds automatic login support for crawling authenticated targets. v1.6.0 · May 2026 · source · release history

docs

  • Web crawling and spidering framework supporting standard and headless modes with JavaScript parsing, form filling, and scope control.

we ran it 8 total

  • The crawl returned three URLs: the root http://dvwa, a CSS asset at /dvwa/css/login.css, and /login.php. The tool exited with status 0, indicating successful completion with no errors. Aug 2026 · the full run
  • The tool returned three URLs: the root http://dvwa, a CSS asset at /dvwa/css/login.css, and /login.php. No REST, GraphQL, SOAP, or XHR endpoint classifications appear in the output. Aug 2026 · the full run
  • The crawl returned three URLs: the root http://dvwa, a CSS asset at /dvwa/css/login.css, and /login.php. The tool exited with status 0, indicating successful completion. Aug 2026 · the full run
  • The crawl returned three URLs: the root http://dvwa, a CSS asset at /dvwa/css/login.css, and /login.php. The exit status 0 indicates the run completed successfully. Aug 2026 · the full run
  • Returned three URLs: the root http://dvwa, a CSS file at /dvwa/css/login.css, and /login.php. No debug output beyond these discovered endpoints appears in the captured output. Aug 2026 · the full run
  • The crawler returned three URLs: the root http://dvwa, a CSS asset, and /login.php. No URLs containing ctk appeared in the output, consistent with the exclusion filter having nothing to suppress. Aug 2026 · the full run

example 25 total

  • Replay a recorded login flow before crawling an authenticated app — record the login once in Chrome DevTools and pass the exported JSON so katana handles auth automatically. katana -u https://app.example.com -headless -rf ./login-flow.json v1.8.0 · Oct 2026 · source
  • Crawl a JS-heavy SPA that loads content after network activity settles, switching from the default heuristic to networkidle. katana -u https://example.com -headless -pls networkidle v1.6.0 · May 2026 · source
  • Reduce noise in large crawls by collapsing parameterised or enumerated URL paths into representative samples. katana -u https://example.com -filter-similar -o filtered_urls.txt v1.5.0 · Mar 2026 · source
  • Investigate headless crawl state failures by capturing full diagnostics and verbose logs to a dedicated output directory. katana -debug -u https://www.github.com -headless -enable-diagnostics v1.4.0 · Jan 2026 · source
  • Crawl a JavaScript-heavy app with headless mode while watching the browser in real time to verify crawl behaviour. katana -u https://cloud.projectdiscovery.io -headless -show-browser v1.4.0 · Jan 2026 · source
  • Deep headless crawl of a target, following all form submissions, to maximise attack-surface discovery. katana -u https://ginandjuice.shop -headless -depth 5 -aff v1.4.0 · Jan 2026 · source
Page content similarity deduplication verified Filters near-duplicate pages during a crawl using configurable similarity algorithms (SimHash, TF-IDF, or BM25) with tunable distance, threshold, and per-cluster budget parameters. 8 releases · 8 other sources · first seen Jun 2023

release 8 total

  • Adds -sdd / -similarity-deduplication as a convenience alias for -pcs. v1.7.0 · Aug 2026 · source · release history
  • Added content similarity detection / deduplication v1.7.0 · Aug 2026 · source · release history
  • Adds -pcs / -page-content-similar flag for Layer-2 content similarity filtering to deduplicate near-identical pages during crawls, with configurable mode via -pcsm / -page-content-similar-mode (simhash, tfidf, or bm25; default simhash). v1.7.0 · Aug 2026 · source · release history
  • Adds -pcsd / -page-content-similar-distance (SimHash max Hamming distance, default 3), -pcst / -page-content-similar-threshold (TF-IDF/BM25 min score 0–1, default 0.85), and -pcsn / -page-content-similar-budget (pages fully processed per similarity cluster, default 1) flags to tune deduplication behaviour. v1.7.0 · Aug 2026 · source · release history
  • -fdc / -filter-condition adds DSL-based advance response filter to exclude URLs by response content. v1.0.3 · Aug 2023 · source · release history
  • -mdc / -match-condition adds DSL-based advance response matcher to filter URLs by response content. v1.0.3 · Aug 2023 · source · release history

command line

  • -page-content-similar-distance — simhash max hamming distance (default 3) v1.7.0 · Aug 2026 · command-line history
  • -page-content-similar-budget — pages to fully process per similarity cluster (default 1) v1.7.0 · Aug 2026 · command-line history
  • -similarity-deduplication — alias for -pcs v1.7.0 · Aug 2026 · command-line history
  • -page-content-similar-threshold — tfidf/bm25 min score 0-1 (default 0.85) v1.7.0 · Aug 2026 · command-line history
  • -page-content-similar — enable page content similarity filtering (simhash|tfidf|bm25) v1.7.0 · Aug 2026 · command-line history
  • -page-content-similar-mode — similarity mode: simhash, tfidf, or bm25 (default simhash) v1.7.0 · Aug 2026 · command-line history

example

  • Crawl a target and skip near-duplicate pages using TF-IDF similarity scoring to reduce noise on large sites. katana -u https://example.com -pcs -pcsm tfidf -pcst 0.90 v1.7.0 · Aug 2026 · source
  • Load headers from headers.txt and omit verbose raw data in JSONL output for cleaner processing. katana -H headers.txt -u https://example.com -jsonl -omit-raw -omit-body v1.0.2 · Jun 2023 · source
Headless browser integration shipped suggested Drives a headless browser during crawling, with support for programmatic event interception via callbacks. 11 releases · 3 other sources · first seen Nov 2022

Suggested capability: Web vulnerability scanning. This is our guess, not confirmed.

release 11 total

  • Adds optional per-page BeforeNavigate and AfterLoad hooks to the hybrid engine for custom logic execution during page lifecycle events. v1.8.0 · Oct 2026 · source · release history
  • Added callbacks to headless engine v1.7.0 · Aug 2026 · source · release history
  • Adds a Context field to the Options struct for external lifecycle control — cancelling the provided context.Context stops the rate limiter, crawl session, queue, known-files requests, and headless browser. v1.7.0 · Aug 2026 · source · release history
  • Adds callbacks to the headless engine, enabling programmatic interception of headless browser events. v1.7.0 · Aug 2026 · source · release history
  • Adds -pls/-page-load-strategy flag to control browser page load timing (heuristic, load, domcontentloaded, networkidle, none). v1.6.0 · May 2026 · source · release history
  • Chrome launcher now prioritizes the path specified with -scp over system default Chrome paths in headless mode. v1.1.1 · Oct 2024 · source · release history

example

  • Reuse an active Chrome debugging session to avoid startup overhead. katana -u https://example.com -cwu ws://localhost:9222/devtools/browser/1 v1.0.3 · Aug 2023 · source
  • Scan a target using a locally installed Chrome binary instead of the system default katana -u https://target.com -scp /usr/local/bin/chrome v0.0.3 · Jan 2023 · source
  • Run Katana on a localhost target where Chrome's default sandbox cannot be initialized (e.g. CI/CD with root) katana -u https://target.com --no-sandbox v0.0.2 · Nov 2022 · source
Endpoint classification verified Extracts and classifies REST, GraphQL, SOAP, and XHR endpoints discovered during crawling. 7 releases · 2 other sources · first seen Mar 2023

Also counts toward: Command-line interface, GraphQL API support

release 7 total

  • Adds -kb-endpoints flag to enable an endpoints extractor that classifies REST, GraphQL, SOAP, and XHR requests found during crawling. v1.7.0 · Aug 2026 · source · release history
  • Network request capturing now includes XHR, Fetch, and Script resource types when extraction mode is enabled, broadening JavaScript-heavy app coverage. v1.2.0 · Jul 2025 · source · release history
  • Expands JavaScript library fingerprint coverage to improve endpoint parsing across more frameworks. v1.1.1 · Oct 2024 · source · release history
  • Adds a response parser that extracts endpoints from htmx attributes, broadening JavaScript-heavy app coverage. v1.1.1 · Oct 2024 · source · release history
  • Added -dr / -disable-redirects option to stop following redirects v1.0.4 · Sep 2023 · source · release history
  • -xhr / -xhr-extraction extracts XHR request URL and method in jsonl output. v1.0.3 · Aug 2023 · source · release history

we ran it

  • The tool returned three URLs: the root, a CSS asset at /dvwa/css/login.css, and /login.php. No technology detection findings appear in the output despite -td being enabled. Aug 2026 · the full run

example

  • Use specific DNS resolvers to bypass default resolution or test internal infrastructure. katana -u https://example.com -r ./resolvers.txt v1.0.0 · Mar 2023 · source
Secrets detection and validation shipped Automatically detects exposed credentials and tokens during crawls, with an option to validate discovered secrets live against their respective providers. 3 releases · 2 other sources · first seen Jul 2025

Also counts toward: Command-line interface

release

  • Adds -kb-validate-secrets flag to validate detected secrets live against their respective providers (sends real API calls). v1.7.0 · Aug 2026 · source · release history
  • Added secrets extractor to knowledgebase v1.7.0 · Aug 2026 · source · release history
  • Adds -kb-secrets flag to enable a secrets extractor within the knowledge base, automatically detecting exposed credentials and tokens during crawls. v1.7.0 · Aug 2026 · source · release history

example

  • Crawl a target and extract secrets from the knowledge base, then validate them live against their providers. katana -u https://example.com -kb -kb-secrets -kb-validate-secrets v1.7.0 · Aug 2026 · source
  • Extract emails and their source URLs from a crawl in a pipe-friendly format for downstream triage. katana -silent -u https://www.google.com/appserve/security-bugs/m2/new -ot "{{email}} - {{url}}" v1.2.0 · Jul 2025 · source
External lifecycle control shipped Accepts an external context.Context to allow callers to cancel the crawl session, rate limiter, queue, and headless browser programmatically. 4 releases · first seen Jan 2023

release

  • Adds a Context field to the Options struct for external lifecycle control — cancelling the provided context.Context stops the rate limiter, crawl session, queue, known-files requests, and headless browser. v1.7.0 · Aug 2026 · source · release history
  • Added Context field to Options for external lifecycle control v1.7.0 · Aug 2026 · source · release history
  • Adds per-host rate limiting with adaptive backoff to avoid overwhelming individual hosts. v1.6.0 · May 2026 · source · release history
  • Added the --health-check flag (-hc) for self-diagnostic functionality v0.0.3 · Jan 2023 · source · release history
Knowledge base integration shipped Uses a built-in knowledge base to classify crawled content and extract specific artifacts such as endpoints. 2 releases · first seen Mar 2026

release

URL skipping control shipped Provides programmatic and flag-based mechanisms to skip URLs during crawling, including SDK callbacks for logic-based skipping and flags to disable default extension filters. 2 releases · first seen Jul 2025

release

  • New -no-default-ext-filter flag disables Katana's built-in extension filter, allowing crawls to surface URLs that would otherwise be silently dropped. v1.3.0 · Dec 2025 · source · release history
  • Introduces OnSkipURL SDK callback for finer-grained control over URL skipping behavior in library integrations. v1.2.0 · Jul 2025 · source · release history
Technology detection shipped suggested Identifies and reports the technologies used by a target web application via explicit opt-in flags. 2 releases · first seen Dec 2024

Suggested capability: Web vulnerability scanning. This is our guess, not confirmed.

release

  • Introduces -td / -tech-detect flag to explicitly opt into technology detection (works with JSONL output). v1.1.2 · Dec 2024 · source · release history
  • Technology detection is no longer enabled by default; existing workflows that relied on automatic tech detection must now pass -tech-detect explicitly. v1.1.2 · Dec 2024 · source · release history
Passive discovery integration shipped Integrates with external passive sources like Wayback Archive, Common Crawl, and AlienVault to discover endpoints without active crawling. 1 release · 1 other source · first seen Mar 2024

release

  • -pss, -passive-source string[] allows selecting specific passive sources (waybackarchive, commoncrawl, alienvault). v1.1.0 · Mar 2024 · source · release history

example

  • Discover endpoints using passive sources only for a target domain. katana -u tesla.com -passive -f qurl v1.1.0 · Mar 2024 · source
Response content matching and filtering shipped suggested Filters discovered URLs based on response content using DSL-based matchers or exclusion conditions. 2 releases · first seen Aug 2023

Suggested capability: Web vulnerability scanning. This is our guess, not confirmed.

release

  • -fdc / -filter-condition adds DSL-based advance response filter to exclude URLs by response content. v1.0.3 · Aug 2023 · source · release history
  • -mdc / -match-condition adds DSL-based advance response matcher to filter URLs by response content. v1.0.3 · Aug 2023 · source · release history
Error logging to file shipped Redirects error logs to a specified file instead of standard error for better debugging. 1 release · 1 other source · first seen Jan 2023

release

  • Added the --error-log flag (-elog) to write error logs to a file instead of stderr v0.0.3 · Jan 2023 · source · release history

example

  • Redirect error logs to a file for debugging headless browsing issues katana -u https://target.com -elog katana-errors.log v0.0.3 · Jan 2023 · source
Output field filtering shipped Allows filtering of crawl result output by specific fields to control data ingestion. 1 release · first seen Dec 2025

release

  • New -eof and -lof flags enable filtering of JSON output by specific fields, giving practitioners tighter control over crawl result ingestion. v1.3.0 · Dec 2025 · source · release history
Form extraction shipped Extracts form fields, inputs, textareas, and selects from web pages during crawling. 1 release · first seen Aug 2023

Also counts toward: JSON data export

release

  • -fx / -form-extraction extracts form, input, textarea & select elements in jsonl output. v1.0.3 · Aug 2023 · source · release history

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for Katana, 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 →

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 Katana 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…

Explore the full chart →

Commercials

pricing & packaging history · ProjectDiscovery vendor page

23 readings of ProjectDiscovery's pricing page since Feb 2024, with 7 relaunches of its plan lineup and 4 changes to what its plans include — each one dated, compared with the reading before it, and explained for someone buying the tool.

Pricing and packaging history is included with Researcher and Business. See how every vendor we track sells, and how that has changed over time, using data we don't publish anywhere else.

See plans →

Website history

projectdiscovery.io, every change

ProjectDiscovery's home page and 3 more pages as they looked each month from August 2021 to October 2026: 18 renders, 4 changes of tagline or palette. Step through them, play them, or put any two months side by side.

Website history is included with Researcher and Business.

See plans →

Releases

Show

19 entries

  1. October 20261
  2. August 20261
  3. May 20261
  4. March 20261
  5. January 20261
  6. December 20251
  7. August 20251
  8. July 20251
  9. December 20241
  10. October 20241
  11. March 20241
  12. January 20241
  13. September 20231
  14. August 20231
  15. June 20231
  16. April 20231
  17. March 20231
  18. January 20231
  19. November 20221
    Show

    19 entries

    Project health

    Issue, contributor and maintainer activity in projectdiscovery/katana, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 19 −3 vs prior 12 months
    2. Maintainers 2 +2 joined · −5 left, last 12 months
    3. Bus factor 2 committers behind half the commits
    4. Community-filed 22% of issues opened, last 12 months
    5. Median time to close 276 days first maintainer reply 15 days
    6. Open backlog 9 of 393 issues ever filed
    1. Issues opened / month 0 · 1 communitymaintainers
    2. Open backlog 9
    3. Contributors / month 2
    4. Commits / month 8
    5. Stars 17,509
    Issue themes, last 12 months
    • bugs 13%
    • features 17%
    • other 70%

    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

    2 articles · updated Nov 4, 2026

    Where Katana 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.

    Tutorials & guides 2

    • Katana: Vulnhub Walkthrough Hacking Articles
      Katana VM is made by SunCSR Team.
    • Katana: Portable Multi-Boot Security Suite Hacking Articles
      Katana is a portable multi-boot security suite which brings together many of today’s best security distributions and portable applications to run off a single Flash Drive.
      1 more quote
      Katana also comes with over 100 portable Windows applications; such as Wireshark, Metasploit, NMAP, Cain & Abel, and many more.

    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.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →