promptfoo
4/5 Great Free tierA PM who wants to turn 'the AI answer feels worse this week' into a number, without asking engineering for anything.
- Pricing
- Free and open source (MIT) — runs locally with `npx promptfoo@latest`, no account required.
- Last verified
- Jul 28, 2026
What it is
promptfoo is a command-line tool for testing LLM outputs. You write a config file listing your prompts, the models to run them against, and a set of test cases with assertions — “must contain this”, “must not mention a competitor”, “must be graded 4+ by another model for tone” — then run promptfoo eval and get a pass/fail grid. promptfoo view opens a local web UI showing every output side by side, so you can see exactly which cases broke when someone changed the prompt.
It is open source under MIT, runs entirely on your machine, and needs no account to start. It’s now part of OpenAI and remains open source.
Our verdict
The cheapest way for a PM to stop arguing about AI quality from memory. Once your eval set exists, “the summaries got worse” becomes “seven of forty cases regressed, here they are” — and that changes who wins the conversation. The side-by-side comparison view is the part that earns its place: it makes model and prompt changes legible to people who will never read a diff.
Where it falls short: it is unapologetically a developer tool. You will be editing YAML in a terminal, and the first hour is genuinely unpleasant if you’ve never done that — the docs assume a comfort level most PMs don’t have. It also only tests what you thought to test: it will happily report 100% pass on an eval set that misses the failure mode your customers actually hit, which feels like safety and isn’t. And running LLM-graded assertions costs real API money at volume, since every test case is another model call.
Get value in 10 minutes
- Pull twenty real inputs your feature has seen — support tickets, search queries, whatever your model actually receives. Real ones. Invented test cases test your imagination.
- In an empty folder run
npx promptfoo@latest init --example getting-started, which writes a working config you can edit rather than starting from a blank file. - Replace the example prompt with yours and the example tests with your twenty inputs. For each, write the one thing that must be true of a good answer — start with
containsandnot-containsassertions before touching LLM grading. - Run
npx promptfoo@latest eval, thennpx promptfoo@latest view. Change one word in the prompt, re-run, and watch which cases flip. That grid is the artifact — it’s what you bring to the next “is it ready?” meeting.
Pairs with
- Claude Claude drafts the test cases and the grading rubric from your real customer inputs; promptfoo is what actually runs them, repeatedly, and shows the diff between two prompt versions.
- Claude Code Point Claude Code at your promptfooconfig.yaml and it will write and extend the config for you — the fastest way past the YAML learning curve if you don't write code.
Used in playbooks
Go deeper
- Primary sourcepromptfoo on GitHubThe source itself — MIT licensed, 23.7k stars. The README carries the current install and quickstart commands, and the note that promptfoo is now part of OpenAI while staying open source.
- Primary sourceAnthropic: define success criteria and build evaluationsThe best short statement of what a good eval set is, from a model vendor. Read the three design principles before you write a single test case.
- DocsAnthropic's prompt engineering overviewOpens by telling you not to prompt-engineer until you have success criteria and a way to test against them — which is the argument for this tool.