Terminal-Bench 2.1
A command-line agent benchmark for completing terminal tasks in reproducible task environments.
Terminal-Bench evaluates AI agents on real terminal/command-line tasks inside sandboxed Docker containers. Terminal-Bench 2.0 is run with the official Harbor harness (`harbor` CLI), which launches tasks locally via Docker or in the cloud via Daytona/Modal; the original Terminal-Bench-Core v0.1.1 is still runnable with the legacy `tb` CLI from the `terminal-bench` package. Both harnesses are public, locally runnable, and reproducible against your own model. When reporting a score, keep attached: harness (harbor vs tb), exact dataset+version (terminal-bench@2.0 / terminal-bench-core 0.1.1), agent scaffold, model id, number of trials, and execution env (local Docker vs daytona).
1Install
# Requires Docker installed and running (and uv).
uv tool install harbor# or: pip install harbor
# Legacy Terminal-Bench-Core v0.1.1 harness (separate package/CLI):
# uv tool install terminal-bench (or: pip install terminal-bench)2Run evaluation
# Sanity-check the install with the oracle (reference solver) agent:
harbor run -d terminal-bench/terminal-bench-2 -a oracle# Run YOUR model/agent against Terminal-Bench 2.0 locally (Docker):
export ANTHROPIC_API_KEY=<YOUR-KEY>harbor run --dataset terminal-bench@2.0 --agent claude-code --model anthropic/claude-opus-4-1 --n-concurrent 4# Scale out on a cloud provider (Daytona) for high concurrency:
export DAYTONA_API_KEY=<YOUR-KEY>harbor run --dataset terminal-bench@2.0 --agent claude-code --model anthropic/claude-opus-4-1 --n-concurrent 100 --env daytona# Discover supported agents/options and available datasets:
harbor run --helpharbor datasets list# LEGACY Terminal-Bench-Core v0.1.1 (different task set, `tb` CLI):
tb run --agent terminus --model anthropic/claude-3-7-latest --dataset-name terminal-bench-core --dataset-version 0.1.1 --n-concurrent 83Expected output
Each task runs in a sandboxed container; the per-task test script determines pass/fail and a per-trial result.json is written (trial directories live under the submission/job folder). The aggregate metric is task success rate (fraction of tasks resolved). For a valid leaderboard run, evaluate each task with a minimum of five trials (the `-k 5` flag is recommended) and keep timeout_multiplier=1.0 (no resource/timeout overrides). Do not mix Terminal-Bench 2.0 (harbor, terminal-bench@2.0) scores with Terminal-Bench-Core v0.1.1 (tb, terminal-bench-core 0.1.1) scores — they are different task sets.
4Submit results
View the public leaderboard at tbench.ai/leaderboard. To submit Terminal-Bench 2.0 results, fork the HuggingFace dataset (harborframework/terminal-bench-2-leaderboard), create a branch, add run artifacts under submissions/terminal-bench/2.0/<agent>__<model(s)>/ including metadata.yaml (agent+model info), config.json per job, and per-trial result.json files (min 5 trials via -k 5, timeout_multiplier=1.0, agents must NOT access the Terminal-Bench website or GitHub repo), then open a PR — a bot validates and a maintainer merges. NOTE: at audit time the dataset card said 'SUBMISSIONS CLOSED' pending a new submission process/integrity policy (check back per the dataset card for current status). Always report harness version, dataset+version, agent scaffold, model id, trial count, and execution env alongside any number. Legacy Terminal-Bench-Core v0.1.1 is submitted separately via the tbench.ai leaderboard guide using the `tb` CLI.