HuggingFace released Tau, a coding agent

nmiquan1 pts0 comments

Tau×

013-layers<br>A coding agent as a curriculum

tau_aiModels become streams<br>Provider adapters turn model responses into provider-neutral events the rest of the agent consumes.

tau_agentThe agent loop<br>The reusable harness: messages, tools, transcript state, cancellation, queued prompts, sessions.

tau_codingIt becomes useful<br>The coding environment: files, shell, durable sessions, skills, slash commands, and a Textual TUI.

no black boxes<br>Every moving part is visible.<br>Tau answers the questions tutorials skip: What is an agent loop? Where do tool calls come from? How does the transcript grow? How do sessions survive the process exiting?

model streamtokens, tool requests, thinking deltas<br>&darr;<br>event streamthe contract between layers<br>&darr;<br>agent loopdecide, call tools, update transcript<br>&darr;<br>sessioninspectable JSONL history<br>frontendprint, Rich, or TUI

the boundary<br>Separate the brain, the environment, and the face.<br>The whole lesson is the boundary. A reusable harness must not depend on the terminal, file paths, or Rich rendering. Those wrap the harness — they never live inside it.

tau — design split<br>AgentHarness = reusable agent brain<br>AgentSession = coding-agent environment<br>TUI = one possible frontend

dependency direction<br>tau_coding &rarr; tau_agent &rarr; tau_ai

02the skills<br>What you can learn from Tau

Provider-neutral streaming interfaces<br>Agent loops that request and execute tools<br>Typed local tools for read, write, edit, and bash<br>Durable sessions under ~/.tau/sessions<br>Session resume, branching, JSONL export, and HTML export<br>Project instructions, skills, and prompt templates<br>Slash commands and model/provider selection<br>Context accounting, compaction, and thinking controls<br>How to keep Textual behind a UI adapter boundary

03how we think<br>Educational principles

Small layers beat magic<br>One job per package. Study the provider layer, harness, and coding app on their own.

Events make agents teachable<br>The agent emits a stream you can render, test, and export — not control flow buried in callbacks.

Real enough to matter<br>Educational, not a toy. Run it as a real terminal agent while reading the code behind it.

Docs follow implementation<br>Built phase by phase, each with notes on what was added, why, and how it fits.

the origin<br>Inspired by Pi, written as a Python learning path.<br>Pi is the minimalist coding-agent harness this project borrows its architectural lesson from — keep the harness, the environment, and the UI apart. Tau isn't a line-by-line port; it's an educational Python take on the same core ideas.<br>Visit pi.dev &rarr;

tau — session<br>τ &rsaquo; explain the agent loop

stream model events<br>request tool call<br>execute read / edit / bash<br>append transcript entries<br>render print mode or TUI

τA map for building your own agent: start with events, add a loop, wrap it in a harness, then give it tools and a UI.<br>$ uv tool install tau-ai<br>copy<br>Get started &rarr;<br>Follow the roadmap &rarr;

agent harness coding provider tools sessions

Related Articles