thread-list by assistant-ui/skills
npx skills add https://github.com/assistant-ui/skills --skill thread-list请始终查阅 assistant-ui.com/llms.txt 以获取最新的 API 信息。
使用内置或自定义 UI 管理多个聊天线程。
线程列表可通过 useChatRuntime 配合云端服务使用:
import { AssistantCloud } from "assistant-cloud";
import { useChatRuntime, AssistantChatTransport } from "@assistant-ui/react-ai-sdk";
import { AssistantRuntimeProvider } from "@assistant-ui/react";
import { ThreadList } from "@/components/assistant-ui/thread-list";
import { Thread } from "@/components/assistant-ui/thread";
const cloud = new AssistantCloud({
baseUrl: process.env.NEXT_PUBLIC_ASSISTANT_BASE_URL,
authToken: async () => getAuthToken(),
});
function Chat() {
const runtime = useChatRuntime({
transport: new AssistantChatTransport({ api: "/api/chat" }),
cloud,
});
return (
<AssistantRuntimeProvider runtime={runtime}>
<div className="flex h-screen">
<ThreadList className="w-64 border-r" />
<Thread className="flex-1" />
</div>
</AssistantRuntimeProvider>
);
}
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
import { useAui, useAuiState } from "@assistant-ui/react";
const api = useAui();
const { threadIds, mainThreadId } = useAuiState((s) => ({
threadIds: s.threads.threadIds,
mainThreadId: s.threads.mainThreadId,
}));
// 切换到指定线程
api.threads().switchToThread(threadId);
// 创建新线程
api.threads().switchToNewThread();
// 线程项操作
const item = api.threads().item({ id: threadId });
await item.rename("New Title");
await item.archive();
await item.delete();
import { ThreadListPrimitive, ThreadListItemPrimitive } from "@assistant-ui/react";
function CustomThreadList() {
return (
<ThreadListPrimitive.Root className="w-64">
<ThreadListPrimitive.New className="w-full p-2 bg-blue-500 text-white">
+ 新建聊天
</ThreadListPrimitive.New>
<ThreadListPrimitive.Items>
<ThreadListItemPrimitive.Root className="flex p-2 hover:bg-gray-100">
<ThreadListItemPrimitive.Trigger className="flex-1">
<ThreadListItemPrimitive.Title />
</ThreadListItemPrimitive.Trigger>
<ThreadListItemPrimitive.Archive>归档</ThreadListItemPrimitive.Archive>
<ThreadListItemPrimitive.Delete>删除</ThreadListItemPrimitive.Delete>
</ThreadListItemPrimitive.Root>
</ThreadListPrimitive.Items>
</ThreadListPrimitive.Root>
);
}
import {
unstable_useRemoteThreadListRuntime as useRemoteThreadListRuntime,
unstable_InMemoryThreadListAdapter as InMemoryThreadListAdapter,
} from "@assistant-ui/react";
const runtime = useRemoteThreadListRuntime({
adapter: new InMemoryThreadListAdapter(),
runtimeHook: () => useLocalRuntime({ model: myModel }),
});
线程列表不显示
cloud 传递给 runtime线程未持久化
每周安装量
449
代码仓库
GitHub 星标数
7
首次出现
2026年1月21日
安全审计
安装于
codex361
opencode352
gemini-cli349
github-copilot339
amp293
kimi-cli290
Always consultassistant-ui.com/llms.txt for latest API.
Manage multiple chat threads with built-in or custom UI.
Thread list is available with useChatRuntime + cloud:
import { AssistantCloud } from "assistant-cloud";
import { useChatRuntime, AssistantChatTransport } from "@assistant-ui/react-ai-sdk";
import { AssistantRuntimeProvider } from "@assistant-ui/react";
import { ThreadList } from "@/components/assistant-ui/thread-list";
import { Thread } from "@/components/assistant-ui/thread";
const cloud = new AssistantCloud({
baseUrl: process.env.NEXT_PUBLIC_ASSISTANT_BASE_URL,
authToken: async () => getAuthToken(),
});
function Chat() {
const runtime = useChatRuntime({
transport: new AssistantChatTransport({ api: "/api/chat" }),
cloud,
});
return (
<AssistantRuntimeProvider runtime={runtime}>
<div className="flex h-screen">
<ThreadList className="w-64 border-r" />
<Thread className="flex-1" />
</div>
</AssistantRuntimeProvider>
);
}
import { useAui, useAuiState } from "@assistant-ui/react";
const api = useAui();
const { threadIds, mainThreadId } = useAuiState((s) => ({
threadIds: s.threads.threadIds,
mainThreadId: s.threads.mainThreadId,
}));
// Switch to thread
api.threads().switchToThread(threadId);
// Create new thread
api.threads().switchToNewThread();
// Thread item operations
const item = api.threads().item({ id: threadId });
await item.rename("New Title");
await item.archive();
await item.delete();
import { ThreadListPrimitive, ThreadListItemPrimitive } from "@assistant-ui/react";
function CustomThreadList() {
return (
<ThreadListPrimitive.Root className="w-64">
<ThreadListPrimitive.New className="w-full p-2 bg-blue-500 text-white">
+ New Chat
</ThreadListPrimitive.New>
<ThreadListPrimitive.Items>
<ThreadListItemPrimitive.Root className="flex p-2 hover:bg-gray-100">
<ThreadListItemPrimitive.Trigger className="flex-1">
<ThreadListItemPrimitive.Title />
</ThreadListItemPrimitive.Trigger>
<ThreadListItemPrimitive.Archive>Archive</ThreadListItemPrimitive.Archive>
<ThreadListItemPrimitive.Delete>Delete</ThreadListItemPrimitive.Delete>
</ThreadListItemPrimitive.Root>
</ThreadListPrimitive.Items>
</ThreadListPrimitive.Root>
);
}
import {
unstable_useRemoteThreadListRuntime as useRemoteThreadListRuntime,
unstable_InMemoryThreadListAdapter as InMemoryThreadListAdapter,
} from "@assistant-ui/react";
const runtime = useRemoteThreadListRuntime({
adapter: new InMemoryThreadListAdapter(),
runtimeHook: () => useLocalRuntime({ model: myModel }),
});
ThreadList not showing
cloud to runtimeThreads not persisting
Weekly Installs
449
Repository
GitHub Stars
7
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
codex361
opencode352
gemini-cli349
github-copilot339
amp293
kimi-cli290
超能力技能使用指南:AI助手技能调用优先级与工作流程详解
39,200 周安装
data-driven-testing 测试技能已弃用 | 测试最佳实践替代方案 | 0xbigboss/claude-code
58 周安装
specalign规范对齐工具:自动检测代码与文档差异,确保开发一致性
58 周安装
1Password CLI安全使用指南:op-cli命令最佳实践与密钥管理技巧
61 周安装
E2E测试完整指南:分类、修复原则与工作流程 | 端到端测试最佳实践
61 周安装
Docker与Kubernetes容器编排最佳实践 | Dockerfile优化、Docker Compose配置、K8s部署指南
69 周安装
tmux进程管理最佳实践 - 会话复用规则与自动化脚本教程
82 周安装