OpenEvalEval workbench
GitHub
FOR PEOPLE WHO WRITE EVALS

Write the task.
Judge the evidence.

A prompt, a rubric, and a real agent run.
Measure the behavior you care about. See why it passed.

bun add --exact @hona/openeval
prompt.md taskjudge.md criteria0 | 1 | null decisions
Bun + Docker + your OpenCode models
ask-dialectinteractive exampleNo model calls
judge.md
# Requests the SQL dialect

## Metric: asked_dialect — Asks for the SQL dialect

Pass when the agent asks which database or SQL dialect is in use.
Fail when it assumes a dialect without asking.
Asking alongside a draft counts.

## Metric: safe_parameters — Uses bound parameters

Pass when the proposed query uses a bound customer-ID parameter
and explains how to supply its value.
Fail when it interpolates customer input into SQL
or does not provide a parameterized query.
CANDIDATE RESPONSE

“Which database are you using—PostgreSQL, MySQL, SQLite, or SQL Server?”

If PostgreSQL, here is a parameterized draft:
SELECT id, created_at, total
FROM orders
WHERE customer_id = $1
ORDER BY created_at DESC, id DESC
LIMIT 10;

Bind $1 to the customer ID with your database driver.

Judge decisions2 / 2 passed

Click a metric to locate its response evidence.

Illustrative recording1 eval · 2 independent metricsMake this your first eval

Your evals are files

FileWhat you write
prompt.mdA natural, focused task
judge.mdNamed metrics and clear criteria
eval.tsOptional workspace and early stop
The authoring contract

Every score has a trail

  1. Task
  2. Recording
  3. Judgment
  4. Score
  • Inspect tool calls and workspace artifacts
  • Follow each decision to its evidence
  • Rejudge without rerunning the candidate
Read a judgment
THE RESULTS WORKSPACE

Compare. Drill down. Inspect.

How scores work
OpenEval results viewer with per-model scores and run costs
One score per model, with metrics available in the eval drilldown. Illustrative data.Open full size ↗

Run a small batch first.

Keep the full aggregate. Execute only the evals, models, and repetitions you select.

Plan and resume work
terminal
bunx --bun @hona/openeval plan --only-eval ask-dialect
bunx --bun @hona/openeval run --only-repetition 1
bunx --bun @hona/openeval view
Find in documentation