Assistant UI
componentthreadlist-sidebarsource: ok · hit
Thread List Sidebar
Sidebar shell that hosts the thread list beside a thread.
npx shadcn add "https://r.assistant-ui.com/threadlist-sidebar.json"free
Where it goes
sidebardashboard-shell
Use cases
dashboard
Tags auto-generated by rules on 9/24/2026 — empty means no evidence, not lack of support.
Dependencies
Bundle weight · lighticonslucide-react
Registry dependencies
sidebarhttps://r.assistant-ui.com/thread-list.json
Files2 · source cached 10/8/2026, 10:22:55 PM
components/assistant-ui/elements/threadlist-sidebar.aui.tsx
import type * as React from "react";
import { MessagesSquare } from "lucide-react";
import { GitHubIcon } from "@/components/icons/github";
import {
Sidebar,
SidebarContent,
SidebarFooter,
SidebarHeader,
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
SidebarRail,
} from "@/components/ui/sidebar";
import { ThreadList } from "@/components/assistant-ui/elements/thread-list.aui";
export function ThreadListSidebar({
...props
}: React.ComponentProps<typeof Sidebar>) {
return (
<Sidebar {...props}>
<SidebarHeader className="aui-sidebar-header mb-2 border-b">
<div className="aui-sidebar-header-content flex items-center justify-between">
<SidebarMenu>
<SidebarMenuItem>
<SidebarMenuButton size="lg" asChild>
<a
href="https://assistant-ui.com"
target="_blank"
rel="noopener noreferrer"
>
<div className="aui-sidebar-header-icon-wrapper bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg">
<MessagesSquare className="aui-sidebar-header-icon size-4" />
</div>
<div className="aui-sidebar-header-heading me-6 flex flex-col gap-0.5 leading-none">
<span className="aui-sidebar-header-title font-semibold">
assistant-ui
</span>
</div>
</a>
</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
</div>
</SidebarHeader>
<SidebarContent className="aui-sidebar-content px-2">
<ThreadList />
</SidebarContent>
{props.collapsible !== "none" && <SidebarRail />}
<SidebarFooter className="aui-sidebar-footer border-t">
<SidebarMenu>
<SidebarMenuItem>
<SidebarMenuButton size="lg" asChild>
<a
href="https://github.com/assistant-ui/assistant-ui"
target="_blank"
rel="noopener noreferrer"
>
<div className="aui-sidebar-footer-icon-wrapper bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg">
<GitHubIcon className="aui-sidebar-footer-icon size-4" />
</div>
<div className="aui-sidebar-footer-heading flex flex-col gap-0.5 leading-none">
<span className="aui-sidebar-footer-title font-semibold">
GitHub
</span>
<span>View Source</span>
</div>
</a>
</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
</SidebarFooter>
</Sidebar>
);
}
components/icons/github.tsx
export function GitHubIcon({ className }: { className?: string }) {
return (
<svg
aria-hidden="true"
viewBox="0 0 24 24"
className={className}
fill="currentColor"
>
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" />
</svg>
);
}