Skip to main content
You revised a prompt, switched models, wrote a new Skill for Claude Code, or tuned an NPC’s prompt in a game. Did it get better? A few manual trials cannot reliably answer that. An Agent’s responses vary, and one lucky answer proves little. Fixing one case can quietly break another. NiceEval helps answer that question. It focuses on Agents and also evaluates any LLM-powered application. You define success in TypeScript, and NiceEval handles the rest:
  • Connect to the subject under test and send it tasks.
  • Repeat runs as needed and score each one.
  • Save conversations, tool calls, file changes, duration, and cost for every run.
  • Compare configurations in the terminal or browser, then inspect a specific failure to see what happened.
Everything runs on your own machine and in your CI. No account required.

What an eval looks like

This eval checks that a weather assistant actually calls get_weather when asked about the weather, instead of making up an answer.
Use deterministic rules for facts such as which tool was called or whether a reply contains a word. For open-ended quality, such as whether an answer is grounded, use a Judge model to score it. A score below 0.7 fails this check. The Agent and model to run belong in an Experiment, separate from the eval. You can therefore use the same evals to compare two models or two prompt versions.

What evals are for

Evals look like unit tests when you write them and work like experiments when you run them. The same set of evals can serve several purposes:
  • Prevent regressions: rerun after changing prompts, models, or dependencies and check whether the pass rate drops. See Rerun affected evals after changes.
  • Compare alternatives: run the same evals against two models, two prompts, or with and without a Skill, then compare each case. See Write an experiment and Compare runs.
  • Gate CI: make a PR fail when its evals fail. See CI integration.
  • Build coverage over time: turn failures from real use into new evals so every future change checks them.

What you can evaluate

Your own AI Agent

Use AI SDK, LangGraph, Pi, or your own Agent loop, in any language. If it exposes a callable API, you can connect it with an Adapter.

Coding Agents and their extensions

Run Claude Code or Codex in a Sandbox with a real repository and task, then score it with the project’s own tests. Measure the effect of Skills, Plugins, or memory.

Any AI application, including LLM games

If your application exposes operations such as posting, replying, or NPC actions, call them directly from evals and check structured results and world state.
For applications that are not conversational Agents, evals call the application’s own methods. This eval comes from the AI social application in examples/zh/llm-x:
There are two ways to connect the subject under test:
NiceEval calls your Agent or application API through an Adapter. Docker is not required. Use this for conversational Agents and applications that expose business operations.

How NiceEval differs from DeepEval, LangFuse, and Braintrust

DeepEval is a mature Python evaluation framework with a broad library of metrics. NiceEval makes different choices:
  • Native TypeScript: evals, Adapters, and Experiments are typed TypeScript code.
  • Assert what happens along the way: an Agent may need several conversation turns, tool calls, file reads, and code changes to complete a task. The final answer is only part of it. NiceEval asserts these facts directly, without requiring a golden dataset first.
  • Score in a real environment: coding Agents run in a Sandbox and are scored using the project’s own tests and file changes, beyond the reply alone.
  • Built for controlled experiments: separate evals from Experiments to compare models, prompts, and extensions with the same cases.
Observability platforms such as LangFuse and Braintrust answer “What happened in production?” Evals answer “Is this behavior good enough?” NiceEval focuses on the latter and the local cycle of writing evals, running them, reviewing results, and improving the Agent. They can coexist: keep using those platforms for production traces and send NiceEval results to Braintrust.

Terms you will see often

Other terms are explained where they first appear.

Next

The Quickstart walks you through running your first eval and seeing results in the terminal and browser in about ten minutes.