STREAMING TOOL LOOP
ProtoAgent streams model output, executes tools, appends results, retries transient failures, and keeps going until the model can answer directly.
█▀█ █▀█ █▀█ ▀█▀ █▀█ ▄▀█ █▀▀ █▀▀ █▄ █ ▀█▀ █▀▀ █▀▄ █▄█ █ █▄█ █▀█ █▄█ ██▄ █ ▀█ █
You've probably used coding agents that feel a bit magical. They read files, run commands, edit code, and somehow hold the whole loop together. ProtoAgent is a small TypeScript CLI built so you can actually see how that works.
It is small enough to understand in an afternoon, but real enough to use on an actual project.
ProtoAgent streams model output, executes tools, appends results, retries transient failures, and keeps going until the model can answer directly.
It can read, write, and edit files, search a repo, run shell commands with approvals, fetch docs from the web, and keep a TODO list while it works.
Writes, edits, and non-safe shell commands go through inline approvals, while a small set of dangerous shell patterns stays blocked outright.
Sessions are saved to disk with message history and TODOs, so you can quit, come back later, and keep working without starting from scratch.
Skills let you package project-specific instructions, and MCP lets you connect external tools without hardcoding them into the app.
Focused research can be pushed into child runs so the parent conversation stays lighter and easier to follow.