Skip to content
EnvLoop Labs
All research

EnvLoop Labs / Research

cu-bench: Professional Desktop Work from Screenshots, Mouse and Keyboard

Computer useBenchmarkVerifiers

Abstract

Can an agent do real professional work in Linux desktop applications from screenshots and mouse and keyboard alone? cu-bench asks agents to route circuit boards in KiCad, model parts in FreeCAD, edit scenes in Godot, slice prints in PrusaSlicer and work in 16 more applications, with real data and specs delivered as documents. File-state verifiers grade every deliverable, and each task has a pure-GUI track and a track that allows the application's own scripting. On the frozen release of 2026-10-16, Claude Opus 5.5 reaches 83.5% strict success on 158 paired task × track runs and gpt-6-astra 22.2%.

KiCad PCB editor showing a two-layer board routed by the agent from an empty layout.
Final frame of a passing gui-track run: Claude Opus 5.5 routes a two-layer board in KiCad from an empty layout in 307 of 690 steps.

What the study covers

  • The test split holds 290 variants of 165 tasks across 20 applications in three difficulty tiers (19 T3, 86 T4 and 60 T5 tasks); each task is tagged with its primary difficulty source, from perception and precision to long-horizon work and diagnosis.
  • A run passes only when the verifier passes every required check, the transcript audit finds no rule violation and the agent stays within the task's step budget; an auxiliary composite and blind model judge never change a strict result.
  • Curated replays below show what the agents actually did, frame by frame, alongside the full per-task matrix for both models and tracks.

The benchmark

Paired runs
158 task × track pairs with 72 gui and 86 code runs
Test split
290 variants of 165 tasks across 20 apps
Tiers
The split contains 19 T3 tasks alongside 86 T4 and 60 T5 tasks.
Budget
max_steps = ceil10(3 × est. GUI actions)

See the ranking on the leaderboard

Strict success by difficulty dimension

Paired runs grouped by each task's primary difficulty source; n per dimension: algorithm 9, collateral care 6, diagnosis 17, domain knowledge 14, long horizon 28, optimization 7, perception 30, precision 35, robustness 7, UI navigation 5.
ModelAlgorithm ↑Collateral care ↑Diagnosis ↑Domain knowledge ↑Long horizon ↑Optimization ↑Perception ↑Precision ↑Robustness ↑UI navigation ↑
Claude Opus 5.5API model evaluated with a Claude Code subagent harness66.7%66.7%88.2%85.7%85.7%85.7%83.3%85.7%85.7%80.0%
gpt-6-astraOpenAI-compatible API model using one cu tool44.4%33.3%23.5%28.6%10.7%0.0%16.7%20.0%71.4%20.0%

Per-task results and replays

Every test task by model and track, grouped by application, from the same frozen release; cells marked as paired make up the leaderboard ranking. Hover a cell for its composite, steps against the budget and the failure cause, or open one of the curated replays to watch what the agents actually did.

Loading the matrix…

How it is scored

  • Strict success is the headline: a run passes only when the rule verifier passes every required rubric check, the transcript audit finds no rule violation (gui track: no code typed into the application) and the agent stays within the task's step budget. Otherwise the reward is 0.
  • Both models ran the same 158 task × track pairs from fresh desktops, one attempt each (pass@1), from the frozen release of 2026-10-16. gpt-6-astra results are the raw protocol, without the one-time "keep going" nudge (it converted 0 of 14 runs).
  • The composite (0–100) is an auxiliary training signal weighted over correctness, robustness, collateral damage, efficiency and process (plus code quality on the code track); it never changes the strict reward.
  • Judge scores come from an auxiliary blind model judge (gpt-6-sol, prompt v2) over all valid test runs that were judged: visual quality of exported deliverables on 71 Claude and 45 gpt-6-astra runs, reasoning on 50 and 23. A two-judge, both-agree audit of passing runs found 0 justified extra failures, so the judge never changes a strict result.

Environment

Each run gets a fresh Fly.io machine (Ubuntu 24.04, Xvfb, openbox, Mesa llvmpipe, no GPU) with the application already open; the agent acts only through the cu screenshot, click, drag, type, key, scroll and zoom commands. Hidden tests are uploaded only for verification. On EnvPlatform the benchmark runs as the official envloop/cu-bench Runner over private datasets (envloop/cu-desktop-apps-tracks-test, 288 members in 0.2.0).

Scope & evidence

What remains open

Two models, one attempt each, on one frozen release. Claude Opus 5.5 ran through a Claude Code subagent harness and gpt-6-astra through a single cu tool, so harness differences are part of the comparison. Desktops run without a GPU, and the datasets stay private because they contain answers.

Cite this work

@misc{envloop_cu_bench,
  title  = {cu-bench: Professional Desktop Work from Screenshots, Mouse and Keyboard},
  author = {{EnvLoop}},
  year   = {2026},
  url    = {https://envloop.ai/research/cu-bench}
}