# Assistant Workspace

> Complete chat block — conversation sidebar, grouped messages, streaming markdown replies and a composer — driven by a local mock assistant.

- Collection: AI Agents
- Tier: pro
- Docs: https://geturui.com/docs/chat-app
- Install: `npx shadcn@latest add @geturui-pro/chat-app`
- Dependencies: motion, lucide-react

## Usage

```tsx
import { ChatApp } from "@/components/ai/chat-app";

export default function Page() {
  return (
    <ChatApp
      assistantName="Acme Assistant"
      getReply={(prompt) => `You asked: **${prompt}**`}
    />
  );
}
```

## Props

| Prop | Type | Default | Description |
|---|---|---|---|
| conversations | `ChatConversation[]` | — | Initial sidebar conversations; the first one opens. |
| getReply | `(prompt: string, attachments: PromptAttachment[]) => string` | — | Markdown reply for the mock assistant. Replace with your model call. |
| models | `PromptModel[]` | — | Options for the composer's model pill. |
| suggestions | `string[]` | — | Starter prompts on an empty conversation. |
| assistantName | `string` | "GetUrUI Assistant" | Shown in the sidebar and to screen readers. |

## Accessibility

- Messages are a polite live log; the stop button cancels a reply mid-stream.
- The sidebar is a nav with aria-current on the open conversation; on narrow containers it becomes a drawer that closes on Escape.
- Composer submits on Enter, Shift+Enter adds a line.

## Source

Pro item — send `Authorization: Bearer <registry token>` to include the source.
