> ## Documentation Index
> Fetch the complete documentation index at: https://docs.osschat.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Model Selection

> How users choose models, providers, and reasoning preferences.

# Model Selection

OpenChat separates model selection from provider credential management, so users can switch quickly without leaving chat.

## Model Selector UX

Implemented in `model-selector.tsx` with desktop and mobile variants:

* Search by model/provider.
* Filter by provider/favorites.
* Hover/info panel for model metadata.
* Keyboard navigation for accessibility.

## Favorite Models

* Stored in local persistent state.
* Used for fast grouping in retry/fork model menus.
* Defaults can be seeded in selector UI.

## Provider Modes

* `osschat` provider for shared hosted usage profile.
* BYOC/BYOK providers configured in Settings > Providers.
* Active provider and daily usage/search state in `provider.ts`.

## Reasoning Controls

* Reasoning toggle appears only for capable models.
* Effort levels are tracked in model state and sent at generation time.

## Model Catalog Source

* [GET /api/models](/api-reference/models-endpoint) proxies the OpenRouter models endpoint.
* Uses Upstash-backed cache and IP-based rate limiting.
* Includes `TRUST_PROXY` safeguards for rate-limit identity correctness.

## Learn more

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/guides/authentication">
    Confirm OAuth and session assumptions
  </Card>

  <Card title="Quickstart" icon="code" href="/quickstart">
    Try model selection in a running local app
  </Card>
</CardGroup>
