Heads up This site is currently under heavy development.
← all tools
◆ AI/LLM Security

garak

v0.16.0 open-source

the LLM vulnerability scanner

Summary

garak is an open-source, free command-line scanner that probes large language models for weaknesses such as hallucination, prompt injection, jailbreaks, toxicity generation, and data leakage, combining static, dynamic, and adaptive probes to make a target model fail in specific, catalogued ways. It's aimed at red teamers and AI security practitioners assessing a model or chat system before or after deployment, rather than at application developers debugging normal behaviour. Its README compares it to nmap or Metasploit, but for LLMs instead of networks and hosts. Configuration and results follow a defined structure, with a unified spec syntax for selecting probes and buffs and a `report.jsonl` output for downstream analysis. First committed in 2023, garak now has 128 contributors and over a thousand commits in the past year, with a release just 17 days ago, indicating active, ongoing development.

the LLM vulnerability scanner

What garak answers

Can I target a model I built or host myself?

supports custom probe and detector plugins, so an in-house model or a bespoke failure check can be scanned the same way as a supported provider

How do I know which specific weakness a failure maps to?

each probe now carries technique and intent annotations, and reports include a matrix linking results to named, described attack techniques rather than a bare pass/fail

Will an existing config or report parser keep working after I upgrade?

the selection syntax and output structure have changed recently enough that old top-level selection keys and old report fields break, so pinned configs and downstream parsers need updating

Do I need to write custom string-matching logic to catch obfuscated attacks?

detectors normalise Unicode and are hardened against domain and extension evasion, catching attacks that vary character representation rather than requiring bespoke matching rules

all 8 features, with the evidence for each →

Features

8 capabilities across 5 areas · 2 backed by code, an API document or a real run

Built from everything we hold on garak — every release we have summarised, its product documentation and how that documentation has changed, its README, its command-line surface and API, and runs we performed ourselves. Dates are when we first saw a capability, not when the vendor introduced it.

Capability area
Probe execution and attack coverage 3 capabilities This is the core function of garak: running structured probes against a target LLM to surface harmful, unsafe, or unintended behaviours. It covers how probes are selected, configured, and executed, including adaptive attack techniques.
Unified run spec selection verified Lets users select probes, buffs, tags, and tiers in a single unified specification, via CLI or config file. 3 releases · 1 other source · first seen Aug 2026

release

  • Introduces a unified run.spec selection grammar that consolidates probe_spec and buff_spec into the run config definition and adds support for selecting _intents_ alongside probes and buffs. v0.16.0 · Aug 2026 · source · release history
  • CLI plugin selection options for probes and buffs are now deprecated in favour of the unified spec syntax (old options still accepted but marked deprecated). v0.16.0 · Aug 2026 · source · release history
  • probe_spec and buff_spec configuration keys move into the run definition as part of the new unified spec syntax — existing config files using top-level probe_spec or buff_spec will break. v0.16.0 · Aug 2026 · source · release history

command line

  • --spec — unified selection spec, e.g. 'probes.dan,-probes.dan.DanInTheWild,tag:owasp:llm01'. Selectors: probes.<module>[.<Class>], buffs.<module>[.<Class>], tag:<prefix>, tier:<N|name>; '-' excludes, tier:N is inclusive (tiers 1..N). v0.16.0 · Aug 2026 · command-line history
Adaptive attacks probing shipped Runs built-in adaptive attacks against a target model to test how it responds to iterative pressure. 1 release · first seen Aug 2026

release

Dataset configuration verified Lets users choose which subset or configuration of a dataset to load when a probe runs. 1 other source · first seen Jun 2026

command line

Context-aware evaluation and intent mapping 1 capability Garak can annotate probes and buffs with technique and intent metadata, allowing evaluations to be organised and reported by what an attacker is trying to do rather than just by probe name. This gives buyers a structured view of coverage across the threat landscape.
Context Aware Scanning (CAS) shipped Tags probes and buffs with technique and intent metadata so evaluations can be filtered and reported by attacker intent. 2 releases · first seen Aug 2026

release

  • New Context Aware Scanning (CAS) framework: technique and intent annotations on probes, a technique_intent_matrix in reports enriched with names and descriptions, and a new IntentProbe base class for intent-driven evaluation. v0.16.0 · Aug 2026 · source · release history
  • New technique and intent tabs/lists in scan reports for browsing CAS results. v0.16.0 · Aug 2026 · source · release history
Detection and response analysis 2 capabilities Garak includes detectors that examine model outputs and classify them against known harmful or suspicious patterns. These cover both content-level string matching and web-specific injection and exfiltration techniques.
String detection shipped Checks model responses for expected strings, applying Unicode normalisation to catch character-level evasion. 1 release · first seen Aug 2026

release

  • Adds Unicode normalisation to StringDetector for more robust string matching across character representations. v0.16.0 · Aug 2026 · source · release history
Web injection detection shipped Detects markdown-based data exfiltration and web injection attempts in model responses, including evasion variants. 1 release · first seen Aug 2026

release

  • Hardens web_injection markdown exfiltration detectors against domain, extension, and parameter evasion techniques. v0.16.0 · Aug 2026 · source · release history
Reporting and output 1 capability Garak writes scan results to structured file formats that summarise what was tested and what was found. Reports include probe-level summaries and technique/intent breakdowns suitable for downstream consumption.
Scan reporting and output shipped Writes scan results to JSONL and digest files, including per-probe summaries and technique/intent breakdowns. 2 releases · first seen Aug 2026

release

  • Adds probe_summary as a new entry type in report.jsonl output, and expands the digest format with probe summary data. v0.16.0 · Aug 2026 · source · release history
  • The report.jsonl output structure changes: new probe_summary entry type is added, the digest format is expanded, and digest values tied to the old *_spec configuration keys are removed — any downstream parsers of report.jsonl must be updated. v0.16.0 · Aug 2026 · source · release history
LLM connectivity and integration 1 capability Garak connects to target LLMs through a pluggable generator system, supporting multiple API providers. Provider-specific parameter controls let users tune how requests are sent to each backend.
Generator plugins shipped Connects to LLM APIs through pluggable generator backends, with per-provider control over which request parameters are sent. 2 releases · first seen Aug 2026

release

  • New native Anthropic generator plugin for direct Anthropic API access. v0.16.0 · Aug 2026 · source · release history
  • Adds suppressed_params support to BedrockGenerator for controlling which parameters are passed to the Bedrock API. v0.16.0 · Aug 2026 · source · release history
Capability
Evidence

Lines in monospace are the tool's own words — help text parsed from its source, or an endpoint from its API document. Everything else is our summary of a dated release or documentation change, linked back to the source it came from.

Release history

  1. v0.16.0 Aug 4, 2026 · issue 005

    garak v0.16.0 adds intent/technique-aware scanning, a native Anthropic generator, and an adaptive attacks probe

    └──▷ GET THIS VERSION
    $ git clone --branch v0.16.0 https://github.com/NVIDIA/garak.git
    # already have the repo? check out this version:
    $ git checkout v0.16.0
    └──▷ TRY IT
    Scan an Anthropic Claude model directly using the new native Anthropic generator.
    $ python -m garak --target_type anthropic --target_name claude-3-5-haiku-20241022 --probes encoding
    • Adds a unified run.spec selection grammar that combines probe, buff, and intent selection into a single specification, replacing separate probe_spec and buff_spec config keys.
    • Introduces IntentProbe — a new probe base class enabling context-aware scanning that maps attack techniques to intents and automatically selects detectors based on intent mappings.
    • Adds probe_summary entries and an enriched technique_intent_matrix (with names and descriptions) to report.jsonl output, providing a new facet of per-probe and cross-technique/intent reporting.
    • Adds a native Anthropic generator plugin, enabling direct scanning of Anthropic Claude models without going through a compatibility shim.
    • Adds suppressed_params support to the BedrockGenerator, allowing callers to exclude specific inference parameters from AWS Bedrock requests.
    +2 moreshow less
    • Adds Unicode normalisation to StringDetector to improve detection consistency across text encodings.
    • Hardens web_injection markdown exfiltration detectors against domain, extension, and parameter evasion.
    └──▷ BREAKING ON UPGRADE
    • !probe_spec and buff_spec configuration keys move into the run definition as part of the new unified spec; existing config files using top-level probe_spec or buff_spec will break.
    • !CLI plugin selection options for probes and buffs are now deprecated (backwards-compatible aliases remain, but dependence on the old forms should be migrated).
    • !report.jsonl output structure changes: new probe_summary entry type added, digest format expanded, and older digest values tied to the removed *_spec configuration keys are no longer emitted.
my-toolchain — 0 tools
paste an install list to detect your tools

A brew list, a Brewfile, requirements.txt, a Dockerfile — or just the product names, free-form. Nothing leaves your browser.

    browse all tools →