Roo-Code/packages/evals
2025-06-05 22:00:15 -07:00
..
.docker Improve Docker setup for evals (#4327) 2025-06-05 12:16:36 -07:00
scripts Improve Docker setup for evals (#4327) 2025-06-05 12:16:36 -07:00
src Improve the evals "run status" section (#4400) 2025-06-05 22:00:15 -07:00
.env.development Move evals into pnpm workspace, switch from SQLite to Postgres (#4278) 2025-06-03 01:38:08 -07:00
.env.test Move evals into pnpm workspace, switch from SQLite to Postgres (#4278) 2025-06-03 01:38:08 -07:00
.gitignore Improve Docker setup for evals (#4327) 2025-06-05 12:16:36 -07:00
ARCHITECTURE.md Improve Docker setup for evals (#4327) 2025-06-05 12:16:36 -07:00
docker-compose.yml Improve Docker setup for evals (#4327) 2025-06-05 12:16:36 -07:00
Dockerfile.runner Improve Docker setup for evals (#4327) 2025-06-05 12:16:36 -07:00
Dockerfile.web Improve Docker setup for evals (#4327) 2025-06-05 12:16:36 -07:00
drizzle.config.ts Move evals into pnpm workspace, switch from SQLite to Postgres (#4278) 2025-06-03 01:38:08 -07:00
eslint.config.mjs Move evals into pnpm workspace, switch from SQLite to Postgres (#4278) 2025-06-03 01:38:08 -07:00
package.json Improve Docker setup for evals (#4327) 2025-06-05 12:16:36 -07:00
README.md Improve Docker setup for evals (#4327) 2025-06-05 12:16:36 -07:00
tsconfig.json Move evals into pnpm workspace, switch from SQLite to Postgres (#4278) 2025-06-03 01:38:08 -07:00
vitest-global-setup.ts Move evals into pnpm workspace, switch from SQLite to Postgres (#4278) 2025-06-03 01:38:08 -07:00
vitest.config.ts Move evals into pnpm workspace, switch from SQLite to Postgres (#4278) 2025-06-03 01:38:08 -07:00

Run Roo Code Evals

Prerequisites

Setup

Clone the Roo Code repo:

git clone https://github.com/RooCodeInc/Roo-Code.git
cd Roo-Code

Add your OpenRouter API key:

echo "OPENROUTER_API_KEY=sk-or-v1-[...]" > packages/evals/.env.local

Run

Start the evals service:

docker compose -f packages/evals/docker-compose.yml --profile server --profile runner up --build --scale runner=0

The initial build process can take a minute or two. Upon success you should see ouput indicating that a web service is running on localhost:3000: Screenshot 2025-06-05 at 12 05 38 PM

Additionally, you'll find in Docker Desktop that database and redis services are running: Screenshot 2025-06-05 at 12 07 09 PM

Navigate to localhost:3000 in your browser and click the 🚀 button.

By default a evals run will run all programming exercises in Roo Code Evals repository with the Claude Sonnet 4 model and default settings. For basic configuration you can specify the LLM to use and any subset of the exercises you'd like. For advanced configuration you can import a Roo Code settings file which will allow you to run the evals with Roo Code configured any way you'd like (this includes custom modes, a footgun prompt, etc).

Screenshot 2025-06-05 at 12 08 06 PM

After clicking "Launch" you should find that a "controller" container has spawned as well as N "task" containers where N is the value you chose for concurrency: Screenshot 2025-06-05 at 12 13 29 PM

The web app's UI should update in realtime with the results of the eval run: Screenshot 2025-06-05 at 12 14 52 PM

Advanced Usage / Debugging

The evals system runs VS Code headlessly in Docker containers for consistent, reproducible environments. While this design ensures reliability, it can make debugging more challenging. For debugging purposes, you can run the system locally on macOS, though this approach is less reliable due to hardware and environment variability.

To configure your MacOS system to run evals locally, execute the setup script:

cd packages/evals && ./scripts/setup.sh

The setup script does the following:

  • Installs development tools: Homebrew, asdf, GitHub CLI, pnpm
  • Installs programming languages: Node.js 20.19.2, Python 3.13.2, Go 1.24.2, Rust 1.85.1, Java 17
  • Sets up VS Code with required extensions
  • Configures Docker services (PostgreSQL, Redis)
  • Clones/updates the evals repository
  • Creates and migrates a Postgres database
  • Prompts for an OpenRouter API key to add to .env.local
  • Optionally builds and installs the Roo Code extension from source