Model Selector

A searchable command palette for selecting AI models in your chat interface.

The Model Selector component provides a searchable command palette interface for selecting AI models. It's built on top of the cmdk library and provides a keyboard-navigable interface with search functionality.

Install using CLI

AI Elements Vue
shadcn-vue CLI
npx ai-elements-vue@latest add model-selector

Install Manually

Copy and paste the following code in the same folder.

ModelSelector.vue
ModelSelectorTrigger.vue
ModelSelectorContent.vue
ModelSelectorDialog.vue
ModelSelectorInput.vue
ModelSelectorList.vue
ModelSelectorEmpty.vue
ModelSelectorGroup.vue
ModelSelectorItem.vue
ModelSelectorShortcut.vue
ModelSelectorSeparator.vue
ModelSelectorLogo.vue
ModelSelectorLogoGroup.vue
ModelSelectorName.vue
index.ts
<script setup lang="ts">
import { Dialog } from '@repo/shadcn-vue/components/ui/dialog'
</script>

<template>
  <Dialog v-bind="$attrs">
    <slot />
  </Dialog>
</template>

Features

  • Searchable interface with keyboard navigation
  • Fuzzy search filtering across model names
  • Grouped model organization by provider
  • Keyboard shortcuts support
  • Empty state handling
  • Customizable styling with Tailwind CSS
  • Built on cmdk for excellent accessibility
  • Support for both inline and dialog modes
  • TypeScript support with proper type definitions

Props

<ModelSelectorContent />

titlestring
'Model Selector'
Title of the model selector.
classstring
Additional classes applied to the component.

<ModelSelectorInput />

classstring
Additional classes applied to the component.
providerstring
The AI provider name. Supports major providers like "openai", "anthropic", "google", "mistral", etc.
classstring
Additional classes applied to the component.

<ModelSelectorLogoGroup />

classstring
Additional classes applied to the component.

<ModelSelectorName />

classstring
Additional classes applied to the component.