By the end you'll have installed coder-eval, pointed it at an API key, run a
built-in task, and read the result. ~5 minutes.
- Python 3.13+
- uv —
brew install uv(macOS) orpip install uv - Claude CLI —
brew install claude(install guide) - An Anthropic API key
git clone https://github.com/UiPath/coder_eval.git
cd coder_eval
uv sync --extra devuv sync creates a .venv/. Activate it to run coder-eval directly and
drop the uv run prefix used throughout this tutorial:
source .venv/bin/activate
# now `coder-eval ...` works on its own; e.g. `coder-eval run tasks/hello_date.yaml`The uv run coder-eval ... form below works with or without activating — uv run
resolves the same .venv — so use whichever you prefer.
cp .env.example .env
# Edit .env and set ANTHROPIC_API_KEY=sk-ant-...Heads up: usage telemetry is on by default. To turn it off, add
TELEMETRY_ENABLED=falseto your.env. See the User Guide.
uv run coder-eval plan tasks/hello_date.yamlplan checks the task's syntax, required tools, and API keys without spending any
tokens — a good habit before every run.
uv run coder-eval run tasks/hello_date.yamlThis spins up an isolated sandbox, sends the task prompt to the agent, records every tool call, and scores the result against the task's success criteria.
Add --stream full to watch the agent work in real time:
uv run coder-eval run tasks/hello_date.yaml --stream fulluv run coder-eval report runs/latestruns/latest is a symlink to the newest runs/<ts>/. The per-task result lives at
runs/latest/<variant>/<task>/<NN>/task.json (with task.log and artifacts/ beside
it); the run-level run.json/run.md sit at the run root. See the
Output Structure reference for the full layout.
- Write your own task → Task Definition Guide
- Compare configurations → A/B Experiments
- Full CLI & config reference → User Guide