Data, not markup
The agent writes a few YAML lines per block. The package owns the layout, the styles, the controls, and the code that sends answers back.

An agent that has a decision to put to you usually writes a long reply and waits for you to type one back. pi-better-show gives it a vocabulary of blocks instead: options, forms, tables, diagrams, diffs, and more, written as a few lines of YAML. The host draws them as controls, and what you do with them reaches the agent as a message.
Data, not markup
The agent writes a few YAML lines per block. The package owns the layout, the styles, the controls, and the code that sends answers back.
Answer by clicking
Pick an option, tick a checklist, fill a form, or press a quick-reply chip. The answer reaches the agent as one message.
Comment on anything
Select a passage, or click a node or an edge of a diagram, and comment on it. One Send carries all of it.
Edit in your own editor
view: "edit" opens a file in your editor. The agent gets the net diff of your saves, not every keystroke.
One vocabulary, every host
Core, custom elements, and React wrappers share one parser, one text fallback, and one answer encoding, so a GUI or a chat bridge draws the same blocks.
About 10 times fewer tokens
Writing the blocks of four example pages took 1,253 output tokens; the same pages as self-contained HTML took 12,364.