id = "httpx" name = "httpx" homepage = "https://github.com/projectdiscovery/httpx" description = "httpx is a fast and multi-purpose HTTP toolkit that allows running multiple probes using the retryablehttp library." executables = ["httpx"] [dotfiles] # The ProjectDiscovery httpx CLI help (in the official repository) documents # its default config as $HOME/.config/httpx/config.yaml: # https://github.com/projectdiscovery/httpx paths = ["~/.config/httpx/config.yaml"] secret = [] side_effect = false [commands] format = 1 label = "Probe web hosts" description = "Probe one or more hosts or a host list and show status code, title and detected technology. Proxies, custom requests, filtering by regex and screenshots are not in this form." 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/httpx" revision = "2026-10-27" evidence = """ -l, -list string input file containing list of hosts to process -u, -target string[] input target host(s) to probe -sc, -status-code display response status-code -title display page title -td, -tech-detect display technology in use based on wappalyzer dataset -ip display host ip -mc, -match-code string match response with specified status code (-mc 200,302) -fc, -filter-code string filter response with specified status code (-fc 403,401) -t, -threads int number of threads to use (default 50) -rl, -rate-limit int maximum requests to send per second (default 150) -p, -ports string[] ports to probe (nmap syntax: eg http:1,2-10,11,https:80) -path string path or list of paths to probe (comma-separated, file) -o, -output string file to write output results -fr, -follow-redirects follow http redirects -timeout int timeout in seconds (default 10) -silent silent mode """ [[commands.field]] id = "target" label = "Target host or URL" type = "string" option = ["-u"] multiple = true sources = ["help"] [[commands.field]] id = "list" label = "Host list file" type = "path" option = ["-l"] path = { kind = "file", role = "input", must_exist = true } sources = ["help"] [[commands.field]] id = "status_code" label = "Show status code" type = "boolean" option = ["-sc"] sources = ["help"] [[commands.field]] id = "title" label = "Show page title" type = "boolean" option = ["-title"] sources = ["help"] [[commands.field]] id = "tech_detect" label = "Detect technologies" type = "boolean" option = ["-td"] sources = ["help"] [[commands.field]] id = "ip" label = "Show host IP" type = "boolean" option = ["-ip"] sources = ["help"] [[commands.field]] id = "follow_redirects" label = "Follow redirects" type = "boolean" option = ["-fr"] sources = ["help"] [[commands.field]] id = "match_code" label = "Match status codes" description = "Comma-separated, for example 200,302." type = "string" option = ["-mc"] sources = ["help"] [[commands.field]] id = "filter_code" label = "Filter out status codes" description = "Comma-separated, for example 403,401." type = "string" option = ["-fc"] sources = ["help"] [[commands.field]] id = "threads" label = "Threads" type = "integer" option = ["-t"] sources = ["help"] [[commands.field]] id = "rate_limit" label = "Requests per second" type = "integer" option = ["-rl"] sources = ["help"] [[commands.field]] id = "output" label = "Output file" type = "path" option = ["-o"] path = { kind = "file", role = "output", must_exist = false } effect = "overwrite" sources = ["help"] [[commands.field]] id = "silent" label = "Silent (results only)" type = "boolean" option = ["-silent"] sources = ["help"] [[commands.task]] id = "probe-one" label = "Probe a target" set = { status_code = [true], title = [true], tech_detect = [true] } fields = ["target", "status_code", "title", "tech_detect", "follow_redirects"] required = ["target"] [[commands.task]] id = "probe-list" label = "Probe a host list" set = { status_code = [true], title = [true] } fields = ["list", "status_code", "title", "match_code", "threads", "output"] required = ["list"] [[commands.group]] id = "basic" label = "Basic" fields = ["target", "list", "status_code", "title", "tech_detect", "ip", "follow_redirects", "output"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["match_code", "filter_code", "threads", "rate_limit", "silent"]