Promptfoo
snapshot-20260823 commercialPromptfoo is a testing framework for evaluating and benchmarking language model prompts and applications across multiple providers.
promptfoo logs
promptfoo redteam generate -d 'nightly-telecom-scan' --config redteam.yaml
promptfoo eval --env-file .env --env-file .env.secrets -c promptfooconfig.yaml
strategies:
- id: jailbreak
numTests: 20
assertions:
- type: word-count
threshold: 200
promptfoo logs
promptfoo redteam generate -d 'nightly-telecom-scan' --config redteam.yaml
promptfoo eval --env-file .env --env-file .env.secrets -c promptfooconfig.yaml
strategies:
- id: jailbreak
numTests: 20
assertions:
- type: word-count
threshold: 200 Summary
Promptfoo is a commercial ai-security tool that tests and red-teams LLM applications, run from the command line in CI pipelines or locally by developers. It covers both evaluation, letting teams score model or prompt outputs against assertions like word-count checks or derived metrics, and adversarial testing, generating attacks through plugins such as its Telecom-specific suite or RAG Source Attribution checks, with scans configurable at the individual test-case level for prompts, providers, and structured output. It's aimed at application developers and AI security teams building on models from providers like AWS Bedrock, Azure AI Foundry, xAI, or Hugging Face via Transformers.js, all of which it can connect to directly. Launched in 2023 and still active, with 17 releases in the tracked window and the latest just 34 days old.
Promptfoo is a testing framework for evaluating and benchmarking language model prompts and applications across multiple providers.
What Promptfoo answers
Can it test conversations that span multiple turns, not just single prompts?
the HTTP provider carries a session identifier across calls, so a scan can follow a stateful back-and-forth rather than treating each message in isolation
Will it work with the model providers we already use, including ones outside the mainstream APIs?
providers range from locally-run Hugging Face models to video generation on Bedrock and Azure and voice on xAI, so niche or in-house setups aren't excluded
Does it fit our industry's specific risks, or only generic prompt attacks?
plugins can target a named domain, such as one built for telecom systems, alongside the general-purpose red team checks
Can red team runs join our pull request workflow without a maintainer kicking them off manually?
code scanning triggers from a fork pull request or from a comment, so scans start as part of the review rather than as a separate manual step
What happens when a provider throttles requests mid-scan?
concurrency adjusts on its own from the provider's rate limit and response headers, so a scan slows down instead of failing outright
Can I limit a scan to the specific prompts or providers a test case actually needs?
filters at the individual test case level scope which prompts and providers run, instead of applying the full matrix to every case
Release history
- snapshot-20260823
Promptfoo snapshot-20260823 adds adaptive rate limiting, Transformers.js local inference, telecom red team plugins, and multi-input red team scanning.
└──▷ TRY ITView Promptfoo runtime logs without digging through the filesystem — useful when debugging provider errors or rate limit behavior.$ promptfoo logsCap test-case generation per strategy and label a red team run for tracking in CI.$ promptfoo redteam generate -d 'nightly-telecom-scan' --config redteam.yaml
Load separate secret and environment config files in one run, and reference a secrets file path via environment variable.$ promptfoo eval --env-file .env --env-file .env.secrets -c promptfooconfig.yaml
Cap strategy test-case volume and assert word count in a single test config — useful for constraining long-running red team scans.strategies: - id: jailbreak numTests: 20 assertions: - type: word-count threshold: 200- ›Adds
promptfoo logscommand for viewing log files directly from the CLI. - ›Adds
-d/--descriptionflag toredteam generatecommands for labeling generated scans. - ›Adds
--shareand--no-shareflags to Model Audit for controlling cloud sharing. - ›Adds
$VARsyntax support in file paths for referencing environment variables in configuration. - ›Supports multiple
--env-fileflags to load several environment files in a single invocation.
+21 moreshow less
- ›Adds
--extensionCLI flag to load extensions via command line. - ›Adds
numTestsconfig key to cap the number of test cases generated per red team strategy. - ›Adds
metadata.sessionIdas a surfaced variable column in eval result tables and exports. - ›Adds
word-countassertion type for validating response word counts. - ›Adds
__countvariable for use in derived metrics to compute averages. - ›Adds test-level prompts filter, providers filter, and per-test structured output configuration at the individual test case level.
- ›Adds adaptive rate limit scheduler that automatically adjusts concurrency based on provider rate limits and response headers.
- ›New Transformers.js provider to run Hugging Face models locally in Node.js or the browser.
- ›New Vercel AI Gateway and Cloudflare AI Gateway providers for routing requests.
- ›New AWS Bedrock Video provider supporting Nova Reel and Luma Ray 2 video generation.
- ›New Azure AI Foundry Video provider for Sora video generation.
- ›New Telecom red team plugin for industry-specific testing of telecommunications AI systems.
- ›New RAG Source Attribution plugin to test whether RAG systems properly attribute sources in responses.
- ›Red team scans now support multiple input variables for testing systems with complex input structures.
- ›Adds
apiBaseUrlandwebsocketUrloverride config and function call support to the xAI Voice provider. - ›Adds
collaboration_modesupport and integrated tracing to the OpenAI Codex provider. - ›HTTP provider gains native session endpoint support for stateful conversations.
- ›Code scanning adds support for fork pull requests and comment-triggered scans.
- ›Automatic retries for transient 5xx errors in Enterprise environments.
- ›User-rated filter in the UI to show only manually rated eval results.
- ›Provider config hover in eval results UI to view provider configuration details inline.
- ›Adds
- snapshot-20260823
Promptfoo snapshot-20260823 adds adaptive rate limiting, Transformers.js local inference, telecom red team plugins, and multi-input red team scanning.
└──▷ TRY ITView Promptfoo runtime logs without digging through the filesystem — useful when debugging provider errors or rate limit behavior.$ promptfoo logsCap test-case generation per strategy and label a red team run for tracking in CI.$ promptfoo redteam generate -d 'nightly-telecom-scan' --config redteam.yaml
Load separate secret and environment config files in one run, and reference a secrets file path via environment variable.$ promptfoo eval --env-file .env --env-file .env.secrets -c promptfooconfig.yaml
Cap strategy test-case volume and assert word count in a single test config — useful for constraining long-running red team scans.strategies: - id: jailbreak numTests: 20 assertions: - type: word-count threshold: 200- ›Adds
promptfoo logscommand for viewing log files directly from the CLI. - ›Adds
-d/--descriptionflag toredteam generatecommands for labeling generated scans. - ›Adds
--shareand--no-shareflags to Model Audit for controlling cloud sharing. - ›Adds
$VARsyntax support in file paths for referencing environment variables in configuration. - ›Supports multiple
--env-fileflags to load several environment files in a single invocation.
+21 moreshow less
- ›Adds
--extensionCLI flag to load extensions via command line. - ›Adds
numTestsconfig key to cap the number of test cases generated per red team strategy. - ›Adds
metadata.sessionIdas a surfaced variable column in eval result tables and exports. - ›Adds
word-countassertion type for validating response word counts. - ›Adds
__countvariable for use in derived metrics to compute averages. - ›Adds test-level prompts filter, providers filter, and per-test structured output configuration at the individual test case level.
- ›Adds adaptive rate limit scheduler that automatically adjusts concurrency based on provider rate limits and response headers.
- ›New Transformers.js provider to run Hugging Face models locally in Node.js or the browser.
- ›New Vercel AI Gateway and Cloudflare AI Gateway providers for routing requests.
- ›New AWS Bedrock Video provider supporting Nova Reel and Luma Ray 2 video generation.
- ›New Azure AI Foundry Video provider for Sora video generation.
- ›New Telecom red team plugin for industry-specific testing of telecommunications AI systems.
- ›New RAG Source Attribution plugin to test whether RAG systems properly attribute sources in responses.
- ›Red team scans now support multiple input variables for testing systems with complex input structures.
- ›Adds
apiBaseUrlandwebsocketUrloverride config and function call support to the xAI Voice provider. - ›Adds
collaboration_modesupport and integrated tracing to the OpenAI Codex provider. - ›HTTP provider gains native session endpoint support for stateful conversations.
- ›Code scanning adds support for fork pull requests and comment-triggered scans.
- ›Automatic retries for transient 5xx errors in Enterprise environments.
- ›User-rated filter in the UI to show only manually rated eval results.
- ›Provider config hover in eval results UI to view provider configuration details inline.
- ›Adds