Change one import and every model call is logged — cost, tokens, latency. Python eval suites version every prompt and catch drift with statistical tests. Edit prompts live, group calls into cost-attributed traces, set budgets with alerts. One SQLite file on your laptop, no account required.
From the first commit to the cost of every call in production.
from openai import OpenAI for from promptry.openai import OpenAI — cost, tokens, and latency, streaming and failures included. Same idea in JS via wrapOpenAI().track() call is content-hashed. Diff any two versions.@suite.render_prompt() serves dashboard-edited templates live — no redeploy.trace() for a per-step cost waterfall. Opt-in, sampled request/response capture. Ratings ingest from your app via API.No server, no account, no telemetry. Just a CLI and a SQLite file.
Local by default, no account, deterministic assertions instead of a metered LLM-judge tax — plus statistical drift tests, hard model-spend caps, and prompt-cache optimization none of the others ship.
| Dimension | promptry | Promptfoo | RAGAS | LangSmith | DeepEval |
|---|---|---|---|---|---|
| Authoring surface | Python decorators | YAML / JS / TS | Python metrics | SDK + web UI | Python (pytest) |
| Data location | Local SQLite | Local | Local | Cloud · self-host (Ent.) | Local + cloud push |
| Account required | No, ever | No | No (OSS) | Yes | No (OSS) |
| CI cost per run | $0 default · judge opt-in | $0 default · judge opt-in | Mostly judge-call | Per-trace billing | Mostly judge-call |
| Prompt versioning | Automatic content-hash | Manual + git | · | Prompt Hub | Cloud only |
| Live prompt editing | Dashboard, no redeploy | · | · | Prompt Hub (cloud) | Cloud only |
| Statistical drift detection | Mann-Whitney U + p-values | · | · | Dashboards + alerts | Dashboards + alerts |
| Model-spend budget caps | Hard daily/monthly caps | · | · | Own billing only | · |
| Prompt cache optimization | Reorder / consolidate / shorten | · | · | · | · |
| Commercial tier | None planned | Enterprise | Vibrant Labs (YC) | SaaS | Confident AI |
Install, wrap one prompt, write one assertion. Promptry takes it from there. Deterministic assertions by default — LLM-as-judge is opt-in, for when you actually want to spend the tokens.