Updated Jul 14, 2026

Scanners

Run nuclei as a Trickest node on live hosts

YAML template scanner for live hosts; scope runs with tags and severity.

Agent

overview

What nuclei does

nuclei matches each target to YAML templates, one check per template. Community packs cover CVEs and misconfigs; add your own folder when you have a known finding. It does not discover hosts, so feed it a live list. For code findings use semgrep-scan on a repo checkout, not nuclei on live URLs.

On Trickest it sits after httpx. Point -list at probed URLs, narrow with -tags or -severity, and write -jsonl so each finding is a triage row. Prefer a curated template set over the full catalog on every run.

The node exposes 160 inputs for rate limits and custom headers, plus resume and headless modes. Schedule it behind discovery so new hosts get tested without a separate scan job. Cap -rate-limit when the target is fragile.

source github.com/projectdiscovery/nuclei

use cases

Where nuclei fits

Scan a live surface for known issues

Run curated templates against probed hosts to surface CVEs, misconfigurations, and exposures across the estate.

Triage by severity and tag

Filter to critical and high, or to a technology's tag set, so a run returns the findings that matter instead of noise.

Continuously test new assets

Schedule nuclei behind discovery so newly found hosts get tested automatically and findings land in a live table.

Run your own custom checks

Point the templates folder at rules you wrote for a known finding and run them alongside the community set in one pass.

reference

nuclei inputs and flags

160 inputs
NameTypeFlagDescription
targetSTRING-targetTarget URLs or hosts to scan.
listFILE-listFile of target URLs or hosts, the usual pipeline input.
templatesFOLDER-templatesFolder of templates to run.
severitySTRING-severityRun templates by severity (info, low, medium, high, critical, unknown).
tagsSTRING-tagsRun templates by tag (comma-separated).
rate-limitSTRING-rate-limitMaximum requests to send per second (default 150). Aliased as -rl.
headerSTRING-headerCustom header or cookie for every HTTP request, in header:value format.
jsonlBOOLEAN-jsonlWrite findings in JSONL format, one per line.

Showing key inputs. nuclei exposes 160 inputs in total.

Full flag reference (160 inputs)
NameTypeFlagDescription
sniSTRING-snitls sni hostname to use (default: input domain name)
varSTRING-varcustom vars in key=value format
codeBOOLEAN-codeenable loading code protocol-based templates
dastBOOLEAN-dastonly run DAST templates
listFILE-listList of target URLs/hosts to scan
tagsSTRING-tagstemplates to run based on tags (comma-separated)
typeSTRING-typetemplates to run based on protocol type. Possible values: dns, file, http, headless, tcp, workflow, ssl, websocket, whois, code, javascript
ztlsBOOLEAN-ztlsuse ztls library with autofallback to standard one for tls13
debugBOOLEAN-debugshow all requests and responses
jsonlBOOLEAN-jsonlwrite output in JSONL(ines) format
proxySTRING-proxylist of http/socks5 proxy to use (comma separated)
resetBOOLEAN-resetreset removes all nuclei configuration and data files (including nuclei-templates)
statsBOOLEAN-statsDisplay stats of the running scan.
authorSTRING-authortemplates to run based on authors (comma-separated)
configFILE-configpath to the nuclei configuration file
headerSTRING-headercustom header/cookie to include in all http requests in header:value format
no-mheBOOLEAN-no-mhedisable skipping host from scan based on errors
redactSTRING-redactredact given list of keys from query parameter, request header and body
resumeFILE-resumeResume scan using resume.cfg (clustering will be disabled)
silentSTRING-silentdisplay findings only
streamBOOLEAN-streamstream mode - start elaborating without sorting the input
targetSTRING-targettarget URLs/hosts to scan
no-metaBOOLEAN-no-metadisable printing result metadata in cli output
passiveBOOLEAN-passiveenable passive HTTP response processing mode
profileSTRING-profiletemplate profile config file to run
projectBOOLEAN-projectUse a project folder to avoid sending same request multiple times.
retriesSTRING-retriesnumber of times to retry a failed request (default 1)
timeoutSTRING-timeouttime to wait in seconds before timeout (default 10)
uncoverBOOLEAN-uncoverenable uncover engine
verboseBOOLEAN-verboseshow verbose output
env-varsBOOLEAN-env-varsenable environment variables to be used in template
headlessBOOLEAN-headlessenable templates that require headless browser support (root user on linux will disable sandbox)
no-colorBOOLEAN-no-colordisable output content coloring (ANSI escape codes)
no-httpxBOOLEAN-no-httpxdisable httpx probing for non-url input
no-stdinBOOLEAN-no-stdindisable stdin processing
omit-rawBOOLEAN-omit-rawomit request/response pairs in the JSON, JSONL, and Markdown outputs (for findings only)
severitySTRING-severitytemplates to run based on severity. Possible values: info, low, medium, high, critical, unknown
templateFILE-templatestemplate file to run
validateBOOLEAN-validatevalidate the passed templates to nuclei
bulk-sizeSTRING-bulk-sizemaximum number of hosts to be analyzed in parallel per template (default 25)
client-caFILE-client-caclient certificate authority file (PEM-encoded) used for authenticating against scanned hosts
debug-reqBOOLEAN-debug-reqshow all sent requests
interfaceSTRING-interfacenetwork interface to use for network scan
list-tagsBOOLEAN-tgllist all available tags
resolversFILE-resolversfile containing resolver list for nuclei
source-ipSTRING-source-ipsource ip address to use for network scan
tags-listFILE-tagstemplates to run based on tags
templatesFOLDER-templatesfolder of templates to run
timestampBOOLEAN-timestampenables printing timestamp in cli output
vars-listFILE-varcustom vars in key=value format
workflowsSTRING-workflowslist of workflow or workflow directory to run (comma-separated)
client-keyFILE-client-keyclient key file (PEM-encoded) used for authenticating against scanned hosts
debug-respBOOLEAN-debug-respshow all received responses
exclude-idSTRING-exclude-idtemplates to exclude based on template ids (comma-separated)
ip-versionSTRING-ip-versionIP version to scan of hostname (4,6) - (default 4)
proxy-listFILE-proxylist of http/socks5 proxy to use
rate-limitSTRING-rate-limitmaximum number of requests to send per second (default 150)
stats-jsonBOOLEAN-stats-jsonWrite statistics data to stdout in JSONL(ines) format
attack-typeSTRING-attack-typetype of payload combinations to perform (batteringram,pitchfork,clusterbomb)
author-listFILE-authortemplates to run based on authors
client-certFILE-client-certclient certificate file (PEM-encoded) used for authenticating against scanned hosts
concurrencySTRING-concurrencymaximum number of templates to be executed in parallel (default 25)
force-http2BOOLEAN-force-http2force http2 connection on requests
secret-fileFILE-secret-filepath to config file containing secrets for nuclei authenticated scan
template-idSTRING-template-idtemplates to run based on template ids (comma-separated)
enable-pprofBOOLEAN-enable-pprofenable pprof debugging server
exclude-tagsSTRING-exclude-tagstemplates to exclude based on tags (comma-separated)
exclude-typeSTRING-exclude-typetemplates to exclude based on protocol type. Possible values: dns, file, http, headless, tcp, workflow, ssl, websocket, whois, code, javascript
fuzzing-modeSTRING-fuzzing-modeoverrides fuzzing mode set in template (multiple, single)
fuzzing-typeSTRING-fuzzing-typeoverrides fuzzing type set in template (replace, prefix, postfix, infix)
hang-monitorBOOLEAN-hang-monitorenable nuclei hang monitoring
headers-listFILE-headercustom list of headers/cookies to include in all http requests in header:value
health-checkBOOLEAN-health-checkrun diagnostic check up
include-tagsSTRING-include-tagstags to be executed even if they are excluded either by default or configuration
metrics-portSTRING-metrics-portport to expose nuclei metrics on (default 9092)
page-timeoutSTRING-page-timeoutseconds to wait for each page in headless mode (default 20)
profile-listBOOLEAN-profile-listlist community template profiles
project-pathFOLDER-project-pathUse a user defined project folder. Temporary folder is used if not specified but enabled.
scan-all-ipsBOOLEAN-scan-all-ipsscan all the IP's associated with dns record
template-urlSTRING-template-urltemplate urls to run (comma-separated)
workflow-urlSTRING-workflow-urlworkflow urls to run (comma-separated)
exclude-hostsFILE-exclude-hostshosts to exclude to scan from the input list (ip, cidr, hostname)
max-redirectsSTRING-max-redirectsmax number of redirects to follow for http templates (default 10)
new-templatesBOOLEAN-new-templatesrun only new templates added in latest nuclei-templates release
no-interactshBOOLEAN-no-interactshdisable interactsh server for OAST testing, exclude OAST based templates
omit-templateBOOLEAN-omit-templateomit encoded template in the JSON, JSONL output
report-configFILE-report-confignuclei reporting module configuration file
scan-strategySTRING-scan-strategystrategy to use while scanning(auto/host-spray/template-spray) (default auto)
show-var-dumpBOOLEAN-show-var-dumpshow variables dump for debugging
system-chromeBOOLEAN-system-chromeuse local installed Chrome browser instead of nuclei installed
target-folderFOLDER-targetfolder containing files to execute file templates on
template-urlsFILE-template-urllist of template urls to run
uncover-delaySTRING-uncover-delaydelay between uncover query requests in seconds (0 to disable) (default 1)
uncover-fieldSTRING-uncover-fielduncover fields to return (ip,port,host) (default "ip:port")
uncover-limitSTRING-uncover-limituncover results to return (default 100)
uncover-querySTRING-uncover-queryuncover search query
workflow-urlsFILE-workflow-urllist of workflow urls to run
automatic-scanBOOLEAN-automatic-scanautomatic web scan using wappalyzer technology detection to tags mapping
js-concurrencySTRING-js-concurrencymaximum number of javascript runtimes to be executed in parallel (default 120)
list-templatesBOOLEAN-tllist all available templates
matcher-statusBOOLEAN-matcher-statusdisplay match failure status
max-host-errorSTRING-max-host-errormax errors for a host before skipping from scan (default 30)
proxy-internalBOOLEAN-proxy-internalproxy all internal requests
stats-intervalSTRING-stats-intervalnumber of seconds to wait between showing a statistics update (default 5)
templates-listFILE-templateslist of template to run
uncover-engineSTRING-uncover-engineuncover search engine (shodan,shodan-idb,fofa,censys,quake,hunter,zoomeye,netlas) (default shodan)
workflows-listFILE-workflowslist of workflow or workflow directory to run
exclude-id-listFILE-exclude-idtemplates to exclude based on template ids
honeypot-detectBOOLEAN-honeypot-detectdetect potential honeypot hosts based on match concentration
show-match-lineBOOLEAN-show-match-lineshow match lines for file templates, works with extractors only
tls-impersonateBOOLEAN-tls-impersonateenable experimental client hello (ja3) tls randomization
exclude-matchersSTRING-exclude-matcherstemplate matchers to exclude in result
exclude-severitySTRING-exclude-severitytemplates to exclude based on severity. Possible values: info, low, medium, high, critical, unknown
follow-redirectsBOOLEAN-follow-redirectsenable following redirects for http templates
headless-optionsSTRING-headless-optionsstart headless chrome with additional options
interactsh-tokenSTRING-interactsh-tokenauthentication token for self-hosted interactsh server
no-strict-syntaxBOOLEAN-no-strict-syntaxDisable strict syntax check on templates
prefetch-secretsBOOLEAN-prefetch-secretsprefetch secrets from the secrets file
system-resolversBOOLEAN-system-resolversuse system DNS resolving as error fallback
template-id-listFILE-template-idtemplates to run based on template ids
track-error-fileFILE-track-erroradds given error to max-host-error watchlist
dialer-keep-aliveSTRING-dialer-keep-alivekeep-alive duration for network requests.
disable-redirectsBOOLEAN-disable-redirectsdisable redirects for http templates
display-templatesBOOLEAN-vvdisplay templates loaded for scan
exclude-tags-listFILE-exclude-tagstemplates to exclude based on tags
exclude-templatesSTRING-exclude-templatestemplate or template directory to exclude (comma-separated)
include-tags-listFILE-include-tagstags to be executed even if they are excluded either by default or configuration
include-templatesSTRING-include-templatestemplates to be executed even if they are excluded either by default or configuration
interactsh-serverSTRING-interactsh-serverinteractsh server url for self-hosted instance (default: oast.pro,oast.live,oast.site,oast.online,oast.fun,oast.me)
list-dsl-functionBOOLEAN-list-dsl-functionlist all supported DSL function signatures
rate-limit-minuteSTRING-rate-limit-minutemaximum number of requests to send per minute
suppress-honeypotBOOLEAN-suppress-honeypotsuppress output for flagged honeypot hosts
templates-versionBOOLEAN-templates-versionshows the version of the installed nuclei-templates
uncover-ratelimitSTRING-uncover-ratelimitoverride ratelimit of engines with unknown ratelimit (default 60 req/min) (default 60)
disable-clusteringBOOLEAN-disable-clusteringdisable clustering of requests
headless-bulk-sizeSTRING-headless-bulk-sizemaximum number of headless hosts to be analyzed in parallel per template (default 10)
honeypot-thresholdSTRING-honeypot-thresholdnumber of distinct template IDs required to flag a honeypot host (default 15)
input-read-timeoutSTRING-input-read-timeouttimeout on input read (default 3m0s)
response-size-readSTRING-response-size-readmax response size to read in bytes (default 10485760)
response-size-saveSTRING-response-size-savemax response size to read in bytes (default 1048576)
template-conditionSTRING-template-conditiontemplates to run based on expression condition
template-directorySTRING-templatestemplate directory to run
leave-default-portsBOOLEAN-leave-default-portsleave default HTTP/HTTPS ports (eg. host:80,host:443
payload-concurrencySTRING-payload-concurrencymax payload concurrency for each template (default 25)
stop-at-first-matchBOOLEAN-stop-at-first-matchstop processing HTTP requests after the first match (may break template/workflow logic)
disable-update-checkBOOLEAN-disable-update-checkdisable automatic nuclei/templates update check
headless-concurrencySTRING-headless-concurrencymaximum number of headless templates to be executed in parallel (default 10)
list-headless-actionBOOLEAN-list-headless-actionlist available headless actions
exclude-matchers-listFILE-exclude-matcherstemplate matchers to exclude in result
follow-host-redirectsBOOLEAN-follow-host-redirectsfollow redirects on the same host
interactions-evictionSTRING-interactions-evictionnumber of seconds to wait before evicting requests from cache (default 60)
new-templates-versionSTRING-new-templates-versionrun new templates added in specific version
exclude-templates-listFILE-exclude-templatestemplate or template directory to exclude
include-templates-listFILE-include-templatestemplates to be executed even if they are excluded either by default or configuration
allow-local-file-accessBOOLEAN-allow-local-file-accessallows file (payload) access anywhere on the system
interactions-cache-sizeSTRING-interactions-cache-sizenumber of requests to keep in the interactions cache (default 5000)
interactions-poll-durationSTRING-interactions-poll-durationnumber of seconds to wait before each interaction poll request (default 5)
interactions-cooldown-periodSTRING-interactions-cooldown-periodextra time for interaction polling before exiting (default 5)
template-loading-concurrencySTRING-template-loading-concurrencymaximum number of concurrent template loading operations
restrict-local-network-accessBOOLEAN-restrict-local-network-accessblocks connections to the local / private network

example

Run nuclei

nuclei · command
# scan a host list with CVE templates at high severity, JSONL outputnuclei -list hosts.txt -tags cve -severity critical,high -rate-limit 150 -jsonl -o findings.jsonl
sample output
[tech-detect:nginx] [http] [info] https://app.example.com[waf-detect:cloudflare] [http] [info] https://app.example.com[http-missing-security-headers] [http] [info] https://app.example.com[tls-version] [ssl] [info] app.example.com:443[apache-detect] [http] [info] https://api.example.com[git-config] [http] [medium] https://example.com/.git/config[CVE-2022-41040] [http] [critical] https://api.example.com/owa[CVE-2021-44228] [http] [critical] https://api.example.com/api/v1

guidance

Choosing nuclei

Use nuclei to test a known set of live hosts against known issues. It does not discover hosts, so feed it subfinder and httpx output, and scope runs with tags or severity rather than scanning everything.

nikto

Classic web scanner. nuclei is faster, template-driven, and easier to extend.

jaeles

Another signature scanner. nuclei has the larger template ecosystem.

wapiti

Active web app scanner that crawls and tests. nuclei tests known hosts against a template library instead.

faq

nuclei questions

Point `-templates` at a folder or a comma-separated file list. Narrow with `-tags` or `-severity`. On Trickest, set the templates input instead of the flag.

Run nuclei yourself

Targets are probed by httpx, then nuclei tests the live hosts against its templates and writes findings as a queryable output.

Facts on this page come from the live Trickest tool library.