Example first
A local CLI agent is not one layer. That is the point.
A terminal agent feels like one product because that is how you meet it. Under the hood, it is a stack of decisions: which model path it uses, which tools it can reach, how it handles context, what approvals it asks for, and whether it speaks a protocol like MCP. Goose, an open-source AI CLI, is one example of that shape.
So the stack is less like a neat pile of boxes and more like a cutaway drawing. You are seeing what the product is made of.
How it got this shape
Why people keep reaching for layered diagrams
Layered diagrams are an old engineering habit for a reason. Networking had OSI. Software teams talk about application, data, and infrastructure layers. Cloud systems added gateways, queues, runtimes, and control planes.
AI tooling grew into the same shape. First you mostly had model access and chat. Then tools let models reach outward into files, APIs, shells, and browsers, which meant the interesting boundary was no longer just the model. After that, agent loops and protocols made the middle of the system much more visible.
So yes, this page borrows old architecture instincts on purpose. A coding assistant is not just a model call. It is also tools, hosts, permissions, packaging, orchestration, and observability. The layered view is still the cleanest way I know to say where each part lives.
Ready to build
The stack makes more sense once you've touched each layer.
Reading the stack helps. Building through it helps more. The labs take you from model access up through tools, protocols, skills, hooks, the agent loop, memory, coordination, and governance one layer at a time.
Start at the bootstrap step, then move through the main arc.
Come back here whenever something in the labs needs a name.