FindAlternative
Back to Home
EvalCore

EvalCore

Know when your AI gets worse before your users do — with offline, deterministic eval replay in CI.

softwareAI Research & AnalysisAI EvaluationLLM TestingDeveloper Tools

What is EvalCore?

EvalCore is an open-source developer tool that lets AI engineering teams know when a change to a prompt, model, or dependency makes their LLM-powered app worse. Instead of forcing you into a proprietary SDK or test harness, it wraps around anything that speaks HTTP or shell. You describe an evaluation as a YAML file plus a JSONL dataset, point it at your target, then stack scorers on top to define what "good" means. The core innovation is the cassette: on the first live run, EvalCore calls the real model and records every request and response into a local SQLite cache keyed by a hash of the canonical request. That cassette can be committed to your repository. In CI, EvalCore replays the recording entirely offline with zero network calls, zero API keys, and zero cost, producing deterministic verdicts. The `--baseline main` flag runs a comparison against main and exits nonzero only on regressions, making it a natural pre-merge gate. The tool is designed to be lightweight and language-agnostic. It ships as a single dependency-free binary available via `cargo install` or prebuilt binaries for macOS, Linux, and CI runners. It works with OpenAI-compatible APIs, vLLM, Ollama, REST endpoints, shell commands, and OTel/OpenInference traces. With Apache-2.0 licensing, no server, no signup, and no telemetry, EvalCore positions itself as a simple, auditable way to ship AI changes confidently.

SpecificationsAI-estimated

LicenseApache-2.0
CI gatingExit code plus --baseline main regression comparison
Replay modeOffline, keyless, deterministic
DistributionSingle dependency-free binary
Installationcargo install evalcore or prebuilt binaries
Scorer typescontains, judge rubric, stackable scorers
Recording keyHash of the canonical request
Eval definitionYAML file plus JSONL dataset
Recording storeLocal SQLite cassette at .evalcore/cache.db
Supported targetsOpenAI-compatible APIs, vLLM, Ollama, REST APIs, shell commands, OTel/OpenInference traces
Supported platformsmacOS, Linux, CI runners
Cost/token reportingTokens and cost shown per live run

Key Features of EvalCore

Record/replay cassettes: stores every request/response in a local SQLite database keyed by a hash of the canonical request.
Offline, deterministic CI: replays recorded behavior with no network, no API keys, and no judge variance.
Regression gating: `--baseline main` fails only on regressions and communicates results via exit code.
Language-agnostic targets: can evaluate any HTTP API or shell command, regardless of the app's language.
Broad integration support: OpenAI-compatible APIs, vLLM, Ollama, REST APIs, shell commands, and OTel/OpenInference traces.
YAML-based eval configuration with stackable scorers like `contains` and judge rubrics.
Cost and token visibility: each live run reports token usage and cost.
Single binary distribution: no dependencies, no telemetry, and prebuilt binaries for macOS, Linux, and CI runners.

Use Cases for EvalCore

1

Prompt change regression testing

Check whether a revised system prompt breaks expected outputs before merging.

2

Model swap validation

Evaluate a cheaper or newer model against previously recorded responses to confirm no degradation.

3

Dependency update checks

Replay recorded cassettes after upgrading a dependency to catch unexpected behavior changes.

4

Low-cost CI for AI features

Run model evaluations in CI at 0ms per case and $0 by replaying cassettes offline.

5

Multi-language application testing

Use HTTP or shell targets to evaluate AI behavior regardless of the application's programming language.

6

Auditable AI behavior

Commit cassettes to version control for reproducible, traceable records of model behavior.

7

RAG and groundedness checks

Use judge scorers with rubrics to verify answers are grounded in the provided context.

8

Flaky test replacement

Replace brittle LLM assertions with deterministic cassette replay and exit-code gating.

How to use EvalCore?

1

Install EvalCore

Install the EvalCore binary with `cargo install evalcore`, or download a prebuilt binary for macOS, Linux, or CI runners.

2

Define your eval configuration

Create an `evals.yaml` file that defines your target (e.g. OpenAI-compatible model), the dataset file, and the scorers that define what good output looks like.

3

Prepare your dataset

Create a JSONL dataset file containing the test cases you want to evaluate against your target.

4

Record a live cassette

Run `evalcore run evals.yaml` once against the real model to record the cassette. Tokens and cost are reported, and the cassette is saved to `.evalcore/cache.db`.

5

Replay in CI as a regression gate

In CI, run `evalcore run evals.yaml --cache replay --baseline main`. The suite replays offline, keylessly, and deterministically, failing only on regressions via the exit code.

Pros & Cons of EvalCore

Pros

  • Zero-cost, keyless CI replays after the initial live recording
  • Truly language-agnostic — anything speaking HTTP or shell can be a target
  • No SDK, test harness, server, signup, or telemetry required
  • Deterministic byte-for-byte replay eliminates flaky LLM test verdicts
  • Apache-2.0 open source with regression-focused baseline gating

Cons

  • Manual YAML/JSONL configuration only; no visual eval builder or dashboard is described.
  • Cassettes must be committed to the repository, which can increase repo size as datasets grow.
  • No Windows prebuilt binaries are mentioned; only macOS, Linux, and CI runners are covered.
  • Eval quality is fully dependent on the scorer definitions and datasets you write; EvalCore does not generate test cases for you.

Frequently Asked Questions

What is EvalCore?

EvalCore is an Apache-2.0 open-source CLI tool for recording real LLM behavior and replaying it offline in CI to detect regressions before they reach users.

How does recording and replay work?

On the first run, EvalCore calls the real model and records every request/response into a SQLite cassette keyed by a hash of the canonical request. In CI, you replay that cassette offline, so identical inputs produce identical verdicts with no network or judge variance.

Do I need API keys in CI?

No. Once the cassette is recorded and committed, CI replay mode is completely offline and keyless. API keys are only needed for the initial live recording run.

What targets can EvalCore evaluate?

Anything that speaks HTTP or shell: OpenAI-compatible APIs, vLLM, Ollama, REST APIs, shell commands, and OTel/OpenInference traces.

What languages does EvalCore support?

Any language. EvalCore does not require an SDK or test harness; its targets communicate over HTTP or shell, so your application's language never matters.

How do I prevent regressions?

Use the `--baseline main` flag. EvalCore replays the cassette and fails only when the current behavior regresses compared to the recorded main-branch baseline.

Is EvalCore free to use?

The tool is free and open source under Apache-2.0. CI replay costs $0 because it is offline and keyless. The only cost is the model API usage from the initial live recording runs.

Does EvalCore require a server or external service?

No server and no external service are required. It is a single self-contained binary with no telemetry, signup, or hosted backend.

No reviews yet. Be the first to write one!

Top Alternatives & Similar Software

View all alternatives & similar software

No alternatives available yet.

People also viewed

Related searches

About the Product

Unclaimed Listing
Target AudienceDevelopers

Is this your tool?

Claim this page to update details, reply to user reviews, and drive more traffic to your product.

Claim this Product →

Show you’re listed

EvalCore on FindAlternative

Add this badge to your website. It links back to this page.

Get your badge →

Tags

AI EvaluationLLM TestingDeveloper ToolsOpen SourceCI/CDRegression Testing

Explore Related Topics

Keep up with EvalCore alternatives

New alternatives, pricing changes and the week's biggest movers - one email every Tuesday.

Weekly, free, unsubscribe in one click.