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 = [] # Naabu's official README documents the default config file at # $HOME/.config/naabu/config.yaml. # https://github.com/projectdiscovery/naabu#configuration [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"]