cua-speedrun
Compare computer-use agents by performance, time, and cost on real desktop tasks.
Quickstart
Install and configure your credentials:
pip install cua-speedrun
cua-speedrun setup
cua-speedrun benchmark --dataset osworld-50 --agent qwen3vl
Models and desktop images are prepared on first use and cached. Data lives in
~/.local/share/cua-speedrun; set CUA_SPEEDRUN_HOME to use another location.
Use cua-speedrun doctor to inspect your installation.
Run an evaluation
Evaluations run on Modal by default, using credentials from setup, your
Modal CLI profile, or environment variables. For an API agent:
export ANTHROPIC_API_KEY="your-api-key"
cua-speedrun benchmark --dataset osworld-50 --agent claude
The command follows progress until the evaluation finishes. To launch and
inspect evaluations in a browser, run cua-speedrun dashboard.
- Add
--parallel-evaluations 4to run four agent replicas in parallel. - Bundled GPU agents select their GPU automatically; override it with
--gpu L40S. - Add
--no-preloadto disable environment preloading. - To use local Linux hardware, add
--compute local --environment local. Local desktops require KVM/QEMU.
Inspect results or download trajectories:
cua-speedrun evaluations
cua-speedrun status RUN_ID
cua-speedrun export RUN_ID
Use cua-speedrun catalog to list available agents and benchmarks, or
cua-speedrun help benchmark for more options.
Benchmarks
| Benchmark | Tasks |
|---|---|
cua-world-26 |
26 |
osworld-50 |
50 |
osworld2-52 |
52 |
my-pc-bench |
38 |
cua-world-offline |
143 |
osworld-offline |
295 |
osworld2-offline |
63 |
The offline variants contain the full offline task sets; the smaller variants
are representative subsets. MyPCBench also requires a
MYPCBENCH_JUDGE_API_KEY for its evaluator; see its
setup instructions.
Bring your own agent
Start from an implementation in agents/. Each agent has two files:
init.pyprepares dependencies or starts a model server before task timing begins.agent.pyreceives the environment URL and task description, then interacts throughComputer.
Submit the folder directly:
cua-speedrun validate --agent ./my-agent
cua-speedrun benchmark --dataset osworld-50 --agent ./my-agent
Additional packages can be installed by init.py; the submission uploads
init.py and agent.py. An optional agent.json declares gpu and
required_environment_variables. To contribute an agent, add its folder to
agents/; it is discovered automatically.
Bring your own benchmark
A benchmark is a folder with a manifest.yaml, task folders containing
task.yaml, and its environment setup and verifier. The manifest lists tasks:
name: my-benchmark
version: "1"
tasks: [tasks/my-task]
Each task.yaml specifies task_id, description, and an env mapping:
task_id: my-task
description: The task for the agent to complete.
env:
kind: gym-anything
env_dir: ${BENCHMARK_DIR}/environment
task_id: my-task
Keep the Gym-Anything environment and its task setup/verifier inside the benchmark folder. Then:
cua-speedrun validate --dataset ./my-benchmark
cua-speedrun benchmark --dataset ./my-benchmark --agent ./my-agent
The benchmark is copied into the installation. Increase its version when
changing a registered task set. To contribute it, add the folder under
benchmarks/ and its name to catalog/benchmarks.yaml; packaging is automatic.
Repository structure
agents/— agent implementations.benchmarks/— task sets and benchmark definitions.src/cua_speedrun/— execution, timing, scoring, and the dashboard.src/cua_speedrun/compute_runners/— local and Slurm runners.
Release files for cua-speedrun 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cua_speedrun-0.3.1.tar.gz | 1.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cua_speedrun-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.3 MB
Release files / cua_speedrun-0.3.1.tar.gz
| Download URL | cua_speedrun-0.3.1.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f390b50fa64f109f2cdcf8fd3f820259245ef97d6ac23388f029e3e69170822a
|
|
BLAKE2b-256 checksum How to use checksums |
4dd9cfb03d05023b186bbf414b184865db2c78bb84925baf9a5533f34d22bf84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.2
|
Release files / cua_speedrun-0.3.1-py3-none-any.whl
| Download URL | cua_speedrun-0.3.1-py3-none-any.whl |
|---|---|
| Size | 1.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c8506d8a2e2ad02e0b19bba68876e18dc92e787ee00c9f9ee7f92096a6dd158c
|
|
BLAKE2b-256 checksum How to use checksums |
33ca435dc29b37067c3ae41ad30ee742bbbf1f2bebc642a8158cd22ca83c53a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.2
|