Close-up assistant moments: thinking, calling a tool and streaming a reply, each on a calm loop.
illustrationsvgaichatassistantllmstreamingloop
Thinking
thinking.tsxA shimmering status pill and reasoning lines fold away into the final reply.
$npx shadcn@latest add @geturui-pro/assistant-loops-thinking
| Prop | Type | Default | Description |
|---|---|---|---|
speed | number | 1 | Speed multiplier for the loop (eight seconds at 1). |
title | string | — | Accessible description of the scene, used as the aria-label. |
className | string | — | Classes for the SVG; it fills its container width and keeps its ratio. |
Tool call
tool-call.tsxA tool call card spins, resolves with ranked results and the reply cites them.
$npx shadcn@latest add @geturui-pro/assistant-loops-tool-call
| Prop | Type | Default | Description |
|---|---|---|---|
tool | string | "search_docs" | Name shown on the tool call card; keep it short. |
speed | number | 1 | Speed multiplier for the loop (eight seconds at 1). |
title | string | — | Accessible description of the scene, used as the aria-label. |
className | string | — | Classes for the SVG; it fills its container width and keeps its ratio. |
Streaming
streaming.tsxA reply streams in word by word behind a moving cursor, then actions and sources settle in.
$npx shadcn@latest add @geturui-pro/assistant-loops-streaming
| Prop | Type | Default | Description |
|---|---|---|---|
speed | number | 1 | Speed multiplier for the loop (seven seconds at 1). |
title | string | — | Accessible description of the scene, used as the aria-label. |
className | string | — | Classes for the SVG; it fills its container width and keeps its ratio. |
Install the whole set
Installs every assistant loops variant at once. Each section above has its own command for a single variant.
Pro installs use your private registry token. Add the @geturui-pro registry once — setup guide. The command works after you get Pro.
$npx shadcn@latest add @geturui-pro/assistant-loops
Accessibility
- Rendered as a single SVG with role="img" and an aria-label you can override with `title`; nothing inside is focusable.
- Under prefers-reduced-motion the scene renders one meaningful still frame: no loops, no timers.
- Colours come from the GetUrUI tokens only, so the scene follows light and dark themes automatically.