# Changelog

Released features, improvements, and fixes.

## EvalRouter v2 clients: several models in one run

2026-10-11 · Python and npm 0.5.0 · stable

`evalrouter` and `evalrouter-sdk` on PyPI · `@kimpton-ai/evalrouter` on npm

### Changed

- The CLI, Python SDK and npm package 0.4.x no longer work with the API. Every request from them is refused with HTTP 426 `client_upgrade_required` and the upgrade command, and is never charged. Upgrade to 0.5.0 or later: `uv tool upgrade evalrouter` (or `pipx upgrade evalrouter`) for the CLI, `pip install --upgrade evalrouter` in your project's environment for the Python SDK, `npm install @kimpton-ai/evalrouter@latest` for npm.
- From 0.5.0 on, the CLI prints the exact upgrade command for your installation, and the SDKs raise `ClientUpgradeRequired` with that command.

### Added

- Run two to eight models on the same tasks in one run under one spending cap: `evalrouter run gsm8k --model A --model B`, or `client.runs.create(benchmark=..., subjects=[...])`.
- `evalrouter runs compare RUN` (`run.compare()`) shows each model's rank, score and 95% range on the tasks every model finished (`1=` for a tie), and the difference when there are two models.
- A run stopped by its spending cap, your credit or a cancellation shows as interrupted. `evalrouter runs continue RUN` (`run.continue_()`, npm `run.continue()`) prices only its unfinished tasks and finishes it without charging the finished ones again.
- `client.wallet.get()` reads your credit balance and `client.agents.list()` lists the ACP Registry agents you can run, as `evalrouter credits` and `evalrouter agents list` do.

### Removed

- Preview SDK groups for development-only features: `campaign_templates`, `environment_drafts`, `protocols`, and the agent attempt protocol `client_runs` (agents on your machine run through `runs.create(agent=...)` and `evalrouter.agents`).

## One TypeScript SDK for evaluations and tracing

2026-10-06 · npm 0.4.1 · stable

`@kimpton-ai/evalrouter` · npm latest

### Added

- `TraceCapture` is included in `@kimpton-ai/evalrouter` and imported from `@kimpton-ai/evalrouter/tracing`. Install one npm package for the evaluation client and trace capture.
- The tracing entry point includes TypeScript declarations and its OpenTelemetry dependencies for server-side capture on Node.js 22 or later.

## Python SDK and CLI 0.4.0

2026-10-06 · Python 0.4.0 · stable

`evalrouter` · PyPI stable release · includes the CLI

### Added

- Use `evalrouter` imports for the Python client. Install `evalrouter[tracing]` to capture agent, model and tool spans with `TraceCapture` from `evalrouter.tracing`.
- Supported native single- and multi-model benchmarks start without a required quote or spending cap. You can still set an optional cap.

### Improved

- Update the SDK and its included CLI with `evalrouter upgrade` or `evalrouter --upgrade`.

## Retained content in benchmark traces

2026-10-06 · October 6 update · production

Workspaces with Traces enabled

### Fixed

- Selecting a model span now loads its available input and output content. Access and retention rules continue to apply.

### Improved

- New native benchmark model requests preserve available prompt inputs even when chat formatting is disabled. Content that was never recorded in older runs remains unavailable.

## More room in comparison reports

2026-10-02 · Python 0.3.23 · stable

Python CLI · stable release

### Improved

- Exported comparison reports have additional space above their charts. Generate a new report to use the updated layout; previously saved exports retain their original layout.

A selection of verified releases. New updates will appear here as they ship.
