PAGES
← all tools
◆ AI Red Teaming & Testing

garak

v0.17.1 open-source

Garak scans language models and applications for vulnerabilities including prompt injectionprompt injectionAn attack where text the model reads, such as a web page, file or tool result, carries instructions that override the user's. It is the main security risk for agents with tools. and data leakage.

Summary

garak is an open-source, free command-line scanner that probes large language modelslarge language modelsA large language model, a neural network trained on large amounts of text to recognize patterns and generate language. Applications use it for tasks such as answering, summarizing and writing code. 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 LLMsLLMsA large language model, a neural network trained on large amounts of text to recognize patterns and generate language. Applications use it for tasks such as answering, summarizing and writing code. 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.

Garak scans language models and applications for vulnerabilities including prompt injection and data leakage.

How garak helps

Which prompt injection or jailbreak techniques can make our deployed model break its guardrails?

runs a catalogue of static, dynamic, and adaptive probes against the target and reports which ones succeeded, mapped to the specific failure mode each one triggered

Is our model leaking training data or fabricating facts it presents as true?

dedicated hallucination and data leakage probes send crafted prompts and score the responses against detectors built for those failure classes, listed per probe in the output

Which known jailbreak patterns does our chatbot still fall for?

includes named jailbreak probes such as prior DAN variants and adaptive attack probes, and marks each attempt as passed or failed against the running target

Where does our model's behavior create regulatory exposure?

tags and groups probe results by EU AI Act risk categories so failures can be read against the categories they fall under, rather than as an undifferentiated list

Did a change to our model or its guardrails fix or reopen a known weakness?

results are written to a structured report file that can be diffed run over run, so a probe that passed before and fails now is visible as a regression

Which combination of attack technique and intent actually got through, not just which probe fired?

the intent-driven scanning framework annotates probes with technique and intent, and the report includes a matrix cross-referencing which technique/intent pairs succeeded against the target

all 14 features, with the evidence for each →

Languages

Not documented

Features

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

Built from garak's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

What garak offers you

  • Plugin system4
  • Command-line interface3
  • JSON data export1
  • Plugin API support1
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.
Adaptive attacks probing shipped Runs built-in adaptive attacks against a target model to test how it responds to iterative pressure. 23 releases · 1 other source · first seen Jan 2024

release 23 total

  • Simple adaptive attacks probe added v0.16.0 · Aug 2026 · source · release history
  • New simple adaptive attacks probe (probes plugin). v0.16.0 · Aug 2026 · source · release history
  • probe: Api key probe + detector for testing API key exposure or validity v0.13.3 · Dec 2025 · source · release history
  • probe: zero width bad char injection using invisible characters to bypass filters v0.13.3 · Dec 2025 · source · release history
  • Adds the probe.token_smuggling probe module. v0.13.1 · Oct 2025 · source · release history
  • Adds the probe.dra probe (Disguise and Reconstruction Attack). v0.13.1 · Oct 2025 · source · release history

example

  • Test custom detector plugin python3 -m garak -m test.Blank -p test.Blank -d mymodule
Unified run spec selection verified Lets users select probes, buffs, tags, and tiers in a single unified specification, via CLI or config file. 13 releases · 2 other sources · first seen Jul 2023

Also counts toward: Command-line interface

release 13 total

  • 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. v0.16.0 · Aug 2026 · source · release history
  • 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
  • Unified run.spec selection grammar for probes, buffs, and intents; probe_spec and buff_spec move into the run definition v0.16.0 · Aug 2026 · source · release history
  • probe_spec and buff_spec move into the run definition as part of a unified _spec_ 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

example

  • List all available probes garak --list_probes
Dataset configuration verified Lets users choose which subset or configuration of a dataset to load when a probe runs. 2 releases · 2 other sources · first seen Feb 2024

Also counts toward: Command-line interface

release

  • Supports JSON configuration files alongside existing YAML formats for the cyber tooling v0.14.0 · Feb 2026 · source · release history
  • Changes the default output directory from runs/ to garak_runs/ v0.9.0.12 · Feb 2024 · source · release history

command line

example

  • Run a scan using a standard JSON configuration file instead of the default YAML. garak --config config.json <model_probe> v0.14.0 · Feb 2026 · source
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. 15 releases · first seen Jul 2023

release 15 total

  • Adds EU_AI_Act mapping that provides reference tags to surface and group probes results that relate to various categories of risk called out in the EU AI Act v0.17.0 · Sep 2026 · source · release history
  • Adds EU AI Act risk-category reference tags to surface and group probe results by EU AI Act risk categories. v0.17.0 · Sep 2026 · source · release history
  • Adds EU AI Act mapping that tags and groups probe results by EU AI Act risk categories.⁠︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄⁠ v0.17.0 · Sep 2026 · source · release history
  • 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. v0.16.0 · Aug 2026 · source · release history
  • 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
  • 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. 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.
Web injection detection shipped Detects markdown-based data exfiltration and web injection attempts in model responses, including evasion variants. 5 releases · first seen May 2025

Also counts toward: Plugin system

release

  • Hardens web_injection markdown exfiltration detectors against domain, extension, and parameter evasion. v0.16.0 · Aug 2026 · source · release history
  • Hardens web_injection markdown exfiltration detectors against domain, extension, and parameter evasion techniques. v0.16.0 · Aug 2026 · source · release history
  • Harden web_injection markdown exfil detectors against domain/extension/param evasion v0.16.0 · Aug 2026 · source · release history
  • detectors:any - Universal detector plugin v0.13.2 · Nov 2025 · source · release history
  • Updates promptinject detector to accept multiple triggers for broader injection pattern coverage v0.11.0 · May 2025 · source · release history
String detection shipped Checks model responses for expected strings, applying Unicode normalisation to catch character-level evasion. 4 releases · first seen Jan 2025

release

  • Unicode normalization added to StringDetector v0.16.0 · Aug 2026 · source · release history
  • Adds Unicode normalisation to StringDetector for more robust string matching across character representations. v0.16.0 · Aug 2026 · source · release history
  • Adds Unicode normalisation to StringDetector to improve detection consistency across text encodings. v0.16.0 · Aug 2026 · source · release history
  • Adds startswith matching mode to StringDetector base class for string comparison v0.10.2 · Jan 2025 · 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. 20 releases · 5 other sources · first seen Jul 2023

Also counts toward: JSON data export

release 20 total

  • Adds hit@k attack success rate metric, exposed as terminal output and per probe/detector pair in the final digest entry of report.jsonl.⁠︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄⁠ v0.17.1 · Oct 2026 · source · release history
  • Adds hit@k attack success rate metric, exposed in terminal output and per probe/detector pair in the digest entry of report.jsonl.⁠︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄⁠ v0.17.1 · Oct 2026 · source · release history
  • report.jsonl output structure changes: new entry types probe_summary; expanded digest format; removed digest values for older *_spec configuration no longer consumed v0.16.0 · Aug 2026 · source · release history
  • 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. v0.16.0 · Aug 2026 · source · release history
  • 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
  • report.jsonl removed digest values for older *_spec configuration no longer consumed v0.16.0 · Aug 2026 · source · release history

docs

  • LLM vulnerability scanner that probes generative AI models for hallucination, prompt injection, jailbreaks, toxicity, and other failure modes.

example

  • Run a probe with slurs and XSS payloads alongside the default options to broaden coverage. garak --probe prompt_injection --probe_options '{"encoding.options": ["default", "slurs", "xss"]}' v0.9.0.6 · Jul 2023 · source
  • Run a scan that automatically reports detected vulnerabilities to AVID. garak --report_to avid v0.9.0.6 · Jul 2023 · source
  • Scan a model and send results to AVID for coordinated disclosure. garak --probe glitchtoken dataleakage --report_to_avid true v0.9.0.5 · Jul 2023 · source
  • Get a more concise output suitable for log parsing or limited terminal space. garak --model huggingface/gpt2 --narrow v0.9.0.5 · Jul 2023 · source
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. 34 releases · 3 other sources · first seen Jul 2023

Also counts toward: Plugin API support, Plugin system

release 34 total

  • Forwards generation parameters to the Ollama generator via an options dict. v0.17.0 · Sep 2026 · source · release history
  • Adds Ollama authentication and custom client kwargs support to the Ollama generator.⁠︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄⁠ v0.17.0 · Sep 2026 · source · release history
  • Adds authentication and custom client kwargs support for the Ollama generator. v0.17.0 · Sep 2026 · source · release history
  • Forwards generation parameters to Ollama via options dict v0.17.0 · Sep 2026 · source · release history
  • Forwards generation parameters to Ollama via the options dict. v0.17.0 · Sep 2026 · source · release history
  • New native Anthropic generator plugin for direct Anthropic API access. v0.16.0 · Aug 2026 · source · release history

example

  • 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 v0.16.0 · Aug 2026 · source
  • Pass suppressed_params to a Bedrock generator to handle specific API requirements. python -m garak --generator bedrock.BedrockGenerator --generative_parameters suppressed_params='<params>' v0.16.0 · Aug 2026 · source
  • Run a scan against an LLM using the new NeMo Guardrails generator interface instead of default OpenAI or local models. garak --model_type nemo_guardrails v0.9.0.10 · Dec 2023 · source
Other 6 capabilities
Reporting and aggregation configuration shipped Users can configure report output structure, including result summaries, score aggregation strategies (e.g., min vs max), suppression of group scores, and detector column visibility. 4 releases · first seen May 2025

release

  • Adds a result_summary object to the reporting output structure. v0.12.0 · Jul 2025 · source · release history
  • The --report-aggregation default behavior changed from the previous logic (likely max/mean) to a new aggregation method, potentially altering reported scores in scripts relying on the old default. v0.11.0 · May 2025 · source · release history
  • Adds --report-aggregation=min reporting option to aggregate probe scores using the minimum value instead of the previous default v0.11.0 · May 2025 · source · release history
  • Adds --no-group-score reporting flag to suppress group-level score aggregation in output reports v0.11.0 · May 2025 · source · release history
Advanced probing strategies and base classes shipped The tool introduces new iterative probe base classes and specific attack probes for token smuggling, disguise and reconstruction, zero-width character injection, and repetitive token attacks. 2 releases · 1 other source · first seen Nov 2025

release

example

  • Test custom probe plugin python3 -m garak -m test.Blank -p mymodule -d always.Pass
Multi-modal scanning support shipped The tool extends beyond text to support scanning audio inputs and provides specialized probes for detecting API key exposure. 2 releases · first seen Jul 2025

release

  • probe: Api key probe + detector for testing API key exposure or validity v0.13.3 · Dec 2025 · source · release history
  • audio NIM model and audio probes are now available for scanning audio inputs. v0.12.0 · Jul 2025 · source · release history
LLM API connectivity and configuration shipped The tool supports querying diverse LLM providers via specific generator plugins, configurable REST proxies, SSL suppression, and model-targeted parameters. 2 releases · first seen May 2025

Also counts toward: Command-line interface, Plugin system

release

  • Config keys model_* are renamed to target_*. v0.13.1 · Oct 2025 · source · release history
  • Adds -no-cnv CLI flag to disable CUDA neural network optimization in GGML-based generators v0.11.0 · May 2025 · source · release history
Prompt and conversation management shipped The tool allows configuring system prompts and enabling multi-turn conversation support for probing LLMs. 2 releases · first seen Sep 2025

release

Configuration plugin resolution shipped Users can specify probes and generators in configuration files using module.classname notation for precise plugin targeting. 1 release · first seen Mar 2025

Also counts toward: Plugin system

release

  • Supports module.classname notation in configuration to specify plugins (e.g., probes.xss_exfil, generators.watsonx_ai) v0.10.3 · Mar 2025 · source · release history

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for garak, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail garak puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

29 entries

  1. October 20261
  2. September 20261
  3. August 20261
  4. June 20261
  5. May 20261
  6. April 20261
  7. February 20261
  8. December 20251
  9. November 20251
  10. October 20251
  11. September 20251
  12. July 20251
  13. May 20251
  14. March 20251
  15. January 20251
  16. December 20241
  17. October 20241
  18. September 20241
  19. August 20241
  20. July 20241
  21. May 20241
  22. February 20241
  23. January 20241
  24. December 20232
  25. November 20231
  26. July 20233
    Show

    29 entries

    Project health

    Issue, contributor and maintainer activity in NVIDIA/garak, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 100 +56 vs prior 12 months
    2. Maintainers 8 +5 joined · −2 left, last 12 months
    3. Bus factor 3 committers behind half the commits
    4. Community-filed 56% of issues opened, last 12 months
    5. Median time to close 111 days first maintainer reply 39 hours
    6. Open backlog 252 of 922 issues ever filed
    1. Issues opened / month 12 · 5 communitymaintainers
    2. Open backlog 252
    3. Contributors / month 7
    4. Commits / month 16
    5. Stars 9,262
    Issue themes, last 12 months
    • bugs 27%
    • questions 7%
    • docs 2%
    • other 64%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Articles

    1 article · updated Nov 4, 2026

    Where garak turns up in what others publish: how-tos, attack reports that name it, and incident write-ups. A row says why it is here and quotes where the article names it; the link goes to the publisher.

    Tutorials & guides 1

    • A Complete Guide to AI Red-Teaming (With Garak Tutorial) Analytics Vidhya
      Tool Company My Honest Take Garak NVIDIA 100+ attack probes built in, covering everything from encoding tricks to training-data extraction.
      2 more quotes
      Hands-On with Garak Let’s explore how to perform a simple red teaming exercise using Garak, step by step: First I installed Garak using: pip install garak To confirm whether it installed correctly, I used: python -m…
      python -m garak --target_type huggingface --target_name openai-community/gpt2 --probes dan When I ran the scan, I used --probes dan to tell Garak which attack to test.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →