# Overview URL: /docs/primitives Unstyled, accessible building blocks for AI chat interfaces. Primitives are the foundation of assistant-ui. They are unstyled, accessible React components that handle all the wiring for AI chat, including state management, keyboard shortcuts, auto-scrolling, streaming, and tool calls, so you can focus entirely on your UI. Why Primitives? \[#why-primitives] Every assistant-ui [Component](/docs/ui/thread) is built from primitives. When you install a component like `Thread`, you get a pre-styled composition of primitives with default styling and behavior included. But when you need a UI that doesn't fit the defaults, such as a floating composer, a custom message layout, or an inline editing experience, you reach for the primitives directly. ```tsx import { ComposerPrimitive } from "@assistant-ui/react"; Send ``` This renders an unstyled `
` with a `