harness-evaluator

Compare agentic coding harnesses on token efficiency, task effectiveness, and time efficiency.

CI statusDocker build statusMIT License
5
Harnesses
2
Providers
20
Tasks

Features

Everything you need to benchmark agentic coding harnesses.

Gateway Proxy

Custom HTTP/SSE proxy intercepts every provider call, capturing token usage, cost, and latency with full request/response logging.

Token Accounting

Input, output, cache-read, cache-write, and reasoning tokens tracked per call. Cost calculated from a per-model pricing table.

Docker Isolation

Each harness runs in its own container with --cap-drop=ALL, non-root user, and network policy enforcement.

Resumability & Budgets

Cell-level resumability skips completed cells on re-run. Budget caps stop the run when spend exceeds the configured limit.

Frozen LLM Judge

Open-ended tasks evaluated by a versioned, immutable-prompt judge with structured rubric and anchor-set calibration for drift detection.

Statistics & Reporting

Mixed-effects modeling, variance decomposition, bootstrap CIs, HTML/JSON/CSV reports, and an interactive FastAPI dashboard.

Supported Harnesses

Eleven adapters across three observability tiers. Five are preinstalled in the default Docker image; the rest require a custom image.

HarnessAdapterObservabilityNotes
OpenCodeopencodefullOpen-source, system prompt visible
AideraiderfullOpen-source, multi-provider
Claude Codeclaude-codepartialClosed, proxy captures traffic
CodexcodexpartialClosed, proxy captures traffic
Gemini CLIgeminipartialGoogle, proxy captures traffic
AntigravityantigravitypartialGoogle, proxy captures traffic
PipiminimalMay bypass proxy
OMPompminimalMay bypass proxy
GitHub CopilotcopilotminimalGitHub, may bypass proxy
CursorcursorminimalMulti-provider, may bypass proxy
KirokirominimalAWS, may bypass proxy

Quick Start

Up and running in five commands.

# 1. Scaffold a starter config (no clone needed)uvx harness-evaluator init # 2. Pull the pre-built Docker imagedocker pull ghcr.io/yorch/harness-evaluator-runner:latest # 3. Set API keysexport ANTHROPIC_API_KEY=sk-ant-… # 4. Start the gateway proxy (separate terminal)uvx harness-evaluator gateway --port 8877 # 5. Run a minimal evaluationuvx harness-evaluator run harness-evaluator.yaml # Or dry-run to see the matrix without executinguvx harness-evaluator run harness-evaluator.yaml --dry-run

Architecture

How the pieces fit together.

  • GatewayCustom HTTP/SSE proxy (aiohttp) that intercepts provider calls and captures token usage, cost, and latency.
  • OrchestratorBuilds the eval matrix (harness × model × task × repeats), manages budget caps, and handles cell-level resumability.
  • RunnerDocker-based isolation, one container per run with capability dropping and non-root execution.
  • AdaptersPer-harness integration (Python core + TS shims where needed) with a uniform prepare/run/cleanup interface.
  • EvaluatorSWE-bench-style (hidden tests) and open-ended (LLM judge) tracks with partial credit and error classification.
  • ReportingCLI reports, static HTML/JSON/CSV, and an interactive web dashboard.
  • StatisticsMixed-effects models, variance decomposition, and bootstrap confidence intervals.

Start Evaluating

Install from PyPI, pull the Docker image, and run your first evaluation in minutes — no clone required.