Get Started
Components
- Alert
- Avatar
- Badge
- Breadcrumb
- Button
- Button Group
- Calendar
- Card
- Carousel
- Chart
- Checkbox
- Checkbox Group
- ComboBox
- Command
- Data Table
- Date Field
- Date Picker
- Date Range Picker
- Dialog
- Disclosure
- Disclosure Group
- Drawer
- Empty
- Field
- File Trigger
- Form
- Grid List
- Hover Card
- Input
- Input Group
- Input OTP
- Item
- Kbd
- Label
- ListBox
- Menu
- Number Field
- Pagination
- Popover
- Progress Bar
- Radio Group
- Range Calendar
- Resizable
- Search Field
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Sonner
- Spinner
- Switch
- Table
- Tabs
- Tag Group
- Text Field
- Textarea
- Time Field
- Toast
- Toggle Button
- Toggle Button Group
- Tooltip
- Tree
- Typography
AI Elements
import {
OpenIn,
OpenInChatGPT,
OpenInClaude,
OpenInContent,
OpenInCursor,
OpenInSeparator,
OpenInTrigger,
OpenInv0,
} from "@/components/ai-elements/open-in-chat"
export function OpenInChatDemo() {
const query = "How do I build a responsive layout with CSS Grid?"
return (
<div className="flex items-center gap-2">
<OpenIn query={query}>
<OpenInTrigger />
<OpenInContent>
<OpenInChatGPT />
<OpenInClaude />
<OpenInCursor />
<OpenInSeparator />
<OpenInv0 />
</OpenInContent>
</OpenIn>
</div>
)
}
Installation
CLI
Manual
pnpmnpmyarnbunpnpm dlx shadcn@latest add open-in-chat
Usage
import {
OpenInChat,
OpenInChatLink,
OpenInChatDropdown,
OpenInChatTrigger,
} from "@/components/ai-elements/open-in-chat"// Direct link
<OpenInChat prompt="Your prompt here" provider="chatgpt">
<OpenInChatLink />
</OpenInChat>
// Dropdown menu
<OpenInChat prompt="Your prompt here">
<OpenInChatDropdown>
<OpenInChatTrigger />
</OpenInChatDropdown>
</OpenInChat>Examples
Direct Link
import {
OpenIn,
OpenInChatGPT,
OpenInClaude,
OpenInContent,
OpenInCursor,
OpenInSeparator,
OpenInTrigger,
OpenInv0,
} from "@/components/ai-elements/open-in-chat"
export function OpenInChatDemo() {
const query = "How do I build a responsive layout with CSS Grid?"
return (
<div className="flex items-center gap-2">
<OpenIn query={query}>
<OpenInTrigger />
<OpenInContent>
<OpenInChatGPT />
<OpenInClaude />
<OpenInCursor />
<OpenInSeparator />
<OpenInv0 />
</OpenInContent>
</OpenIn>
</div>
)
}
export default function Example() {
const prompt = "How do I build a responsive layout with CSS Grid?"
return (
<OpenInChat prompt={prompt} provider="chatgpt">
<OpenInChatLink />
</OpenInChat>
)
}Dropdown Menu
export default function Example() {
const prompt = "Explain quantum computing"
return (
<OpenInChat prompt={prompt}>
<OpenInChatDropdown>
<OpenInChatTrigger />
</OpenInChatDropdown>
</OpenInChat>
)
}Supported Providers
- ChatGPT: OpenAI ChatGPT
- Claude: Anthropic Claude
- Gemini: Google Gemini
- Perplexity: Perplexity AI
- GitHub Copilot: GitHub Copilot Chat
- Scira: Scira AI
API Reference
OpenInChat
Container for chat links.
| Prop | Type | Default | Description |
|---|---|---|---|
prompt | string | - | Prompt to open in chat |
provider | "chatgpt" | "claude" | "gemini" | "perplexity" | "github" | "scira" | - | Specific provider (for direct links) |
children | ReactNode | - | Link or dropdown |
OpenInChatLink
Direct link button to provider.
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | - | Custom CSS classes |
OpenInChatDropdown
Dropdown menu with all providers.
| Prop | Type | Default | Description |
|---|---|---|---|
children | ReactNode | - | Trigger button |
OpenInChatTrigger
Trigger button for dropdown.
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | - | Custom CSS classes |