# Assistant Panel 1 – Chat docked beside your app

> For products where the chat is a guest rather than the page: a panel docked to the right, opened from a button in your own header, with a menu of past conversations, rename and delete on the open one, and a way out from inside. It holds its open state itself rather than borrowing a SidebarProvider, so the sidebar your app already has keeps its trigger, its shortcut and its collapse. It brings a whole working chat with it, so what your app supplies is the page it sits beside.

A paid shadcn/ui block sold by the [@shadcncraft](https://shadcncraft.com/?utm_source=shadcn.exchange) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/shadcncraft/assistant-panel-1).

- Page, with a preview: https://shadcn.exchange/r/shadcncraft/assistant-panel-1
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/shadcncraft/assistant-panel-1-light-9976b47190575584.png
- Categories: chat
- Listed: 2026-10-13

## Buy and install

@shadcncraft sells this block, and its code is not on shadcn.exchange. Buy it from the registry, which installs it for those who have: https://shadcn.exchange/out/shadcncraft/assistant-panel-1

## Dependencies

- npm packages: `@shadcn/helpers`
- Registry items: `alert-dialog`, `avatar`, `breadcrumb`, `button`, `collapsible`, `dropdown-menu`, `kbd`, `separator`, `sheet`, `sidebar`, `tooltip`, `use-mobile`, `@shadcncraft/chat-1`

## Notes from the registry

The panel needs nothing from your `SidebarProvider`: it holds its open state in `components/assistant-provider.tsx` and answers to ⌘J, so your own sidebar keeps its trigger, ⌘B and its collapse. Mount `AssistantProvider` above your page, put the panel beside it, and `AssistantTrigger` in your own header. Rename and delete are built in, IME guards and focus handling included, and land in `onRename` and `onDelete`: `index.tsx` implements both against the demo array, and pointing them at your backend is the whole integration. `index.tsx`, `components/site-sidebar.tsx` and `lib/demo-sessions.ts` are the stand-ins to replace, and `components/assistant-panel.tsx` is the panel. The conversation inside it is `chat-1`, mounted unchanged, so the transport and the message renderers are documented there rather than here.
