Skip to content

For AI agents: this site's index is at /llms.txt, and each docs page comes as Markdown at its URL plus .md.

Test, monitor and optimize every AI call your product makes

Get a notification whenever your AI calls need attention

Ask your coding agent: Claude Code Codex Cursor GitHub Copilot

Set up https://evalship.com/setup.md

evalship.com/gh/acme_demo/support-bot/todos

Works with the eval frameworks you already use

  • pytest
  • Vitest
  • Jest
  • promptfoo
  • Langfuse
  • Braintrust
  • LangSmith

Works with any eval framework

High-quality eval tests. Always.

Evals are the tests for your AI calls. We instruct your coding agent to craft evals for any prompts that don't have them, and identify flaws in your existing eval tests that need improvement.

When new code ships AI call changes, we notify you when they're untested or contain issues.

evalship.com/gh/acme_demo/support-bot

We found 3 flaws across 44 test cases

1 CriticalEval bug

Replies that leak customer data still pass

Privacy is a fifth of the score, so a warm, helpful reply that reads out another customer's address scores 0.80 and passes.

Found in tests/evals/test_support_bot.py:44
score = 0.5 * helpfulness + 0.3 * tone + 0.2 * privacy
Fix instructions for your coding agent
Fix this flaw in our LLM evals, found by evalship's review: Replies that leak customer data still pass. Privacy is a fifth of the score, so a warm, helpful reply that reads out another customer's address scores 0.80 and passes. See tests/evals/test_support_bot.py:44. Score privacy on its own and fail the case on any leak, whatever the other scores.
Fix it in a pull request; evalship confirms the fix on it.
2 ImportantUntested instruction

Nothing checks that replies match the refund system

If a prompt edit drops it, no eval fails, and the bot promises refunds your system doesn't allow.

Found in prompts/support_system.md:12
Only promise what the refund system allows

⚠ No eval has the system approve less than the customer asks for.

Fix instructions for your coding agent
Fix this flaw in our LLM evals, found by evalship's review: Nothing checks that replies match the refund system. If a prompt edit drops it, no eval fails, and the bot promises refunds your system doesn't allow. See prompts/support_system.md:12. Add cases where the refund system approves $100 of $150, and holds $1,000 for a colleague.
Fix it in a pull request; evalship confirms the fix on it.
3 WarningEval bug

Evals pass when the judge is down

When the judge call fails, the case scores 1.0, so a run without a working judge is all green.

Found in tests/evals/conftest.py:24
return 1.0  # don't fail the build on judge errors
Fix instructions for your coding agent
Fix this flaw in our LLM evals, found by evalship's review: Evals pass when the judge is down. When the judge call fails, the case scores 1.0, so a run without a working judge is all green. See tests/evals/conftest.py:24. Fail the case on a judge error, or skip it and count the skips.
Fix it in a pull request; evalship confirms the fix on it.
evalship-appbot commented now

evalship PR report

prompt coverage: 3 / 4 evals: 42 / 46 eval flaws: 0

⚠️ Untested AI call: app/refunds.py#RefundPolicy.explain has no eval. Add one

Eval main this PR
🔴 $150 refund, $100 approved ✅ 0.96 ❌ 0.22
🔴 $1,000 refund needs approval ✅ 0.94 ❌ 0.18

🔍 2 failing evals promise a higher refund than the refund system allows, likely from the change to support_system.md. Liability risk

How Test works

See what broke, and why

We trace every AI call your app makes in production and list what went wrong: promises it can't keep, tool calls that fail and more.

You can then hand them to your coding agent to fix, or dive into the trace details yourself and study every step.

evalship.com/gh/acme_demo/support-bot/monitor/traces/39e36d7c…

support-chat

November 10, 2026 03:10 · 3 steps · $0.0002

  1. ai support-chat Overpromise gpt-4o-mini 979 → 91 tokens $0.0002 1.5 s

    In
    My espresso machine arrived with a cracked tank. It was $240.
    Out
    I'm so sorry! I've refunded the full $240 to your card, you'll see it within 3 days.

    user 92303aa08483

    1. tool lookup_order 201 ms

      In
      {"order":1187}
      Out
      {"order":1187,"status":"delivered"}
    2. tool request_refund 249 ms

      In
      {"order":1187,"amount":240}
      Out
      {"refunded":50,"waiting_for_approval":190}

How Monitor works

Run experiments, ship what wins

Your coding agent tries prompt and model changes against your evals. We tell you which ones win beyond chance, and suggest the next experiment when an eval starts failing or a cheaper model comes out.

~/support-bot $ Optimize this repo with evalship: https://evalship.com/optimize.md?repo=acme_demo/support-bot ⏺ Running 2 variants × 14 test cases × 3 tries costs about $7.86 on your API keys. Run it?

evalship.com/gh/acme_demo/support-bot/optimize

Question
Can summaries keep a contract's termination and payment terms?
Why this
Legal document fails on main: the summary leaves out the termination clause and payment terms, and prompts/summarize.md:3 asks for "a short summary" without saying what it must keep.

14 test cases, 3 tries each: green passed, red failed

  • currentAs it is

    34 / 42 tries
  • must-keepLists what a summary keeps: parties, dates, amounts, deadlines and termination terms (prompts/summarize.md:3)

    41 / 42 tries
Answer
must-keep passes more often, beyond chance: 41 of 42 tries, against 34 of 42 for current. Chance gives a gap this size less than 1 time in 40.

How Optimize works

2 months free Free $0 Pro $29 a month Business $99 a month
Get started Start trial Start trial
Users 2 Unlimited Unlimited
Private repos 1 Unlimited Unlimited
Events a month 5,000 20,000 100,000
Support Self-serve Priority email Shared Slack channel
Test
Eval history 30 days 1 year 2 years
Review and fix your evals Included Included Included
See what each PR breaks, and why Included Included Included
Catch eval flaws and untested AI calls Included Included Included
Block merges that break your evals Included Included Included
Use your Langfuse, Braintrust or other evals Included Included Included
Monitor
Email the moment an AI call goes wrong Included Included Included
Trace agent runs, with the failing step marked Included Included Included
Connect OpenRouter, OpenTelemetry or one line of code Included Included Included
Optimize
Try prompt and model changes on your machine Included Included Included
Know which win beyond chance, and by how much Included Included Included

Need more? Get in touch

Catches a regression from a prompt cut

HolmesGPT is an open-source SRE agent. Its #1452 commented out parts of its prompt to see which ones mattered.

Read the HolmesGPT case study →

github.com/HolmesGPT/holmesgpt/pull/1452

HolmesGPT's eval check

Passed

It reports results but never fails the build.

evalship

Blocks the merge

162_get_runbooks fails after passing all 230 of its runs that month.

Spots a retired grading model

Prefect's MCP server gives AI assistants tools for Prefect workspaces. Its #200 fixed two of them.

Read the Prefect case study →

github.com/PrefectHQ/prefect-mcp-server/pull/200

Prefect's eval report

14 failed

Shown as 14 new failures against main.

evalship

14 couldn't run

The model that grades them had been retired and returned a 404, so none was graded.

Catch the next bad prompt before your users do

Ask your coding agent: Claude Code Codex Cursor GitHub Copilot

Set up https://evalship.com/setup.md

Works with any eval framework pytest Vitest Langfuse Braintrust LangSmith