What it actually is
A model that can only write text cannot read your files. Claude Code is the part around the model that can, and the loop between them is the whole product.
The documentation describes a turn as three phases that blend into each other: gather context, take action, verify results. The model decides what each step needs from what the last step returned, and it repeats until the work is done or you stop it.
The same turn, captured
The --output-format stream-json flag prints every step of a run instead of only the answer. This is that run, with the tool calls left in and the long results cut short so it fits.
claude -p "Which function decides the short code? Name the file and function only." \
--output-format stream-json --verboseTOOL Bash grep -r "short" /tmp/linkshort --include="*.py" | head -20 RESULT /tmp/linkshort/shorten.py:"""Turn a long URL into a short code, and back again.""" TOOL Read /tmp/linkshort/shorten.py RESULT 1 """Turn a long URL into a short code, and back again.""" TEXT **shorten.py** - next_code() RESULT turns: 3 duration: 7.6s cost: $0.017
Two tools and one sentence. It searched, read the file the search pointed at, and answered. Three turns means three trips to the model, because every tool result goes back to the model before it decides what to do next.
That is the loop. Everything else in this course is a way of changing what happens inside it: which tools are allowed, what the model already knows when it starts, and who does the work.
What it can reach for
The tools fall into a few groups, and the group matters more than the individual names.
| Kind | What it means |
|---|---|
| File operations | Read, edit, create, move |
| Search | Find files by name, search contents |
| Execution | Run any shell command: tests, builds, git |
| Web | Search the web, fetch a page |
| Orchestration | Start subagents, ask you a question |
Execution is the one to notice. Anything you can type in that terminal, it can run, which is where the usefulness comes from and why the permission system in lesson 4 exists at all.
- Run any prompt with
--output-format stream-json --verboseand read the tool calls. - Ask something that needs no tools, like a definition, and watch it answer in one turn.
You understood something today that you didn't yesterday.