# show
A live stream of SVG artifacts rendered as real pixels in a terminal pane — a [herdr](https://herdr.dev) plugin plus an agent skill.
Agents (or you) drop SVG files anywhere on disk, append the path to `~/.show/queue`, and the viewer pane renders the newest one via the kitty graphics protocol. `n`/`p` walk the history, `o` opens the raw file, `q` quits.
## Install
Install the agent skill (teaches your coding agent to answer "show me X" with a rendered diagram):
```bash
npx skills add plannotator/show
```
Install the herdr plugin (the viewer pane and `show.show` action):
```bash
herdr plugin install plannotator/show
```
For local development, link instead:
```bash
cd show && bun install
herdr plugin link /path/to/show
```
## How it works
- `~/.show/queue` — one absolute SVG path per line. That's the whole protocol.
- `~/.show/viewport` — the viewer publishes its canvas geometry here (cols, rows, pixel budget) so agents design to the real pane size and aspect.
- `viewer.ts` — the pane: watches the queue, rasterizes SVG with resvg, emits kitty graphics escapes placed in exact cell units. herdr passes the pixels through to your real terminal.
- `show.ts` — the `show.show` action: focuses the viewer pane if it's open, opens it otherwise.
- `skills/show/SKILL.md` — the agent skill: viewport-aware SVG design rules (transparent background, coordinate arithmetic, full-canvas sizing) and the publish flow.
## Requirements
- [bun](https://bun.sh)
- [herdr](https://herdr.dev) ≥ 0.7.0 with `experimental.kitty_graphics = true` in `~/.config/herdr/config.toml`
- A host terminal with kitty graphics support (ghostty, kitty, wezterm)
## Try it
```bash
herdr plugin action invoke show.show
echo "$(pwd)/example.svg" >> ~/.show/queue
```
Then in any agent pane inside herdr: *"show me the auth flow of this repo"*.