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.th
Security Assessment
Detected risks:
About thread-list
The thread-list skill provides comprehensive multi-thread conversation management for assistant-ui applications. It enables developers to implement chat history features where users can manage multiple concurrent conversations, similar to modern chat applications like ChatGPT or Claude. The skill solves the challenge of maintaining conversation state across multiple threads while providing intuitive UI components for switching between conversations, organizing chat history, and persisting data either locally or in the cloud.
The skill offers two implementation approaches: a prebuilt ThreadList component for rapid integration, and a flexible ThreadListPrimitive component system for building custom sidebar UIs. Core capabilities include full CRUD operations on threads (create, read, update, delete), thread archiving and unarchiving, automatic or manual title generation, thread switching, and support for both cloud-backed persistence via AssistantCloud and local storage through InMemoryThreadListAdapter. The API is accessed through useAui() and useAuiState() hooks, providing reactive access to thread state including active threads, archived threads, and the main thread ID.
This skill is ideal for developers building production chat applications that require conversation history management, AI assistant platforms with multi-session support, customer support interfaces with conversation tracking, or any interactive application where users need to maintain and switch between multiple conversation contexts. It's particularly valuable for teams using the assistant-ui framework who want to add professional-grade thread management without building the infrastructure from scratch.
FAQ
What's the difference between using AssistantCloud and InMemoryThreadListAdapter?
AssistantCloud provides cloud-backed persistence with authentication, syncing thread data across devices and sessions. InMemoryThreadListAdapter stores threads locally in memory, suitable for simpler applications or development without requiring a backend service.
Can I customize the appearance of the thread list?
Yes, you can either style the prebuilt ThreadList component with className props, or build a fully custom UI using ThreadListPrimitive and ThreadListItemPrimitive components which provide complete control over layout and styling.
How do I implement search, sorting, or drag-and-drop in my thread list?
These features are supported through the ThreadListPrimitive components. Access thread data via useAuiState() to implement custom filtering and sorting logic, and use the primitive components with drag-and-drop libraries to build reordering functionality.
Do I need AssistantCloud to use thread management?
No, thread management works with either cloud persistence (useChatRuntime + AssistantCloud) or local storage (useRemoteThreadListRuntime + InMemoryThreadListAdapter). Choose based on your persistence requirements.
What operations can I perform on individual threads?
You can rename threads, archive and unarchive them, delete threads, generate titles automatically, and switch between threads. All operations are available through the api.threads().item() interface accessed via useAui().
Install thread-list
Quick Setup:
- Copy the skill folder to
.claude/skills/ - Claude will automatically detect and use the skill
Repository
assistant-ui/skills