Communitygithub.com

assistant-ui/assistant-ui

assistant-ui의 개요 및 라우터입니다. React 컴포지블 프리미티브로 AI 채팅 인터페이스를 구축하기 위한 라이브러리입니다. 패키지 선택, 런타임 선택, 계층적 모델(RuntimeCore, Runtime, 컨텍스트 훅, 프리미티브) 및 메시지 모델 이해 등 높은 수준의 아키텍처 질문에 사용합니다.

assistant-ui란 무엇인가요?

assistant-ui/assistant-ui는 리액트 기반의 AI 채팅 인터페이스 구축 라이브러리 assitant-ui에 대한 전반적인 개요와 라우팅을 담당하는 스킬입니다. 개발자는 이 스킬을 통해 라이브러리의 핵심 패키지(`@assistant-ui/react`), 부속 패키지(`@assistant-ui/react-ai-sdk`, `assistant-stream` 등), 그리고 다양한 런타임(`useChatRuntime`, `useLocalRuntime`)의 선택 및 사용 방법에 대한 높은 수준의 아키텍처 질문을 할 수 있습니다. 또한 `ThreadPrimitive`, `MessagePrimitive` 같은 UI 프리미티브와 `useAui` 같은 컨텍스트 훅의 역할을 이해하는 데 도움을 줍니다. 이 스킬은 특정 기능(예: 셋업, 스트리밍, 도구)에 대한 실무적인 질문은 해당 주제의 연계 스킬로 안내하는 라우터 역할도 합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/assistant-ui/skills/tree/main/skills/assistant-ui

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

assistant-ui은(는) 무엇을 하나요?

assistant-ui에 대한 개요 및 라우터입니다. assistant-ui는 컴포저블 프리미티브로 AI 채팅 인터페이스를 구축하기 위한 React 라이브러리입니다. 패키지 선택, 런타임 선택, 또는 계층적 모델(RuntimeCore, Runtime, 컨텍스트 훅, 프리미티브)과 메시지 모델 이해와 같은 높은 수준의, 교차적인, 또는 아키텍처 개요 질문에 사용하세요. @assistant-ui/react 코어와 @assistant-ui/react-ai-sdk, @assistant-ui/react-langgraph, assistant-stream, assistant-cloud를 다룹니다. 또한 AssistantRuntimeProvider, 프리미티브 ThreadPrimitive, MessagePrimitive, ComposerPrimitive, 훅 useAui, useAuiState, useAuiEvent, 그리고 useChatRuntime, useExternalStoreRuntime, useLangGraphRuntime, useLocalRuntime을 통한 런타임 선택을 다룹니다. 특정 영역에 대해서는 대신 집중된 연계 스킬로 라우팅하세요: 셋업, 런타임, 프리미티브, 도구, 스트리밍, 클라우드, 스레드 목록, 또는 업데이트. 해당 연계 스킬이 이미 담당하는 실무 작업을 위한 것이 아닙니다.

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.

관련 스킬