Training-data overlap
Public benchmark tasks can appear in training data. A higher score may reflect a better model, familiarity with the test, or both.
Open source template
10x-bench-kit creates a private, reproducible benchmark for your repositories, tasks and rubrics. Run the same work across models and compare quality, cost and runtime.
$ 10x bench-kit init acme-bench
✓ benchmark instance created
✓ base repository registered
✓ agent skills installed
✓ runner dependencies installed
Next: open acme-bench in your coding agent
Ask it to use bench-wiring
Why test locally
A public leaderboard ranks models on its own tasks and environment. Your decision depends on how those models perform in your repositories, under your constraints.
Public benchmark tasks can appear in training data. A higher score may reflect a better model, familiarity with the test, or both.
Leaderboards use their own tasks and environments. Your team works in an existing product repo with internal conventions, dependencies and CI checks.
Published scores do not always include the prompts, environment, rubric and model settings required to reproduce the evaluation.
Shortlist models with public benchmarks, then test the finalists on your own tasks.
What's included
We built 10x-bench-kit from the infrastructure behind 10xBench. The template includes the runner, evaluation flow, versioning and CI setup. Add tasks and criteria from your own work.
Run 10x bench-kit init to create a repository with tasks, an evaluation pool, configuration and CI workflows. The generated manifest records the template version.
Each trial runs in a disposable container with a fresh copy of your base repo at a pinned commit. Evaluation assets are mounted only after the agent finishes.
Score quality with static checks, hidden tests, e2e tests and an LLM judge, weighted per task. Each trial records its score, cost and wall-clock time in result.json.
Each result records the template version, task hash, judge model and rubric version. Results are compared only within the same evaluation era.
Included skills guide setup and task authoring: bench-wiring, bench-new-task, bench-build and bench-rubric.
The runtime updates atomically, changes to shared skills arrive as a diff for review, and updates do not modify your tasks or evaluation pool.
How it works
Each model × task × trial combination runs as a separate matrix job. Evaluation assets are added only after the agent has finished its work.
The runner creates a fresh copy of your base repo at a pinned commit, applies the task overlay and starts with empty agent state.
The agent runs prompt.md non-interactively under a fixed timeout.
An adapter writes OpenCode data to metrics.json, while the workspace changes are saved as patch.diff.
The runner mounts the evaluation pool and runs static checks, tests, e2e checks and the LLM judge. Weights come from task.yaml.
result.json records the score, metrics and evaluation versions used for the trial.
Quickstart
Run the installer inside your product repository so it can register that repository as the first benchmark target.
10x bench-kit init my-benchmark The installer places the benchmark skills where your selected agent can use them.
Ask the agent to configure model keys, the judge, repository access and the container image. The skill runs the validation checks.
Use bench-new-task and bench-build to turn representative work into tasks with hidden evaluation assets.
Start the bench-run workflow in GitHub Actions and select the models, tasks and number of trials.
Updates
The instance separates kit-owned files, shared skills and company-owned evaluation assets.
bench-kit update handles each group differently:
| Zone | Owner | On update |
|---|---|---|
| .bench-kit/ | the kit | replaced atomically with the updated runner, container and workflows |
| .agents/skills/ | shared | proposed as a diff for your team to review |
| tasks/ · evaluation-pool/ · bench.config.yaml | your company | left unchanged by the updater |
What you need
Prepare the repository, credentials and evaluation inputs once. The validation command checks them before the first run.
Trials run as a model × task × trial matrix through workflow_dispatch. You select the models, tasks and number of trials for each run.
The 10x CLI creates and updates the kit instance with bench-kit init and bench-kit update.
Keys for the models under evaluation, plus one for the judge model that scores rubric-based criteria.
The product repository your tasks run against, pinned at a commit. Private repositories require a fine-grained token with read-only access to contents.
The kit currently runs agents through OpenCode. The template pins the OpenCode version used by each evaluation era.
Before the first run, add secrets, prepare evaluation assets and calibrate the rubrics. The bench-wiring skill runs the validation checks.
Create an instance, add one representative task and compare the models your team is considering.