Communitygithub.com

assistant-ui/thread-list

Gère la liste des conversations (multi-thread) dans les applications assistant-ui : affichage du `ThreadList` préconstruit à côté de `Thread`, ou construction d'une barre latérale personnalisée avec `ThreadListPrimitive` et `ThreadListItemPrimitive`. Couvre les opérations CRUD sur les threads via l'API `useAui()`/`useAuiState()`.

Qu'est-ce que thread-list ?

Ce skill fournit une gestion complète de l'historique des conversations multi-thread dans les applications assistant-ui. Il permet d'afficher la liste des threads prête à l'emploi (`ThreadList`) aux côtés du composant `Thread`, ou de construire une barre latérale personnalisée en utilisant les primitives `ThreadListPrimitive` et `ThreadListItemPrimitive`, incluant des éléments comme Root, New, Items, Trigger, Title, Archive, Unarchive et Delete. Les opérations CRUD sur les threads sont accessibles via l'API `useAui()`/`useAuiState()`, avec des fonctions telles que `switchToThread`, `switchToNewThread`, ainsi que des actions par élément comme `rename`, `archive`, `unarchive`, `delete`, `generateTitle`, et `initialize`. Il permet également de lire les identifiants des threads (`s.threads.threadIds`), des threads archivés (`archivedThreadIds`) et du thread principal (`mainThreadId`). La persistance des données est assurée par le cloud via `useChatRuntime` et `AssistantCloud`, ou localement via `useRemoteThreadListRuntime` et `InMemoryThreadListAdapter`. Ce skill est idéal pour les utilisateurs souhaitant ajouter une liste de threads ou une barre latérale avec des fonctionnalités de changement, recherche, tri, glisser-déposer, renommage, archivage et suppression de conversations. Pour la gestion d'un seul thread, des messages ou du compositeur, utilisez le runtime ; pour la configuration de l'authentification et de la persistance cloud, utilisez le cloud.

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

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 thread-list ?

Implémente la gestion des conversations multi-thread (historique) dans les applications assistant-ui : rendu du ThreadList préconstruit à côté de Thread, ou construction d'une barre latérale personnalisée avec ThreadListPrimitive et ThreadListItemPrimitive (Root, New, Items, Trigger, Title, Archive, Unarchive, Delete). Couvre les opérations CRUD sur les threads via l'API useAui()/useAuiState() : switchToThread, switchToNewThread, et par élément rename, archive, unarchive, delete, generateTitle, initialize, ainsi que la lecture de s.threads.threadIds/archivedThreadIds/mainThreadId. Inclut une persistance via le cloud grâce à useChatRuntime + AssistantCloud et un chemin local via useRemoteThreadListRuntime + InMemoryThreadListAdapter. À utiliser lorsqu'un utilisateur souhaite une liste de threads/barre latérale, le changement, la recherche, le tri, le glisser-déposer, ou le renommage/archivage/suppression de conversations. Pour l'état d'un seul thread, les messages ou le compositeur, utilisez le runtime ; pour la configuration de l'authentification et de la persistance cloud, utilisez le cloud.

Individual skills in this repo

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

assistant-ui/assistant-ui

Overview and router for assistant-ui, the React library for building AI chat interfaces from composable primitives. Use for high-level, cross-cutting, or architecture-overview questions: choosing packages, picking a runtime, or understanding the layered model (RuntimeCore, Runtime, context hooks, primitives) and message model. Covers the `@assistant-ui/react` core plus `@assistant-ui/react-ai-sdk`, `@assistant-ui/react-langgraph`, `assistant-stream`, and `assistant-cloud`; `AssistantRuntimeProvider`; the primitives `ThreadPrimitive`, `MessagePrimitive`, `ComposerPrimitive`; the hooks `useAui`, `useAuiState`, `useAuiEvent`; and runtime selection across `useChatRuntime`, `useExternalStoreRuntime`, `useLangGraphRuntime`, `useLocalRuntime`. For a specific area route to a focused sibling instead: setup, runtime, primitives, tools, streaming, cloud, thread-list, or update. Not for hands-on tasks already owned by those siblings.

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/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