Primitives
Window
A draggable, resizable window inside a container.
Badge
A clean set of badge components with an edible look.
Button
A button component that *feels* good to use.
Code Block
A code block with syntax highlighting and quick copying.
Markdown
A markdown component with a clean look and no-frills parsing.
Select
A lightly skinned select component.
Input
A simple input component with a tactile feel.
Command Prompt
A keyboard-first command prompt with history and autocomplete.
Invisible Input
An unstyled input that looks like text; fully styleable.
Textarea
An input that can increase in height to accommodate more text.
Card
A variety of clean cards, from minimal to flashy.
Description List
Quickly display a json object in an aesthetically pleasing way.
Page Header
A clean page header so your pages look consistent.
AI
Chat
A full chat component with tool calling, reasoning, etc. using the AI SDK. Just add an OpenAI key.
Chat Input
A chat input component with status indicators, model selection, and more. Ready for useChat().
Chat Message
A configurable chat message including markdown support, tool calls, etc.
Reasoning
A chat reasoning component that automatically collapses, contains tool calls, and more.
Tool Call
A component that displays tool calls as they stream in in a nice collapsible display.
JSX Preview
A preview of a JSX component rendered from a string. Useful for LLM-generated UIs.
Pointer
A controllable on-screen pointer that moves to coordinates and shows thoughts.