Skip to main content
defineConfig is the default export from niceeval.config.ts. Keep it for project-wide defaults. Agent, model, flags, runs, and per-experiment budget live in experiments/ files via defineExperiment.
import { defineConfig } from "niceeval";
import { JUnit } from "niceeval/reporters";

export default defineConfig({
  judge: { model: "gpt-5.4-mini" },
  reporters: [JUnit(".niceeval/junit.xml")],
  maxConcurrency: 4,
  timeoutMs: 300_000,
  sandbox: "auto",
});
judge
{ model: string; baseUrl?: string; apiKeyEnv?: string }
Default judge configuration for t.judge.autoevals.*. Individual evals can override this with defineEval({ judge }).
reporters
Reporter[]
Additional reporters. Built-ins include JUnit(path). The CLI always writes structured .niceeval/ artifacts.
maxConcurrency
number
Maximum concurrent attempts. Sandbox backends may choose a lower default when this is omitted.
timeoutMs
number
Per-attempt timeout in milliseconds.
sandbox
"auto" | "docker" | "vercel" | "e2b" | SandboxSpec
Default sandbox backend for sandbox agents. Override per experiment or with --sandbox.
niceeval keeps environment preparation in ordinary code. Prepare files inside test(t) with t.sandbox.writeFiles, uploadFiles, or uploadDirectory; put adapter setup in the agent adapter.