---
title: Choose an agent
description: Choose the harness and model that each evaluation runs on.
---
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reeval.ai/llms.txt
> Use this file to discover all available pages before exploring further.

Set the `harness` option to a harness factory with a `model` to choose an agent. For the definition, see [Agent](/reference/glossary#agent) in the Glossary.

For more information about installing reeval, see [Quick start](/getting-started/quickstart).

## Choose an agent

In the `reeval.config.ts` file, pass one factory from the `{{ pkg }}/harness` module. With no `harness` option, the default harness is Cursor. Each harness is its own cell.

```ts title="reeval.config.ts"
import { defineConfig } from '{{ pkg }}'
import { claudeCode } from '{{ pkg }}/harness'

export default defineConfig({
  harness: claudeCode({ model: '<model>' }),
})
```

For more information about setting `model` and `effort`, see [Set the agent's model](/configuration/agents/model). For more information about running one evaluation on several harnesses, see [Compare harnesses](/evaluations/recipes/compare-harnesses).

## Set the harness options

In the factory call, set `id`, `maxConcurrent`, `startTimeout`, and `gateway` beside `model`. A pinned gateway must be in the config's `gateway` list:

```ts title="reeval.config.ts"
import { defineConfig } from '{{ pkg }}'
import { vercel } from '{{ pkg }}/gateway'
import { claudeCode } from '{{ pkg }}/harness'

export default defineConfig({
  gateway: [vercel()],
  harness: claudeCode({
    model: '<model>',
    id: 'claude-code:baseline',
    maxConcurrent: 2,
    startTimeout: '3m',
    gateway: 'vercel',
  }),
})
```

For each option's type and default, see [Common harness options](/reference/options#common-harness-options).

## Pick a harness

Each factory comes from the `{{ pkg }}/harness` module.

- [Cursor](/configuration/agents/cursor): `cursor()`
- [Claude Code](/configuration/agents/claude-code): `claudeCode()`
- [Codex](/configuration/agents/codex): `codex()`
- [Antigravity](/configuration/agents/antigravity): `antigravity()`
- [OpenCode](/configuration/agents/opencode): `opencode()`
- [Goose](/configuration/agents/goose): `goose()`
- [pi](/configuration/agents/pi): `pi()`
- [fx](/configuration/agents/fx): `fx()`
- [Grok Build](/configuration/agents/grok-build): `grokBuild()`

For more information about each harness's keys, rules and skills paths, MCP servers, token usage, served models, and web events, see [Harness behavior](/reference/options#harness-behavior).
