Model Selector

Select models and providers from the chat header or composer toolbar.

ModelSelector is a searchable dialog for picking chat models by provider. Pair it with the composer toolbar or open it from the chat header.

Selected: GPT-4o

Installation

pnpm dlx cubix@latest add model-selector --base aria

Usage

Import
import {
  ModelSelector,
  ModelSelectorContent,
  ModelSelectorInput,
  ModelSelectorItem,
  ModelSelectorList,
  ModelSelectorTrigger,
} from "@/components/cubix/model-selector"
Example
<ModelSelector>
  <ModelSelectorTrigger render={<ModelSelectorButton />}>
    <ModelSelectorLogo provider="openai" />
    <ModelSelectorName>GPT-4o</ModelSelectorName>
  </ModelSelectorTrigger>
  <ModelSelectorContent>
    <ModelSelectorInput />
    <ModelSelectorList>
      <ModelSelectorEmpty />
      <ModelSelectorGroup heading="OpenAI">
        <ModelSelectorItem value="GPT-4o" checked onSelect={...}>
          <ModelSelectorLogo provider="openai" />
          <ModelSelectorName>GPT-4o</ModelSelectorName>
        </ModelSelectorItem>
      </ModelSelectorGroup>
    </ModelSelectorList>
  </ModelSelectorContent>
</ModelSelector>

Composition

 
ModelSelector
├── ModelSelectorTrigger
└── ModelSelectorContent
    ├── ModelSelectorInput
    └── ModelSelectorList
        ├── ModelSelectorEmpty
        ├── ModelSelectorGroup
           └── ModelSelectorItem
               ├── ModelSelectorLogo
               ├── ModelSelectorName
               └── ModelSelectorShortcut
        └── ModelSelectorSeparator

Features

  • Searchable command dialog with keyboard navigation
  • Provider groups, logos, shortcuts, and checked state
  • Works in the Prompt Input toolbar or as a standalone picker

Search

Open the menu and type to filter by model or provider.

Empty

Checked

Disabled

Unavailable models stay visible but cannot be selected. Open the picker and look for Gemini Legacy.

Logos

openai logoanthropic logogoogle logoxai logo
openai logoanthropic logogoogle logo

Shortcuts

With Prompt Input

Controlled

Grok 2

API Reference

ModelSelector

PropTypeDefaultDescription
openboolean-Controlled open state for the dialog.
onOpenChange(open: boolean) => void-Called when the dialog opens or closes.
childrenReact.ReactNode-Trigger and content composition.

ModelSelectorContent

PropTypeDefaultDescription
titleReact.ReactNode"Select a model"Visually hidden dialog title for accessibility.
showCloseButtonbooleanfalseShow the dialog close control. Off by default for palette UX.
childrenReact.ReactNode-Command input and list parts.

ModelSelectorItem

PropTypeDefaultDescription
valuestring-Searchable value used by the command filter.
checkedbooleanfalseShows the selected checkmark for the current model.
disabledboolean-Prevents selecting an unavailable model.
onSelect(value: string) => void-Called when the item is chosen via click or keyboard.

ModelSelectorLogo

PropTypeDefaultDescription
providerModelSelectorProvider-Provider id used to load the logo from models.dev (e.g. openai, anthropic).
classNamestring-Additional classes for the logo image.