Migrating from Promptfoo

EvalGuard is compatible with Promptfoo config files. Most migrations take under 5 minutes.

Quick Start

1. Install the EvalGuard CLI

npx @evalguardai/cli eval:local promptfooconfig.yaml

EvalGuard natively reads Promptfoo YAML configs. Just point it at your existing file.

2. Or convert to EvalGuard format

# evalguard.yaml
model: gpt-4o-mini
prompt: "Answer: {{input}}"
scorers:
  - contains
  - relevance
cases:
  - input: "What is 2+2?"
    expectedOutput: "4"
  - input: "Capital of France?"
    expectedOutput: "Paris"

Config Mapping

PromptfooEvalGuardNote
promptfooconfig.yamlevalguard.yamlSame YAML format, different key names
providers:model:Single model field instead of providers array
tests:cases:Renamed for clarity
assert: [{ type: 'contains' }]scorers: ['contains']Top-level scorers instead of per-test assertions
npx promptfoo evalnpx @evalguardai/cli eval:localSame workflow, different CLI
npx promptfoo generate redteamnpx @evalguardai/cli scan:localBuilt-in red team with 246 attack plugins

What you gain by switching

135 built-in scorers (vs Promptfoo's ~15)
232 red team attack plugins (vs ~90)
Runtime firewall with <1ms latency
Full observability with OpenTelemetry traces
AI-SPM (Security Posture Management)
FinOps cost tracking and optimization
CI/CD quality gates (exit code 1 on failure)
Python, JS, Go, and CLI SDKs

Ready to migrate?

Start with your existing Promptfoo config. No rewrite needed.

Documentation | EvalGuard