AI Tools
garak
garak is, in effect, nmap for language models. It probes an LLM with a battery of
attacks and checks how it responds: prompt injection, jailbreaks, generating toxic
or harmful content, leaking training data, hallucinating package names an attacker
could squat, and more. As LLMs get built into real products, they carry real risk,
and garak turns “is this model safe to ship?” into a concrete, repeatable scan with a
report at the end. It supports many model backends — Hugging Face, OpenAI-compatible
APIs, local models, and others.
Installed from the AUR (as python-garak); Security → AI Tools → garak.
The help it prints
garak LLM vulnerability scanner v0.14.0 ( https://github.com/NVIDIA/garak ) at 2026-09-02T16:54:53.225763
usage: python -m garak [-h] [--verbose] [--report_prefix REPORT_PREFIX]
[--narrow_output]
[--parallel_requests PARALLEL_REQUESTS]
[--parallel_attempts PARALLEL_ATTEMPTS]
[--skip_unknown] [--seed SEED] [--deprefix]
[--eval_threshold EVAL_THRESHOLD]
[--generations GENERATIONS] [--config CONFIG]
[--target_type TARGET_TYPE] [--target_name TARGET_NAME]
[--probes PROBES] [--probe_tags PROBE_TAGS]
[--detectors DETECTORS] [--extended_detectors]
[--buffs BUFFS] [--buff_option_file BUFF_OPTION_FILE |
--buff_options BUFF_OPTIONS]
[--detector_option_file DETECTOR_OPTION_FILE |
--detector_options DETECTOR_OPTIONS]
[--generator_option_file GENERATOR_OPTION_FILE |
--generator_options GENERATOR_OPTIONS]
[--harness_option_file HARNESS_OPTION_FILE |
--harness_options HARNESS_OPTIONS]
[--probe_option_file PROBE_OPTION_FILE |
--probe_options PROBE_OPTIONS] [--taxonomy TAXONOMY]
[--plugin_info PLUGIN_INFO] [--list_probes]
[--list_detectors] [--list_generators] [--list_buffs]
[--list_config] [--version] [--report REPORT]
[--interactive] [--fix]
LLM safety & security scanning tool
options:
-h, --help show this help message and exit
--verbose, -v add one or more times to increase verbosity of output
during runtime
--report_prefix REPORT_PREFIX
Specify an optional prefix for the report and hit logs
--narrow_output give narrow CLI output
--parallel_requests PARALLEL_REQUESTS
How many generator requests to launch in parallel for
a given prompt. Ignored for models that support
multiple generations per call.
--parallel_attempts PARALLEL_ATTEMPTS
How many probe attempts to launch in parallel. Raise
this for faster runs when using non-local models.
--skip_unknown allow skip of unknown probes, detectors, or buffs
--seed, -s SEED random seed
--deprefix remove the prompt from the front of generator output
--eval_threshold EVAL_THRESHOLD
minimum threshold for a successful hit
--generations, -g GENERATIONS
number of generations per prompt
--config CONFIG YAML or JSON config file for this run
--target_type, -t, --model_type, -m TARGET_TYPE
module and optionally also class of the generator,
e.g. 'huggingface', or 'openai'
--target_name, --model_name, -n TARGET_NAME
name of the target, e.g.
'timdettmers/guanaco-33b-merged'
--probes, -p PROBES list of probe names to use, or 'all' for all
(default).
--probe_tags PROBE_TAGS
only include probes with a tag that starts with this
value (e.g. owasp:llm01)
--detectors, -d DETECTORS
list of detectors to use, or 'all' for all. Default is
to use the probe's suggestion.
--extended_detectors If detectors aren't specified on the command line,
should we run all detectors? (default is just the
primary detector, if given, else everything)
--buffs, -b BUFFS list of buffs to use. Default is none
--buff_option_file, -B BUFF_OPTION_FILE
path to JSON file containing options to pass to buff
--buff_options BUFF_OPTIONS
options to pass to buff, formatted as a JSON dict
--detector_option_file, -D DETECTOR_OPTION_FILE
path to JSON file containing options to pass to
detector
--detector_options DETECTOR_OPTIONS
options to pass to detector, formatted as a JSON dict
--generator_option_file, -G GENERATOR_OPTION_FILE
path to JSON file containing options to pass to
generator
--generator_options GENERATOR_OPTIONS
options to pass to generator, formatted as a JSON dict
--harness_option_file, -H HARNESS_OPTION_FILE
path to JSON file containing options to pass to
harness
--harness_options HARNESS_OPTIONS
options to pass to harness, formatted as a JSON dict
--probe_option_file, -P PROBE_OPTION_FILE
path to JSON file containing options to pass to probe
--probe_options PROBE_OPTIONS
options to pass to probe, formatted as a JSON dict
--taxonomy TAXONOMY specify a MISP top-level taxonomy to be used for
grouping probes in reporting. e.g. 'avid-effect',
'owasp'
--plugin_info PLUGIN_INFO
show info about one plugin; format as
type.plugin.class, e.g. probes.lmrc.Profanity
--list_probes list all available probes. Usage: combine with
--probes/-p to filter for probes that will be
activated based on a `probe_spec`, e.g. '--list_probes
-p dan' to show only active 'dan' family probes.
--list_detectors list available detectors. Usage: combine with
--detectors/-d to filter for detectors that will be
activated based on a `detector_spec`, e.g. '--
list_detectors -d misleading.Invalid' to show only
that detector.
--list_generators list available generation model interfaces
--list_buffs list available buffs/fuzzes
--list_config print active config info (and don't scan)
--version, -V print version info & exit
--report, -r REPORT process garak report into a list of AVID reports
--interactive, -I Enter interactive probing mode
--fix Update provided configuration with fixer migrations;
requires one of --config / --*_option_file, /
--*_options
See https://github.com/NVIDIA/garak
Examples
# List the available probes, detectors, and generators
garak --list_probes
# Scan a Hugging Face model with a specific probe
garak --model_type huggingface --model_name gpt2 --probes encoding
# Test an OpenAI-compatible endpoint for prompt injection
garak --model_type openai --model_name gpt-4 --probes promptinject
# Run the full default probe suite
garak --model_type huggingface --model_name your-model
garak writes a detailed report of which probes got through, so you can see exactly where a model is weak rather than just a pass/fail.