A terminal agent lives in the shell. You brief it in plain language from inside the repository, and it works the way a developer at the same prompt would: it reads the project, makes changes, runs the tests, reads the failures and tries again. It feels less like autocomplete and more like handing a task to someone competent who does not ask enough questions.
It sits on this rung, beside the editor, because you are usually still there while it works: reading what it proposes, approving the commands it wants to run, stopping it when it heads the wrong way. Start it and walk away, and the same tool is doing delegated execution, with the costs of that rung.
What it is for
- Work that needs things run, not only written: tests, builds, scripts, a local database, a migration against a scratch copy.
- Investigating. Why a test fails on a clean checkout is a question a terminal agent can answer by trying things.
- Mechanical changes across many files that the test suite can confirm.
- Working without an editor, on a remote machine or a server, over a plain connection.
Who it suits
Developers comfortable in a shell, on codebases whose checks run from the command line and give a clear pass or fail. It rewards a project where the build, the tests and the linters are one command each, because those commands are how the agent finds out whether it is right.
How to tell this is your category
- You start the agent from a shell prompt inside the repository.
- It proposes commands and runs them, and you approve each one or have told it which it may run unasked.
- It reads its own test output and iterates before handing back.
- You are watching. If you have several sessions running and are losing track of them, Running many AI coding agents in parallel is the next thing to read, and Orchestration is the rung that work sits on.
What it costs you later
The layer page covers what the whole rung shares. These costs come from giving an agent a shell.
- Every command runs as you. The agent's shell has your files, your credentials, your network and whatever secrets sit in your environment. It can delete a directory, push a branch, call a live API or print a key into a log, for reasons that seemed sensible to it at the time. Approval prompts help until they become something you click through. Decide which commands it may run without asking, keep destructive and outbound ones behind a confirmation, and keep production credentials out of the environment it runs in.
- Dependencies it adds to get unstuck. When a problem would be easier with a package, an agent will install one. Each is a dependency you now maintain and a supply chain you now trust. Read the name of anything it installs, and ask whether the problem needed it.
- A green suite is not a fixed bug. An agent told to make the tests pass has two ways to do it, and only one of them changes the code under test. Watch for edits to tests and assertions in a change that was meant to fix behaviour, and treat any loosened check as a question to answer before merging.
- A long session forgets its brief. The further into a session the agent gets, the more it holds at once, and the instructions from the start are the first to slip. The convention you stated at the top quietly stops being applied. Keep a session to one task, start fresh for the next, and put conventions in a file the agent reads every time rather than in the first message. Sizing tasks an AI coding agent can finish covers how big one task should be.
A setup that keeps it honest
- One command each for build, test and lint, written down where the agent reads it.
- A rules file in the repository with the conventions to follow and the directories to leave alone. Context engineering for AI coding agents covers what belongs in it, and Writing and scoping a rules file how to split it and check what loaded.
- An explicit list of commands it may run unasked. Everything else asks.
- A branch per task, so its work is one diff you can review, and throw away if you need to.
- The tests a change must pass, written before the change, so green means what you meant.