Same model, two housings, an order of magnitude apart in what it can do. The gap is not intelligence. It is that one of them can read, edit, and run — and the third is where the change actually happens.
In this pagethe three capabilities, the price of the third, when a chat box still wins. Not in this pagewhat I run, or where. Every example is a generic placeholder.
| Capability | What it does | Without it |
|---|---|---|
| Read | Opens your files, directories and logs on its own | You paste. It knows what you pasted, nothing more |
| Edit | Writes straight back to disk | It hands you code; you are the courier |
| Run | Executes commands and sees the output | It never finds out whether it was right |
The first two save your hands. The third changes who verifies. In a chat box every correction routes through you: it writes, you run, it breaks, you paste the error back. Once it can run things, that loop moves to the machine's side. You stop being the courier and become the reviewer.
A mid-tier model that can run its own code and read its own errors regularly beats a stronger model reasoning in the dark. Most of the difficulty in programming is not producing the right answer — it is noticing you were wrong. Noticing needs feedback; feedback needs execution.
So when choosing tools, "can it run things and see the result" carries more weight than the model tier.
You cannot take the first two without the third. Whatever shell you hand it, it has.
A command with a wrong path and a command that reads .env into context look identical
at the tool layer — both are just "ran a command".
Serious CLI agents ship three gates: allow (run it), ask (check with me), deny (never). Configure them the day you install, not the day after something goes wrong. Details differ per tool — see the next page and the one after.
| Situation | Why |
|---|---|
| You are still thinking, not building | No files to read, no commands to run. All three capabilities idle |
| The code cannot leave your machine and you have not mapped the data flow | Settle the boundary first. That order does not reverse |
| A one-off question | Setup and authorisation cost more than the problem |
The test is one question: does this need "let me try it and see"? Yes, CLI. No, chat box.
| Stage | Problem it solves |
|---|---|
| A · Local | Get it changing your code (1–5) |
| B · Access | Accounts, quota, relays — so one dead account does not end the whole thing (6–9) |
| C · Always-on | From "I type a line" to "it runs itself" (10–16) |
| D · Cloud | Onto a machine that does not sleep (17–22) |
One idea runs through all four: a knob called base_url.
Page 7 covers it once; after that every new tool is the same knob in a different file.
openai/codex: Rust, 110,216 stars, latest release rust-v0.149.0 (2026-08-20).
Figures from the GitHub API, checked 2026-08-21.