Why the strongest coding agents live in the terminal

"CLI" sounds like a punishment. No mouse, no buttons, just a blinking cursor. Yet that is where the strongest coding agents of the last few years live — Claude Code, Codex, all of them. Not because the people who build them are purists. Because the terminal hands them something no other interface can: full filesystem access and permission to execute.

What a terminal actually is

Strip it down and a terminal does two things. It takes the text you type, and it prints text back. No layers, no buttons. Characters in, characters out.

That is why an agent can drive one end to end. Every command it types is the same as one you would type. Every error it reads is the error you would have seen, word for word.

A capability boundary, not a question of looks

A browser agent cannot see a single file on your computer. It lives in a tab. An IDE plugin sees the files you have open, but it is usually confined to suggesting — no touching git, no running the tests, and certainly no installing packages.

A CLI agent holds the permissions you hold. It reads the whole repo, runs git commit, runs the test suite, installs dependencies. Claude Code, Codex, Gemini CLI, OpenCode: same category. Agents that can command the machine, not spectators in a sandbox who can see but not act.

No vendor designed this gap to please anyone. It is the permission set that comes with choosing the terminal as your interface.

What that looks like in practice

You say "fix this bug." The agent reads the relevant files, edits the code, runs npm test, sees one test still red, edits again, runs again. Until everything is green. You never clicked a button.

The loop finishes on its own because the agent has the terminal's execution rights. Put it in a browser tab or an IDE plugin and it stalls at step two, waiting for you to come back and press the next thing.

These agents can run on a different machine. First you have to be able to reach it.