Blog
BastionLLM vs. Running Garak Yourself: Which Is Faster for LLM Security Testing in 2026?
You need to test your LLM endpoint. Should you spend an afternoon setting up garak, or run a hosted scanner? A direct comparison of setup time, coverage, and maintenance.
Table of Contents
- What you're actually comparing
- Setup: how long before you run your first test?
- Setting up garak locally
- Setting up BastionLLM
- Payload coverage and attack surface
- Output readability: can you act on the results?
- Maintenance overhead over time
- Recurring scans and regression detection
- Side-by-side comparison
- Honest tradeoffs: when garak makes sense
- When BastionLLM is the faster path
- FAQs
You shipped an LLM-powered feature. Now you want to know if someone can break it with prompt injection, a jailbreak, or a system prompt leak. You've heard about garak. You're wondering whether to spend an afternoon setting it up or just use a hosted scanner.
This article gives you a direct comparison. Setup time, payload coverage, output quality, and ongoing maintenance. Both tools get honest treatment. By the end, you'll know which one fits your situation.
What you're actually comparing
Garak is an open-source LLM vulnerability scanner backed by NVIDIA. It runs locally, supports a wide range of probes and detectors, and gives you full control over what gets tested. It's free and actively maintained by a research-oriented community.
BastionLLM is a hosted SaaS scanner at bastionllm.com. You paste an endpoint URL, configure your request headers and response field path, and run adversarial payloads against your live endpoint. No installation. No environment to manage. Results come back scored, with raw model outputs you can reproduce.
Both tools test LLM endpoints for vulnerabilities. The difference is almost entirely in the experience of getting there and staying there.
Setup: how long before you run your first test?
Setting up garak locally
Garak requires a working Python environment. The typical path looks like this:
- Install Python 3.10 or later and confirm your environment is clean
- Run
pip install garakor clone the repository and install from source - Configure your target model or endpoint — this means writing a generator config or passing command-line arguments that map to your specific API format
- Select probes and detectors relevant to your attack surface
- Run the scan and parse the output files
For engineers comfortable with Python tooling, steps one and two take maybe 15 minutes. Steps three and four are where time disappears. Garak was built primarily around model evaluation, not arbitrary REST endpoint testing. Pointing it at a custom /chat or /complete endpoint with specific request headers, JSON body shapes, and authentication tokens requires writing a custom generator. If your endpoint uses SSE or NDjson streaming, that adds more configuration work.
Realistically, a first useful scan against a production-style endpoint takes anywhere from one to three hours, depending on how much you've worked with garak before. That's not a knock on garak. It's a research-grade tool with genuine depth. But depth has a setup cost.
Setting up BastionLLM
The workflow is:
- Go to bastionllm.com
- Paste your endpoint URL
- Add request headers (Authorization, Content-Type, or whatever your endpoint needs)
- Set the response field path using dot notation so BastionLLM knows where to find the model's reply in your JSON response
- Run the scan
No account required for a guest scan. Six attacks run immediately. The free plan gives you 25 attacks per scan with one saved endpoint. The whole process from landing on the site to seeing first results takes under ten minutes for most endpoints.
If your endpoint supports SSE or NDjson streaming, BastionLLM handles that natively. You don't write code to support it.
Payload coverage and attack surface
Garak ships with a large library of probes covering a wide range of LLM risk categories. The coverage is broad and research-oriented. You can run probes for prompt injection, jailbreaks, data leakage, toxicity, and more. The depth is real. The tradeoff is that selecting the right probes for your specific use case requires understanding what each probe does and how detectors score results.
BastionLLM's Pro plan runs over 489 test payloads aligned to the OWASP LLM Top 10 risks. The attack patterns are loosely inspired by garak's framework but packaged for endpoint testing rather than model evaluation. Coverage includes:
- Direct and indirect prompt injection — payloads designed to override your system instructions
- DAN and role-play jailbreaks — scored by policy-break severity
- System prompt leak detection — covering direct disclosure and partial prompt hints
The free plan runs 25 attacks per scan. A guest scan runs 6 with no account at all. The Pro plan's 450-plus attacks per scan cover the full OWASP LLM Top 10 surface.
Garak's raw probe count is larger. But for teams testing a specific /chat or /complete endpoint against known attack categories, BastionLLM's 489 payloads cover the practical attack surface without requiring you to curate a probe list.
Output readability: can you act on the results?
This is where the two tools diverge most sharply.
Garak produces JSONL report files and a summary report. The output is detailed and machine-readable. For researchers or teams with dedicated tooling to parse and visualize results, this works well. For an engineer who wants to know "did this payload break my model, and what did it return?", the output requires interpretation. You need to understand garak's scoring model, what a pass or fail means for each detector, and how to map results back to your specific endpoint behavior.
BastionLLM returns scored results with the raw model output for each payload. You see exactly what the model said in response to each adversarial probe. Pass/fail verdicts on the free plan. Regex and heuristic verdicts on Pro. PDF and JSON export with the full raw response included.
The practical difference: with BastionLLM's output, you can take a failing probe, copy the raw payload and the model's response, and go fix the problem directly. No interpretation layer. No specialist needed.
For AppSec engineers who need reproducible evidence of testing for a compliance review or internal audit, the PDF and JSON export with raw outputs is directly usable. With garak's output, you'd need to build that artifact yourself.
Maintenance overhead over time
Garak requires ongoing maintenance. When you update garak, probe behavior can change. When your endpoint changes, your generator config may need updating. When your Python environment shifts, you may hit dependency conflicts. None of this is unusual for open-source tooling. It's just real overhead.
More importantly, running garak is a manual process unless you build your own CI/CD integration. If you want to test your endpoint after every model update, prompt change, or integration change, you need to wire that up yourself.
BastionLLM Pro includes weekly automated scans. You configure the endpoint once, and scans run on schedule. If a model update or prompt change introduces a regression, the next weekly scan catches it. You get 12 months of scan history, so you can compare results across time and see exactly when something changed.
For teams shipping LLM features continuously, that automated regression detection is the difference between knowing your endpoint is still safe after a change and assuming it is.
Recurring scans and regression detection
A one-time scan before launch is not enough. You change your system prompt. You swap from GPT-4o to a fine-tuned model. You update your RAG pipeline. Any of those changes can reintroduce vulnerabilities that your original scan caught and you fixed.
Garak doesn't have a built-in scheduling mechanism. You can script it with cron or a CI job, but that's work you build and maintain.
BastionLLM Pro runs weekly automated scans against your saved endpoints. No cron job. No maintenance. The scan history tracks results over time so you can see regressions as they appear, not after a user reports something unexpected.
Side-by-side comparison
| Dimension | Garak | BastionLLM |
|---|---|---|
| Setup time | 1–3 hours for a custom endpoint | Under 10 minutes |
| Installation required | Yes (Python, pip, config) | No |
| Guest/free scan | No | Yes (6 attacks, no account) |
| Free plan | Yes (full tool, self-hosted) | Yes (25 attacks/scan, 1 endpoint) |
| Paid plan | N/A | 49 EUR/month or 449 EUR/year |
| Payload count | Large library, probe-dependent | 489 payloads on Pro, OWASP LLM Top 10 |
| OWASP LLM Top 10 alignment | Partial, probe-dependent | Full coverage on Pro |
| Output format | JSONL + summary report | Scored results + raw model outputs |
| Report export | Manual | PDF and JSON on Free and Pro |
| Scheduled recurring scans | Manual (DIY CI/cron) | Weekly automated on Pro |
| Scan history | No built-in | 12 months on Pro |
| Streaming endpoint support | Requires custom generator | Native SSE/NDjson support |
| Maintenance | Ongoing (updates, deps, config) | None |
| Best for | Research, custom probe development | Engineers testing production endpoints |
Honest tradeoffs: when garak makes sense
Garak is the right tool if:
- You need to write custom probes for a specific attack pattern not covered by existing tools
- You're doing research-grade evaluation and need full control over probe and detector selection
- You're testing a local model that isn't exposed as a REST endpoint
- Your team has the Python expertise and time to build and maintain a testing pipeline
- Cost is the only constraint and setup time is not
Garak's open-source nature also means you can inspect exactly what it's doing. For teams with strong security research backgrounds, that transparency matters.
When BastionLLM is the faster path
BastionLLM fits better if:
- You have a live
/chat,/complete, or similar REST endpoint and want results today - You don't have a dedicated AI red team or security researcher on staff
- You need to test after every model, prompt, or integration change without building a pipeline
- You need a report you can hand to an AppSec reviewer or include in a compliance artifact
- You want to run a quick scan before a launch without a half-day of setup
The free plan at bastionllm.com runs 25 attacks per scan with no credit card. A guest scan runs 6 attacks with no account at all. If you've never tested your endpoint for prompt injection or system prompt leaks, that's the fastest way to find out where you stand.
Pro adds the 489-payload full scan, weekly automated scans, and 12-month history for 49 EUR/month or 449 EUR/year, tax included. The 30-day trial requires a card at checkout; you are billed when it ends.
FAQs
Is garak free to use?
Yes. Garak is fully open-source and free. You pay nothing to use it, but you absorb the setup time, maintenance overhead, and the work of building any automation around it.
Does BastionLLM use garak under the hood?
BastionLLM's attack patterns are loosely inspired by the garak framework, but BastionLLM is an independent hosted product. It is not a wrapper around garak. The two tools share conceptual lineage but are built and operated separately.
Can garak test a custom REST endpoint?
Yes, but it requires writing a custom generator to map garak's probe format to your endpoint's request shape, authentication, and response parsing. For standard OpenAI-compatible endpoints, this is easier. For custom APIs, expect meaningful configuration work.
What OWASP LLM risks does BastionLLM cover?
BastionLLM's Pro plan covers all 10 risks in the OWASP LLM Top 10, with over 489 test payloads. This includes prompt injection (LLM01), sensitive information disclosure, and jailbreak-related risks, among others.
Can I use both tools together?
Yes. Some teams use BastionLLM for fast, scheduled endpoint testing and garak for deeper research-oriented probing or custom probe development. They serve different workflows and aren't mutually exclusive.
How does BastionLLM handle streaming endpoints?
BastionLLM natively supports SSE and NDjson streaming response modes. You configure the response field path using dot notation, and the scanner handles the streaming format without additional setup.
What happens after the 30-day Pro trial?
After 30 days, you move to the paid Pro plan at 49 EUR/month, or 449 EUR/year if you choose annual billing, tax included. A card is required at checkout; you are billed when the trial ends.
If your endpoint is live and you haven't tested it for prompt injection or jailbreaks, start with a free scan.
OWASP LLM Top 10: Complete Security Guide
Get the full reference for prompt injection attacks, LLM jailbreaks, system prompt leaks, and OWASP-aligned testing workflows in one pillar guide.
Read the OWASP LLM Top 10 guide