Communitygithub.com

assistant-ui/assistant-ui

Vue d'ensemble et routeur pour assistant-ui, la bibliothèque React pour construire des interfaces de chat IA à partir de primitives composables. À utiliser pour les questions de haut niveau, transversales ou d'architecture globale : choix des packages, sélection d'un runtime, ou compréhension du modèle en couches (RuntimeCore, Runtime, hooks de contexte, primitives) et du modèle de message. Couvre le cœur `@assistant-ui/react` ainsi que `@assistant-ui/react-ai-sdk`, `@assistant-ui/react-langgraph`, `assistant-stream` et `assistant-cloud` ; `AssistantRuntimeProvider` ; les primitives `ThreadPrimitive`, `MessagePrimitive`, `ComposerPrimitive` ; les hooks `useAui`, `useAuiState`, `useAuiEvent` ; et la sélection de runtime via `useChatRuntime`, `useExternalStoreRuntime`, `useLangGraphRuntime`, `useLocalRuntime`. Pour un domaine spécifique, routez vers une compétence sœur ciblée : setup, runtime, primitives, tools, streaming, cloud, thread-list, ou update. Ne convient pas aux tâches pratiques déjà couvertes par ces compétences sœurs.

Qu'est-ce que assistant-ui ?

Cette compétence sert de guide principal pour assistant-ui, une bibliothèque React conçue pour créer des interfaces de chat IA modulaires à l'aide de primitives composables. Elle fournit une architecture globale et un routeur pour répondre aux questions transverses : sélection des packages (y compris `@assistant-ui/react`, `@assistant-ui/react-ai-sdk`, `@assistant-ui/react-langgraph`, `assistant-stream`, et `assistant-cloud`), choix du runtime adapté (`useChatRuntime`, `useExternalStoreRuntime`, `useLangGraphRuntime`, `useLocalRuntime`), et compréhension du modèle en couches (RuntimeCore, Runtime, hooks de contexte, primitives). La compétence décrit également l'utilisation des primitives (`ThreadPrimitive`, `MessagePrimitive`, `ComposerPrimitive`), des hooks (`useAui`, `useAuiState`, `useAuiEvent`), et du composant `AssistantRuntimeProvider`. Elle agit comme point d'entrée pour toute question d'architecture ou de configuration générale, en redirigeant vers des compétences spécialisées pour les tâches concrètes. Elle ne doit pas être utilisée pour des opérations pratiques déjà traitées par les compétences sœurs (setup, runtime, primitives, tools, streaming, cloud, thread-list, ou update).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/assistant-ui/skills/tree/main/skills/assistant-ui

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait assistant-ui ?

Vue d'ensemble et routeur pour assistant-ui, la bibliothèque React pour construire des interfaces de chat IA à partir de primitives composables. À utiliser pour les questions de haut niveau, transversales ou d'architecture globale : choix des packages, sélection d'un runtime, ou compréhension du modèle en couches (RuntimeCore, Runtime, hooks de contexte, primitives) et du modèle de message. Couvre le cœur @assistant-ui/react ainsi que @assistant-ui/react-ai-sdk, @assistant-ui/react-langgraph, assistant-stream et assistant-cloud ; AssistantRuntimeProvider ; les primitives ThreadPrimitive, MessagePrimitive, ComposerPrimitive ; les hooks useAui, useAuiState, useAuiEvent ; et la sélection de runtime via useChatRuntime, useExternalStoreRuntime, useLangGraphRuntime, useLocalRuntime. Pour un domaine spécifique, routez vers une compétence sœur ciblée : setup, runtime, primitives, tools, streaming, cloud, thread-list, ou update. Ne convient pas aux tâches pratiques déjà couvertes par ces compétences sœurs.

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

assistant-ui/primitives

Builds and customizes assistant-ui chat UI from composable, unstyled @assistant-ui/react primitives that follow Radix-style part composition. Use when assembling or styling a custom Thread, Composer, message rendering, action bar, or branch picker from building blocks: ThreadPrimitive (.Root, .Viewport, .Messages, .Empty, .ScrollToBottom), ComposerPrimitive (.Input, .Send, .Cancel, .Attachments), MessagePrimitive (.Parts/.Content, .Error), ActionBarPrimitive (.Copy, .Edit, .Reload, .Speak, feedback, .ExportMarkdown), BranchPickerPrimitive, AttachmentPrimitive, ThreadListPrimitive, ThreadListItemPrimitive. Covers MessagePrimitive.Parts children render functions for text, image, reasoning, and tool-call parts; conditional rendering with AuiIf (deprecated .If); and gotchas like wrapping in AssistantRuntimeProvider and adding className since primitives ship unstyled. For prebuilt drop-in UI and scaffolding use setup; for multi-thread sidebar behavior use thread-list.

assistant-ui/runtime

Guide for assistant-ui runtime system and state management. Use when working with runtimes, accessing state, or managing thread/message data.

assistant-ui/setup

Installs and configures assistant-ui in a project via the CLI, and picks the right runtime for a backend. Use for first-time install, scaffold, or config: `npx assistant-ui@latest create my-app` (templates default, minimal, cloud, cloud-clerk, langgraph, mcp), `npx assistant-ui@latest init [--yes] [--overwrite]` in an existing Next.js app, or `npx assistant-ui@latest add` registry components (markdown-text, thread-list). Also use to choose a runtime hook for a backend: useChatRuntime (AI SDK), useLangGraphRuntime, useAgUiRuntime, useA2ARuntime, useLocalRuntime (custom streaming API), or useExternalStoreRuntime (Redux/Zustand). Covers Vite/TanStack Start setup, shadcn styling, the playground --preset flag, and avoiding the deprecated @assistant-ui/styles and @assistant-ui/react-ui packages. For upgrading an existing install or post-upgrade breakage use update; for building UI from raw parts use primitives.

assistant-ui/streaming

Streaming backends and wire protocols for assistant-ui via the assistant-stream package. Use when building a custom (non-AI-SDK) streaming endpoint with createAssistantStreamResponse or createAssistantStreamController, emitting parts through appendText/appendReasoning/appendSource/appendFile/addToolCallPart and setResponse; choosing between the AI SDK Data Stream format (toUIMessageStreamResponse) and the native Assistant Transport format; encoding or decoding streams with DataStreamEncoder/DataStreamDecoder, AssistantTransportEncoder/AssistantTransportDecoder, PlainTextEncoder, or UIMessageStreamDecoder; or wiring streamed chunks into useLocalRuntime or useChatRuntime. Use specifically for debugging stream wire issues: text-delta, part-start, result events, text/event-stream content-type, SSE format, tool calls not rendering, or partial text not showing. For general non-stream debugging route to the relevant focused skill, not the parent overview.

assistant-ui/thread-list

Implements multi-thread (conversation history) management in assistant-ui apps: rendering the prebuilt `ThreadList` next to `Thread`, or building a custom sidebar with `ThreadListPrimitive` and `ThreadListItemPrimitive` (Root, New, Items, Trigger, Title, Archive, Unarchive, Delete). Covers thread CRUD through the `useAui()`/`useAuiState()` API: `switchToThread`, `switchToNewThread`, and per item `rename`, `archive`, `unarchive`, `delete`, `generateTitle`, `initialize`, plus reading `s.threads.threadIds`/`archivedThreadIds`/`mainThreadId`. Includes cloud-backed persistence via `useChatRuntime` + `AssistantCloud` and a local `useRemoteThreadListRuntime` + `InMemoryThreadListAdapter` path. Use when a user wants a thread list/sidebar, switching, searching, sorting, drag-and-drop, or renaming/archiving/deleting conversations. For single-thread state, messages, or composer use runtime; for cloud auth/persistence setup use cloud.

assistant-ui/tools

Registers LLM tools and renders custom tool-call UI in assistant-ui (@assistant-ui/react). Use when adding frontend-only tools with makeAssistantTool / useAssistantTool (browser actions like clipboard, navigation, localStorage, async-generator streaming, AbortSignal), rendering backend AI SDK tool() calls with makeAssistantToolUI / useAssistantToolUI (status.type running/complete/incomplete/requires-action, args, result, artifact via ToolCallMessagePartProps), building generative UI from tool results, or implementing human-in-the-loop and approval flows (addResult, resume with context.human(), respondToApproval for server-side needsApproval gates). Covers registering tool components inside AssistantRuntimeProvider and the case-sensitive toolName matching that connects a tool to its UI. Reach for this when tool UI is not rendering, a tool is not being called, or a result is not showing.

assistant-ui/update

Upgrades an existing assistant-ui project to current releases and executes the resulting migrations. Use when the user wants to update, upgrade, bump, or migrate @assistant-ui/react, @assistant-ui/react-ai-sdk, ai, or @ai-sdk/react, hits peer-dependency conflicts or post-upgrade type errors, or must apply renamed APIs after a version jump. Detects installed versus latest versions via npm ls / npm view, then routes through breaking-change references for each jump (AI SDK v4/v5 to v6; assistant-ui 0.8.x to 0.14.x): useAssistantApi to useAui, runtime.threadList to runtime.threads, ThreadPrimitive.ViewportSlack removal, the primitives components prop to children render functions, toDataStreamResponse to toUIMessageStreamResponse, maxSteps to stopWhen: stepCountIs(n). Runs npx assistant-ui@latest upgrade, pnpm/npm add @latest, and npx tsc --noEmit to verify. For a first-time install or fresh scaffold (not an upgrade) use setup instead.

Skills associés