image

Nexus UI

Beautiful, customizable components for modern AI experiences.

Overview

Nexus UI is an open-source component library for building AI-powered interfaces. It provides a set of composable primitives that integrate seamlessly with the , , and other AI services.

Think of it as shadcn/ui, but purpose-built for AI apps.

Instead of adapting general-purpose components for AI use cases, Nexus UI is designed from the ground up for streaming, voice, multimodal, and agentic interfaces.

Copy-paste components into your project. You own the code.

Components

ComponentDescription
PromptInputComposable chat input with auto-resizing textarea and action slots
ModelSelectorDropdown for selecting AI models with radio groups, sub-menus, and custom items
SuggestionsPrompt suggestion chips for guiding user input
AttachmentsComposable file attachments for chat inputs and messages with preview, variants, and upload wiring
MessageChat message layout with markdown, optional avatar, actions, and attachments
ThreadScrollable chat thread with stick-to-bottom scrolling and jump-to-bottom control
CitationInline source references with hover preview and multi-source carousel
ReasoningCollapsible model reasoning trace with streaming-aware labels and markdown body
TextShimmerAnimated shimmer text for loading, tool runs, and other in-progress UI
ImageImage renderer for URLs, base64, and byte payloads with preview, loader, lightbox, and action slots
FeedbackBarFeedback prompt bar for per-message or thread ratings with action and close slots
ToasterHeadless toast notifications powered by Sonner, with variant-aware styling and custom action/cancel controls
ChainOfThoughtStructured multi-step thought timeline with step status, optional expandable output, and auto-close when steps finish
ToolStatus-aware tool call UI with JSON input/output codeblocks
QuestionsFollow-up clarification questions with single or multiple choice, carousel navigation, and batch submission

Quick Start

Make sure you have initialized in your project:

bash
npx shadcn@latest init

Add components using any of these methods:

Option 1: shadcn CLI (recommended)

Nexus UI is in the . No config needed:

bash
npx shadcn@latest add @nexus-ui/prompt-input

Option 2: Direct URL

bash
npx shadcn@latest add https://nexus-ui.dev/r/prompt-input.json

Option 3: Nexus UI CLI

bash
npx nexus-ui-cli@latest# or add specific componentsnpx nexus-ui-cli@latest add prompt-input

To use the @nexus-ui scope with a custom registry, add to your components.json:

json
{  "registries": {    "@nexus-ui": "https://nexus-ui.dev/r/{name}.json"  }}

Usage

tsx
import {  PromptInput,  PromptInputTextarea,  PromptInputActions,} from '@/components/nexus-ui/prompt-input'
export function ChatInput() {  return (    <PromptInput>      <PromptInputTextarea />      <PromptInputActions>        <PromptInputActionGroup>          <PromptInputAction asChild>            <Button>              <Paperclip />            </Button>          </PromptInputAction>        </PromptInputActionGroup>        <PromptInputActionGroup>          <PromptInputAction asChild>            <Button>              <ArrowUp />            </Button>          </PromptInputAction>        </PromptInputActionGroup>      </PromptInputActions>    </PromptInput>  )}

Development

bash
npm installnpm run dev

Contributing

See for the contribution guidelines.

License

MIT