pytest for LLMs.
You wouldn't ship code without tests. ✋😮🤚
Hold your prompts to the same standard. 😎👌🔥
-
🔤 Test in Plain English: Write your tests in English, and let an AI grade the response.
-
🚀 Write Tests Faster: Just list your inputs and criteria in a simple file—no code needed.
-
🔓 Avoid Vendor Lock-in: Test against any LLM with a single, free OpenRouter API key.
pip install prompttestprompttest initprompttestprompttest is built around 2 types of files:
A .txt file for your prompt template with ---[SECTIONS]--- and {variables}.
Example: prompts/customer_service.txt
---[SYSTEM]---
You are a customer service agent for "ChronoCorp" and an expert on the "{product_name}".
Always be helpful, polite, and empathetic. Address the customer by name if it is provided.
Style rules:
- If the customer's message is only a greeting (e.g., "hi", "hello", "hey"):
- Reply with one short, polite greeting.
- Add nothing else: no extra sentences, questions, emojis, or marketing text.
- For other messages, answer concisely and only with information relevant to the request.
---[USER]---
Customer name: {user_name}
Customer query: {user_query}A .yml file for test cases with config, inputs and criteria.
Example: prompttests/test_customer_service.yml
config:
prompt: customer_service
tests:
- id: check-simple-greeting
inputs:
product_name: "Chrono-Watch"
user_name: "Jane"
user_query: "Hello"
criteria: "The response must be a simple, polite greeting."When you run prompttest, you get two outputs:
A pass/fail summary right in your terminal.
A detailed Markdown report for every single test.
Example: .prompttest_reports/latest/test_customer_service-check-simple-greeting.md
prompttest run folder_name/prompttest run file_name.ymlprompttest run test_idWe're building the pytest for LLMs—and we need your help.
Report a bug, propose a feature, or contribute a single line.
Help shape a foundational tool for AI development.
This project is licensed under the MIT License.


