id = "naabu"
name = "Naabu"
homepage = "https://github.com/projectdiscovery/naabu"
description = "Naabu is a port scanning tool written in Go that allows you to enumerate valid ports for hosts in a fast and reliable manner."
executables = ["naabu"]
[dotfiles]
paths = ["~/.config/naabu/config.yaml"]
secret = []
[commands]
format = 1
label = "Scan ports"
description = "Fast port scan of one or more hosts. Host discovery, nmap integration, service-version probing and proxy options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.source]]
id = "help"
kind = "help"
url = "https://github.com/projectdiscovery/naabu#usage"
revision = "README usage (2026-10-27)"
evidence = """ -host string[] hosts to scan ports for (comma-separated)
-list, -l string list of hosts to scan ports (file)
-exclude-hosts, -eh string hosts to exclude from the scan (comma-separated)
-port, -p string ports to scan (80,443, 100-200)
-top-ports, -tp string top ports to scan (default 100) [full,100,1000]
-exclude-ports, -ep string[] ports to exclude from scan (file or comma-separated)
-c int general internal worker threads (default 25)
-rate int packets to send per second (default 1000)
-o, -output string file to write output to (optional)
-j, -json write output in JSON lines format
-csv write output in csv format
-scan-type, -s string type of port scan (SYN/CONNECT) (default "c")
-retries int number of retries for the port scan (default 3)
-timeout value time to wait before timing out (e.g. 500ms, 2s; a bare number is milliseconds) (default 1s)
-verify validate the ports again with TCP verification"""
[[commands.field]]
id = "host"
label = "Hosts"
description = "Comma-separated hosts or IPs."
type = "string"
option = ["-host"]
sources = ["help"]
[[commands.field]]
id = "list"
label = "Hosts file"
type = "path"
path = { kind = "file", role = "input" }
option = ["-list", "-l"]
sources = ["help"]
[[commands.field]]
id = "exclude_hosts"
label = "Exclude hosts"
type = "string"
option = ["-exclude-hosts", "-eh"]
sources = ["help"]
[[commands.field]]
id = "port"
label = "Ports"
description = "For example 80,443 or 100-200."
type = "string"
option = ["-port", "-p"]
sources = ["help"]
[[commands.field]]
id = "top_ports"
label = "Top ports"
type = "string"
option = ["-top-ports", "-tp"]
suggestions = [{ value = "100", label = "100" }, { value = "1000", label = "1000" }, { value = "full", label = "All ports" }]
sources = ["help"]
[[commands.field]]
id = "exclude_ports"
label = "Exclude ports"
type = "string"
option = ["-exclude-ports", "-ep"]
sources = ["help"]
[[commands.field]]
id = "scan_type"
label = "Scan type"
type = "string"
option = ["-scan-type", "-s"]
suggestions = [{ value = "c", label = "CONNECT" }, { value = "s", label = "SYN" }]
sources = ["help"]
[[commands.field]]
id = "rate"
label = "Packets per second"
type = "integer"
option = ["-rate"]
sources = ["help"]
[[commands.field]]
id = "threads"
label = "Worker threads"
type = "integer"
option = ["-c"]
sources = ["help"]
[[commands.field]]
id = "retries"
label = "Retries"
type = "integer"
option = ["-retries"]
sources = ["help"]
[[commands.field]]
id = "timeout"
label = "Timeout"
description = "For example 500ms or 2s."
type = "string"
option = ["-timeout"]
sources = ["help"]
[[commands.field]]
id = "verify"
label = "Verify ports with TCP"
type = "boolean"
option = ["-verify"]
sources = ["help"]
[[commands.field]]
id = "json"
label = "JSON lines output"
type = "boolean"
option = ["-json", "-j"]
sources = ["help"]
[[commands.field]]
id = "csv"
label = "CSV output"
type = "boolean"
option = ["-csv"]
sources = ["help"]
[[commands.field]]
id = "output"
label = "Output file"
type = "path"
path = { kind = "file", role = "output" }
option = ["-output", "-o"]
effect = "overwrite"
sources = ["help"]
[[commands.task]]
id = "top"
label = "Scan top ports"
set = { top_ports = ["1000"] }
fields = ["host", "top_ports", "rate", "output"]
required = ["host"]
[[commands.task]]
id = "ports"
label = "Scan specific ports"
fields = ["host", "port", "scan_type", "verify", "json", "output"]
required = ["host", "port"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["host", "list", "port", "top_ports", "output", "json"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["exclude_hosts", "exclude_ports", "scan_type", "rate", "threads", "retries", "timeout", "verify", "csv"]