Skip to content

Terminal-Bench, Explained: Can Your Model Actually Use a Shell?

Agentic coding lives in the terminal — installing, debugging, running builds. Terminal-Bench measures exactly that, and its rankings surprise people.

The Vibe Father 6 min read

Explainer

There is a specific kind of disappointment every agent operator knows: the model that writes beautiful code and then face-plants trying to install its own dependencies. Coding benchmarks never predicted it, because coding benchmarks never asked the question. Terminal-Bench does. It measures whether a model can actually drive a shell — and it produces some of the most surprising rankings on our entire board, which is why we weight it at 30% of the Vibe Coding Index.

What it measures

Terminal-Bench, maintained at tbench.ai, drops a model into a real terminal environment and hands it tasks that live there: multi-step operations, installing and configuring software, debugging why a build fails, compiling projects, wrangling files and processes — the unglamorous substrate of all real development. The model does not describe what it would do; it issues actual commands, reads actual output, and either accomplishes the goal or does not.

That last part is what makes it hard. A shell task is a long chain of dependent steps in a stateful world. Run the wrong command and the environment changes; misread an error message and every subsequent step compounds the mistake. There is no partial credit for a plausible-looking transcript. The benchmark is effectively asking: can this model operate, not just generate?

Why it diverges from coding scores

Here is the interesting empirical fact: Terminal-Bench rankings do not simply mirror SWE-bench or LiveCodeBench rankings, and the divergence is the whole value of the benchmark. Writing code is a generation skill. Driving a terminal is an agentic skill — planning under uncertainty, reading noisy feedback, recovering from your own errors, knowing when to check your assumptions instead of plowing ahead. Models can be strong at one and mediocre at the other, and the scoreboard proves it.

Exhibit A: GPT-5.5 posts 83.4 on Terminal-Bench — the top score on our entire board, edging out even Claude Fable 5's 83.1. Fable beats GPT-5.5 by more than fourteen points on SWE-bench Verified (95.0 vs 80.6), yet in a live shell the OpenAI model is the one we would bet on. If your agents spend their lives running builds and chasing down environment issues, that single number reorders your shopping list; we dig into it in our GPT-5.5 review.

Exhibit B is the cautionary one: Claude Haiku 4.5 scores 35.5. This from a model that posts a perfectly usable 66.6 on SWE-bench — evidence that small models fall off an agentic cliff long before they fall off a coding cliff. Haiku can write you a decent function; ask it to autonomously drive a ten-step terminal task and it gets lost, loops, or confidently breaks things. This is the score that tells you Haiku is a scout, never an operator.

The current standings

On our board today: GPT-5.5 leads at 83.4, Fable 5 at 83.1, Opus 4.8 at 78.9, GPT-5.3 Codex at 78.4, Gemini 3.5 Flash at 76.2, Gemini 3.1 Pro at 70.7, Kimi K2.6 at 66.7, and Haiku 4.5 at 35.5. Several models — Sonnet 5, DeepSeek V4 Pro, Qwen3.7 Max, Grok 4.5, MiniMax M3, Kimi K2.7, GLM 5.2 — have no published Terminal-Bench score yet, and we say so on the leaderboard rather than inventing one; their index simply renormalizes around the scores that exist.

Notice how tight the top is — 83.4, 83.1, 78.9, 78.4 — and then how steep the fall. Agentic shell competence appears to be a capability that arrives late and unevenly, which is exactly why you cannot infer it from a coding score.

The caveats

Same honesty we apply to every suite. Terminal-Bench results depend on the agent scaffold wrapped around the model — the same model in a better harness posts a better number, so cross-lab comparisons carry some noise. The tasks, while realistic, are still discrete and verifiable in a way that a three-hour production incident is not. And the benchmark is younger than SWE-bench, with sparser coverage across models — visible in all those "not published" rows. We weight it at 30%, not more, partly for these reasons.

👑
Coding scores tell you what a model can write; Terminal-Bench tells you what it can do — and those are different leaderboards.

How to use the number

Read Terminal-Bench as the "can I leave it alone?" score. High (upper 70s and beyond): the model can run multi-step work unsupervised, and belongs in operator and reviewer seats. Middling: fine with a human in the loop. Low, like Haiku's 35.5: generation-only duty, no autonomy. Combined with SWE-bench Verified (real repo surgery) and LiveCodeBench (fresh algorithmic problems), it completes the picture — the full weighting rationale is in our methodology post, and the live column is always at /benchmarks.

Run every AI coding tool. Keep every conversation. Own your work.

The Vibe Father is the model-agnostic command deck we built for ourselves — 22 CLIs, multi-agent teams, your own keys.

Keep reading