Skip to content

LLM A/B testing & prompt management

Stop guessing which prompt is better

Run your prompt and model changes as real experiments on live traffic, and get a plain-English verdict on which one actually wins.

Free plan · no credit card required

Open betaYoung product, fast fixes, direct line to the founders.

  • Zero added latencyassignment is a local hash — no network call on your request path.
  • Three open-source SDKsPython, TypeScript, and Java, on PyPI, npm, and Maven Central.
  • Statistics you can defendSRM-gated and FDR-corrected, with the full detail one click away.

Your first LLM A/B test, in two lines

from llmjury import Client

client = Client(experiments=["checkout-prompt"])
llm = client.wrap(anthropic_client, "checkout-prompt")

# the two lines that turn your call into an experiment
p = client.get_prompt("checkout-prompt", user_id,
                      default="You are a helpful assistant.")
response = llm.messages.create(
    model="claude-haiku-4-5",
    system=p.prompt,
    messages=[{"role": "user", "content": user_input}],
)

That’s the whole integration — no stats code, no redeploy to change a prompt. The only metric you send by hand is your business outcome, via client.track(…). See the whole path in the five-minute quickstart.

The verdict, on a real experiment

Every prompt change, scored on your own traffic

Not a dashboard of numbers to interpret — a decision, in words: how many metrics moved, which way, and whether the split held. Quality, speed, cost, and business impact in one answer, with the full statistical detail one click away. SRM checks catch a broken split, and FDR correction keeps a lucky result from reading as a real one.

Every screenshot below is the real product, from the read-only sample experiment waiting in your account. It rotates on its own — use the arrows, or expand any shot to full screen for a closer look. Rather click through it? Open the interactive demo — same experiment, no sign-up.

1 / 8

The decision, at a glance

One checkout-assistant prompt, tested as four variants — a detailed control and three rewrites. LLMJury leads with the call: how many metrics moved, over how many judged events, across how long a window, with the traffic split checking out.

Sound familiar?

You pick prompts by eyeballing ten outputs

Ten examples can look great while the change quietly makes half your real traffic worse.

Model upgrades are a coin flip

Without measuring on your own traffic, you find regressions the way your users do — after they happen.

“Are you sure?” has no good answer

At a launch review, “I looked at some outputs” is the whole case. There is no number to point at.

Your prompts live in string literals across the repo

Their history is `git blame`, changing a comma means a redeploy, and nobody can roll one back in a hurry.

LLMJury replaces “it feels better” with a measured answer from your own users — and moves your prompts out of the codebase into one place with full history.

From gut feeling to verdict in three steps

1

Version and wrap

Your prompt variants live in LLMJury, not your repo. Two lines of SDK put them behind one key — add a version without redeploying.

2

Let real traffic vote

Each user is consistently assigned to a variant. LLMJury grades a sample of the outputs and tracks speed, cost, and conversions alongside.

3

Read the verdict, then roll out or roll back

“Variant B wins on quality, ties on speed, costs 12% less.” Promote it or revert — same screen, no deploy.

VersionEdit a prompt, save a new version
TestSplit real traffic across variants
VerdictA plain-English winner, with the stats
Roll out or roll backShip it or revert — no redeploy
The same loop, every prompt change

Design partners: 6 months of Business, free. We’re taking on a handful of teams shipping real LLM features — direct founder access and outsized say over the roadmap. 5 slots left.

Apply to be a design partner →

Prompt management, built for the experiment loop

Edit a prompt, save a new version, and deploy it without touching the repo or shipping a build. The engineer who owns the model call and the person who owns the words stop stepping on each other.

Full version history

Every prompt keeps every version — no scrolling `git blame` to find what it said last month.

An audit trail you can defend

Who changed what, and when. Useful in a launch review; necessary the day something regresses.

Compare and roll back

Diff any two versions side by side, and revert to a known-good one instantly — no hotfix branch.

Your default always survives

The SDK carries an in-code fallback prompt, so an LLMJury outage never takes your app down.

Worth signing up for this alone, before you run a single experiment. The version you edit is the variant you test is the verdict you ship.

Everything you need to ship LLM changes with confidence

Change the prompt, not the codebase

Prompts live in LLMJury with version history, an audit trail, side-by-side compare, and one-click rollback. Deploy a new version without a redeploy — and the exact version you shipped is the one that gets tested.

Change the prompt, not the codebase. Prompts live in LLMJury with version history, an audit trail, side-by-side compare, and one-click rollback. Deploy a new version without a redeploy — and the exact version you shipped is the one that gets tested.

Test prompts and models on real traffic. Swap prompts, models, or parameters behind a variant key — no redeploys. The same user always sees the same variant, in every SDK, so the comparison is fair.

An LLM-as-judge scores your outputs for you. Built-in quality, safety, and relevance grading — plus your own rubric in plain English. Sampled and budget-capped, so grading never runs away with your bill.

Broken tests get stopped, not shipped. If your traffic split breaks, LLMJury halts the analysis instead of showing you a lie. Every result is checked against false positives before it reaches you. The full statistical detail is always one click away.

See if “better answers” actually moves the business. Send conversions or revenue events and read them next to quality scores — one experiment, one verdict, in the same place.

LLM-as-judge grading with SRM-gated, FDR-corrected statistics for defensible LLM evaluation.

Works with your stack

Assignment is a local hash and the prompt comes out of client memory, so there is no client for us to support — LLMJury works with every provider, including ones we have never heard of. For OpenAI-shaped and Anthropic-shaped clients, one wrap() call also measures latency, tokens, and errors for you.

See how each one integrates →

Start free — no credit card required

Free gets you real experiments and full prompt versioning on 50k events a month. Upgrade for automatic quality grading and team seats; see full pricing.

Free

$0/mo

Run your first real experiment and see the difference proof makes.

  • 50k events/mo
  • 5 seats
  • Latency, cost & business metrics
  • 7-day raw-event retention
  • All 3 SDKs (Python, TypeScript, Java)
  • Prompt versioning, history & rollback
  • Traffic-split safety check
  • Unlimited experiments

Pro

Most popular

$149/mo

+$49 per extra 500k events

For teams shipping LLM features who need automatic quality grading.

  • 1M events/mo
  • 100 seats
  • LLM-as-judge · 50k evaluations/mo
  • 30-day raw-event retention
  • Everything in Free
  • Custom judge metrics
  • Email support

Business

$799/mo

+$99 per extra 2M events

For production-scale products and larger teams.

  • 10M events/mo
  • Unlimited seats
  • LLM-as-judge · 500k evaluations/mo
  • 90-day raw-event retention
  • Everything in Pro
  • Method overrides
  • Priority support

Enterprise

Coming soon

Custom

Custom limits, security review, SSO, and a dedicated contact.

  • Custom allowance
  • Custom seats
  • Custom judge budget
  • Configurable retention
  • Custom limits
  • Security review
  • Dedicated support

Built with the teams using it

LLMJury is built by PermuteLab LLC, out of years spent building observability platforms at massive scale. The statistical engine is open to inspection, the SDKs are open source on PyPI, npm, and Maven Central, and every question you send reaches a founder, not a queue — more about who is asking.

  • Open beta, in active development — shipping most weeks
  • SDKs are public: `pip install llmjury-sdk`, `npm i llmjury-sdk`, Maven Central
  • The statistical methods are documented in full — SRM checks, FDR correction, permutation tests
  • Founders answer support directly, within one business day
  • Your pricing won’t change under you mid-subscription

Don’t take the first one on trust — the changelog lists what shipped and when.

Security & your data

You’re sending us prompts and sampled model outputs, so here’s the plain version of what happens to them.

We don’t train on your data

Your prompts, traffic, and sampled outputs run your experiments and nothing else. We never train models on customer data.

Retention is tied to your plan

Raw events last 7 days on Free, 30 on Pro, 90 on Business; finalized results are kept. Email [email protected] to request deletion.

You choose whether we see your prompts

The wrap() path sends us your prompt and response text and we store it raw for your retention window. The key-only path sends none of it. Both are supported; pick the one your data allows.

Encrypted in transit

Everything the SDK sends travels to our API over TLS.

The full picture — what the SDK sends and what it doesn’t, key scoping, sub-processors, and where we stand on certification — is on the security page.

We’re a young beta and haven’t been through formal certification (SOC 2, ISO) yet — ask us anything about our setup at [email protected] and we’ll answer straight.

Straight answers to the usual objections

Can I trust an LLM to grade my LLM?
Three things keep it honest: it grades against your rubric, not a vibe; it scores a sample under a hard budget, so it never runs away with your bill; and a verdict is only reported once the numbers clear an SRM check and FDR correction. You can always read the graded outputs yourself.
How much latency does the SDK add?
None on the request path. Assignment is local computation with the same MurmurHash3 bucketing in every SDK — no network call. Judge grading runs after the fact on sampled outputs, off your users’ path.
What happens when I hit the 50k free-tier limit?
The SDK falls back to the in-code default prompt you passed, so your app keeps serving. Nothing is deleted, finalized results persist, and it resets at the start of the next month.
What about my data and privacy?
We never train on customer data, retention follows your plan, and you can request deletion any time. See “Security & your data” above.
How is this different from Langfuse, LangSmith, Braintrust, or Statsig?
Those are strong at tracing, offline evals, or general feature flags. LLMJury is the narrow thing they each leave a gap in: online A/B tests on live traffic with a statistically defensible verdict, plus prompt versioning wired into that same loop. Langfuse and LangSmith excel at tracing and offline/dataset evals; LLMJury runs the live experiment on real users and returns SRM-gated, FDR-corrected significance. Braintrust is eval-and-dataset focused; LLMJury’s unit is the online experiment with automatic stopping when the split breaks. Statsig is a general experimentation and feature-flag platform; LLMJury is purpose-built for LLM apps — an LLM-as-judge, prompt variants and versioning as first-class objects, and stats tuned for heavy-tailed latency and cost.

See all FAQs →

Still deciding? The design-partner slots are the best deal we offer.

Six months of Business free, founder access, and real influence on the roadmap. 5 slots left.

Apply now →

Your next prompt change, versioned and proven

, wrap your model call, and your first experiment is live — free, no credit card.

Free plan · no credit card required

Questions first? Email [email protected] or book a live demo— we answer everything ourselves, within one business day.