npx niceeval init to scaffold your eval directory and config file. This page walks through each step in detail and covers every configuration option you’re likely to need before your first run.
Prerequisites
Before installing niceeval, make sure your environment meets the following requirements. Node.js — niceeval requires a modern version of Node.js with ESM support. Use the version specified in your project’s.nvmrc or package.json engines field, or install the current LTS release from nodejs.org.
Docker — required only for sandbox evals (coding agents like Claude Code, Codex, and bub that need an isolated filesystem). Install Docker Desktop or Docker Engine and confirm it’s running before you attempt a sandbox eval. In-process and HTTP agent evals work without Docker.
If Docker is unavailable when you run a sandbox eval, niceeval stops immediately with a clear error message. It will not silently fall back to a different backend.
Install niceeval
Add niceeval as a dev dependency using your preferred package manager:Scaffold your project
Run the init command to generate your eval directory and config file:init inspects your project layout and creates a minimal but functional starting point. After it completes, your project contains:
hello.eval.ts and fixtures/button/ are illustrative examples — read through them to understand the eval shape, then replace or delete them when you’re ready to write your own.
Configure niceeval
Open the generatedniceeval.config.ts and review the available options:
| Option | Type | Description |
|---|---|---|
judge | { model: string } | The LLM model used for t.judge.* assertions |
reporters | Reporter[] | Reporters that emit results after every run |
maxConcurrency | number | Maximum number of evals running at the same time |
timeoutMs | number | Per-eval timeout in milliseconds |
sandbox | "auto" | "docker" | Sandbox backend for coding-agent evals |
Set environment variables
niceeval does not manage secrets — it reads them from environment variables that your agent adapters reference at runtime. For Claude Code (Anthropic coding agent):env block:
Verify the installation
Confirm that the CLI is reachable and can discover your evals:npx niceeval list reads niceeval.config.ts and scans your evals/ directory. A successful run prints each eval’s ID, description, and registered agent. If it exits with an error, check that niceeval.config.ts exists at the repository root and that your evals/ directory contains at least one *.eval.ts file.
You can also do a dry run — this resolves every eval and prints what would execute, without calling any agent or sandbox:
list and --dry both succeed, you’re ready to run your first eval. Head to the Quickstart for a step-by-step walkthrough of all three eval types.