Model Selector

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

Basic Example

Installation

pnpm dlx shadcn-svelte@latest add https://svelte-ai-elements.vercel.app/r/model-selector.json

If you prefer using jsrepo, please install via the command below:

pnpm dlx jsrepo add @ai/elements/ai-elements/model-selector

Usage

With Dialog

Use the standalone dialog variant for a simpler API:

Select AI Model
Choose a model to use

Component Structure

The Model Selector component is composed of several sub-components:

  • ModelSelector - Main wrapper with dialog functionality
  • ModelSelectorTrigger - Trigger button to open the selector
  • ModelSelectorContent - Dialog content with command palette
  • ModelSelectorDialog - Standalone dialog variant (combines ModelSelector + Content)
  • ModelSelectorInput - Search input field
  • ModelSelectorList - List container for results
  • ModelSelectorEmpty - Empty state when no results found
  • ModelSelectorGroup - Group models by provider/category
  • ModelSelectorItem - Individual model item
  • ModelSelectorLogo - Provider logo from models.dev
  • ModelSelectorLogoGroup - Container for multiple provider logos
  • ModelSelectorName - Model name display
  • ModelSelectorSeparator - Visual separator
  • ModelSelectorShortcut - Keyboard shortcut display

API Reference

ModelSelector

PropTypeDefaultDescription
openboolean-Controlled open state (bindable)
childrenSnippet-Selector content (required)

ModelSelectorDialog

PropTypeDefaultDescription
openboolean-Controlled open state (bindable)
titlestring"Model Selector"Dialog title
descriptionstring"Search for a model"Dialog description
childrenSnippet-Dialog content (required)

ModelSelectorLogo

PropTypeDefaultDescription
providerstring-Provider slug (e.g., "openai", "anthropic")
classstring-Additional CSS classes

ModelSelectorGroup

PropTypeDefaultDescription
headingstring-Group heading text
childrenSnippet-Group items (required)

ModelSelectorItem

PropTypeDefaultDescription
valuestring-Item value for search/selection
onSelect() => void-Callback when item is selected
childrenSnippet-Item content (required)

Provider Logos

The ModelSelectorLogo component fetches provider logos from models.dev. Supported providers include:

  • OpenAI, Anthropic, Google, Meta (Llama)
  • DeepSeek, Mistral, Alibaba, xAI
  • Perplexity, Cohere, Amazon Bedrock
  • Azure, Groq, Together AI, OpenRouter
  • And 50+ more providers

Notes

  • Built on top of shadcn-svelte's Dialog and Command components.
  • Fully searchable with fuzzy matching.
  • Keyboard navigation support (arrow keys, enter, escape).
  • Accessible with proper ARIA labels.
  • Provider logos are automatically loaded from models.dev CDN.
  • Perfect for AI chat applications, model comparison tools, and API playgrounds.