CLI reference

August 18, 2026 · View on GitHub

Every ClawBench command. From a PyPI install run them directly (clawbench-run …); from a source checkout prefix with uv run (uv run clawbench-run …).

CommandWhat it does
clawbenchInteractive TUI — guided model and test-case selection. Needs a TTY.
clawbench-runOne task, one model (or human mode).
clawbench-batchA matrix of models × cases.
clawbench-rescoreRe-judge trajectories you already have, without re-running agents.
clawbench-reproduceDownload published traces for one leaderboard row and check you reproduce it.
clawbench-harbor-adaptConvert V2 into a Harbor dataset — see harbor.md.
clawbench-edgebench-adapt, clawbench-edgebench-judgeEdgeBench/SForge export — see edgebench.md.

./run.sh from a source checkout is a shortcut for the TUI.

Task suites

SuitePathTasksSelector
V1test-cases/v1/152(default)
V2test-cases/v2/129--cases-suite v2
Litetest-cases/v1-lite/20--cases-suite v1-lite
Claw-Evaltest-cases/claw-eval/19--cases-suite claw-eval
Your ownanywhere--cases-dir <path>

All suites validate against test-cases/task.schema.json.

clawbench-run

clawbench-run <case-dir> <model>      # agent run
clawbench-run <case-dir> --human      # human reference run
FlagDefaultWhat it does
--humanoffExpose Chrome via noVNC instead of running an agent
--harness <name>openclawAgent scaffold; see the harness table in the README
--judge <model>deepseek-v4-proModel key in models/models.yaml used as the LLM judge
--no-judgeoffSkip the judge stage — pass = intercepted (stage 1 only)
--output-dir <path><project>/test-outputWhere run directories are written
--no-buildoffSkip building the container image (assumes it exists)
--no-uploadoffSkip HuggingFace upload even if HF_TOKEN is configured
--browser-runtime <name>locallocal, kernel, browserbase, remote-cdp — see browser-runtimes.md
--browser-cdp-url <url>CDP endpoint for --browser-runtime remote-cdp
--browser-runtime-options <json>Provider-specific options, e.g. '{"region":"us-west-2"}'

Output lands in ./test-output/<model>/<harness>-<case>-<model>-<timestamp>/.

clawbench-batch

clawbench-batch --models <model> --cases-suite v2 --all-cases
clawbench-batch --all-models --case-range 1-50 --max-concurrent 3
clawbench-batch --models <model> --cases-dir ./custom-cases --all-cases

Selection:

FlagWhat it does
--models <pattern> …Model name patterns matched against keys in models/models.yaml
--all-modelsEvery model in models/models.yaml
--cases <glob> …Glob patterns for case directories
--all-casesEvery case in the selected suite or --cases-dir
--case-range 1-50Numeric task-ID range
--cases-suite <name> / --cases-dir <path>Which corpus to draw from

Execution:

FlagDefaultWhat it does
--max-concurrent <n>2 local, 1 Kernel/BrowserbaseParallel jobs
--stagger-delay <s>15Minimum seconds between consecutive container starts (rolling start)
--resume <dir>Reuse a previous batch's output directory and skip finished runs
--dry-runoffPrint the job matrix without running anything
--output-dir <path>test-outputBase output directory

--harness, --judge, --no-judge, --no-upload, and the --browser-* flags behave as in clawbench-run. A batch-summary.json is written alongside the per-run directories.

clawbench-rescore

Re-judge existing trajectories — no browser, no agent compute.

clawbench-rescore <run-or-batch-dir> --judge-model deepseek-v4-pro --rubric both
FlagDefaultWhat it does
--judge-model <model>deepseek-v4-proJudge model key in models/models.yaml
--rubric <lenient|strict|both>lenientlenient matches the public leaderboard
--workers <n>4Parallel judge calls
--forceoffRe-judge tasks that already have a verdict for this rubric
--limit <n>0 (all)Judge at most n tasks
--only-batch <name>Restrict to one batch inside a sweep
--eval-results-dir <path>./eval_resultsWhere per-task CSV + summary.json are written
--no-eval-resultsoffSkip writing the eval_results/ artifact
--models-yaml <path>, --sweep-root <path>Override config / sweep locations

clawbench-reproduce

Download the published traces for one leaderboard row, re-judge them, and compare.

clawbench-reproduce --model deepseek-v4-flash --tolerance 2.0
FlagDefaultWhat it does
--model <name>requiredPublished row to reproduce
--judge-model <model>deepseek-v4-proJudge to use
--rubric <lenient|strict|both>bothboth computes both columns for a full diff
--tolerance <pp>2.0Pass if each metric lands within ±tolerance percentage points
--work-dir <path>./reproduce-cacheLocal download directory
--keep-cacheoffKeep downloaded traces instead of deleting them

See Reproduce the leaderboard for the full workflow and pass criterion.

Environment variables

VariableUsed for
CONTAINER_ENGINEForce docker or podman
HF_TOKENOptional upload of runs to HuggingFace
BROWSERBASE_API_KEYBrowserbase runtime (from .env.local)
KERNEL_API_KEYKernel runtime (from .env.local)
KERNEL_BASE_URLOptional Kernel API base URL override
CLAWBENCH_JUDGE_*Judge credentials for Harbor's verifier — see harbor.md

PurelyMail credentials for disposable run emails come from the committed .env.