---
name: "@turn"
slug: "turn"
description: "Minimal, accessible components for AI apps: chat, agents and tool use. Streaming-first, built on Base UI and Tailwind."
category: "AI/chat UI"
tags: ["accessibility", "ai", "blocks", "buttons", "cards", "design-system", "hooks", "navigation", "theming"]
framework: "react"
license: "MIT"
author: "mtauhidul"
website: "https://turnui.xyz"
github: "https://github.com/mtauhidul/turnui"
registry: "https://turnui.xyz/r/registry.json"
pro: false
pro_url: null
github_stars: 1
component_count: 25
generated_at: "2026-10-13T06:38:00.276Z"
---

# @turn

Minimal, accessible components for AI apps: chat, agents and tool use. Streaming-first, built on Base UI and Tailwind.

## Links

- Website: https://turnui.xyz
- GitHub: https://github.com/mtauhidul/turnui
- Registry JSON: https://turnui.xyz/r/registry.json
- Directory page: https://sh4dcn.vercel.app/registry/turn
- This file: https://sh4dcn.vercel.app/md/turn.md

## Install

```sh
# add the whole registry (shadcn CLI)
npx shadcn@latest add https://turnui.xyz/r/registry.json
pnpm dlx shadcn@latest add https://turnui.xyz/r/registry.json
bunx shadcn@latest add https://turnui.xyz/r/registry.json
# clone the source repo
git clone https://github.com/mtauhidul/turnui.git
# fetch the raw registry index
curl -s https://turnui.xyz/r/registry.json
```

## Components (25)

| name | type | description | install |
| --- | --- | --- | --- |
| theme | registry:theme | Color tokens the turn components read. Optional: skip it if your own theme already defines them. | `npx shadcn@latest add https://turnui.xyz/r/theme.json` |
| turn-button | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/turn-button.json` |
| message | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/message.json` |
| code-block | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/code-block.json` |
| streaming-markdown | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/streaming-markdown.json` |
| prompt-composer | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/prompt-composer.json` |
| use-auto-scroll | registry:hook | — | `npx shadcn@latest add https://turnui.xyz/r/use-auto-scroll.json` |
| reasoning | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/reasoning.json` |
| tool-call | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/tool-call.json` |
| citations | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/citations.json` |
| use-fake-stream | registry:hook | — | `npx shadcn@latest add https://turnui.xyz/r/use-fake-stream.json` |
| plan | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/plan.json` |
| trace | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/trace.json` |
| approval-prompt | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/approval-prompt.json` |
| artifact | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/artifact.json` |
| use-attachments | registry:hook | — | `npx shadcn@latest add https://turnui.xyz/r/use-attachments.json` |
| attachment | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/attachment.json` |
| model-picker | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/model-picker.json` |
| command-menu | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/command-menu.json` |
| feedback | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/feedback.json` |
| scroll-to-bottom | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/scroll-to-bottom.json` |
| suggestions | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/suggestions.json` |
| thinking | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/thinking.json` |
| error-notice | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/error-notice.json` |
| copy-button | registry:ui | — | `npx shadcn@latest add https://turnui.xyz/r/copy-button.json` |

## For AI agents

```text
You are adding components from @turn to a shadcn-compatible project.
1. Read this file (https://sh4dcn.vercel.app/md/turn.md) for the component list.
2. Fetch the machine-readable index: https://turnui.xyz/r/registry.json
3. Install a single component with its install command from the table above.
4. Full structured record: https://sh4dcn.vercel.app/json (library slug: turn).
```
