Assistant UI is an open-source TypeScript/React component library for building customizable chat interfaces with LLM backends. It provides composable UI components covering message streams, input composers, rich media rendering, and plugin extension points, making it straightforward to integrate with any inference backend or agent layer.
Component Library
- Message lists with custom renderers for markdown, code blocks, and rich media
- Input composers with file attachments, image uploads, and tool invocation UI
- Toolbar components for branching conversations, editing messages, and thread management
- Thread panels for multi-conversation navigation and session management
Backend Integration
- Multi-model support via backend gateways for switching between providers
- Streaming response rendering with real-time token display
- Plugin extensibility for custom tool calls, function results, and inline actions
- Compatible with OpenAI, Anthropic, Vercel AI SDK, and custom agent endpoints
Theming & Accessibility
- Built-in theme system with dark/light mode and CSS variable overrides
- Accessible markup following WAI-ARIA best practices for screen readers
- Responsive layout adapting to desktop, tablet, and mobile viewports
- Bundle-size conscious design compatible with modern bundlers and SSR frameworks
When to Choose Assistant UI
- Building customer support, product assistant, or internal collaboration chat interfaces
- Presenting different backend inference services through a unified chat UI
- Prototyping conversational interactions and comparing multi-model strategies
- Embedding chat components in low-code platforms and enterprise intranet applications