# Watch an agent's draft paint as it streams

> Watch a recorded agent draft stream into the Texuli player: skeletons, nodes painted as they validate, a held node and a retry. Replayed in your browser.

Language: en
Canonical: https://texuli.com/live-generation/
Markdown: https://texuli.com/live-generation.md (this page). Every texuli.com page has a Markdown twin at its URL plus `.md` (the home page is https://texuli.com/index.md), and any page URL answers `Accept: text/markdown` with its twin instead of HTML.
Last Updated: 2026-11-13

---

@texuli/player · streaming mode · in development · on npm from 0.6.0

An agent writes a blueprint token by token. In streaming mode the player paints each node as soon as it is complete and checked, instead of waiting for the whole draft, and adds speed without adding trust: the complete draft still passes the full validation before anything is armed. Streaming mode is in development and in `@texuli/player` from `0.6.0`, a pre-1.0 release.

This playground replays recorded drafts in your browser: no network request, no model and no key. The agent service that streams real drafts is in the repository and is not deployed, so texuli.com runs no model.

## Stream a recorded draft

Pick a draft and a speed, press Start, and pause or step one chunk at a time to see a node wait as a skeleton, then paint. Drop the connection to see what stays.

Recorded draft A weekly report A node outside the catalog A dropped connection

The recorded answer to “Build a weekly report for the fictional Harbor support team.” Every node passes its checks and paints as soon as its shell is complete.

 Speed Slow Normal Fast Reduced motion

 Chunks sent 0 of 268

Phase

not started

Painted

0

Held

0

Bytes read

0

Press Start to stream the recorded draft into the player.

### What happened

Nothing yet.

## How a node goes from bytes to paint

- ### Bytes arrive The agent writes the blueprint as JSON text. Chunks split anywhere, even inside a word or a number.
- ### A skeleton holds the place A node whose shell is still arriving shows a static skeleton of its catalog family: no content, no spinner, nothing to focus.
- ### The shell is checked Once a node’s members before children are final, it passes the same node-level rules as a whole draft: closed id and props, the URL policy at the untrusted tier, the sink scan.
- ### It paints, or it is held A node that passes paints at once. A node that fails is held with its subtree, as a static note; its props never reach the screen.
- ### The final verdict When the stream completes, the whole draft is validated again. Only a valid draft is armed; a refused one replaces the paint with the refusal notice.

While the stream is open the surface is busy and inert: nothing to focus, nothing to activate, and no action runs until the complete draft passes validation. The player announces progress politely, at most every few seconds, never once per node.

## What the replay is

Each draft is one blueprint envelope, written the way the agent service streams it (its header first, then the model's tree, children last) and cut into chunks of 7, 13, 4, 19, 9, 23, 5, 11, 16, 3 characters, in turn, so every replay is the same. The weekly report is the agent service's recorded answer to its first preset prompt. Reduced motion, from your system or the checkbox, is passed to the player: nodes appear in place and nothing on this page glides.

### In code

```
import { Player } from '@texuli/player';
import { createBlueprintStream } from '@texuli/spec/stream';

let stream = $state(createBlueprintStream());
agent.onDelta((text) => stream.write(text));
agent.onDone(() => stream.end());
agent.onError(() => stream.abort('The agent stopped.'));

<Player {stream} onStreamRetry={() => (stream = createBlueprintStream())} />
```

## Read more

The site does not render the package docs yet. Read them in the repository, or try a whole draft in the [playground](https://texuli.com/playground/).

- Streaming mode: `packages/player/docs/streaming.md`
- The agent service: `apps/agent/README.md`
- Streaming decision (ADR-014): `docs/DECISIONS.md`

## For agents

Blueprints are composed, validated and painted live in the browser. The same validation runs through the protocol: an agent drafts a blueprint from catalog components and checks it before anything renders. The live parts run in the browser and are not in this Markdown; the operations below do the same work through the read-only MCP server at https://texuli.com/mcp (no sign-in; see https://texuli.com/auth.md).

MCP operations ([reference](https://github.com/DailybotHQ/texuli/blob/main/packages/tools/docs/ops.md#operations)):

- `blueprint.validate`: Validate a blueprint draft.
- `catalog.search`: Search the component catalog.
- `component.get`: Read a component manifest.
- `catalog.validate`: Validate catalog manifests.

Docs:

- [Component docs for agents (llms.txt)](https://texuli.com/llms/llms.txt)
- [Catalog manifest snapshot (JSON)](https://texuli.com/catalog/catalog.json)
- [@texuli/catalog README](https://github.com/DailybotHQ/texuli/blob/main/packages/catalog/README.md)
- [@texuli/player README](https://github.com/DailybotHQ/texuli/blob/main/packages/player/README.md)
- [@texuli/spec README](https://github.com/DailybotHQ/texuli/blob/main/packages/spec/README.md)
