Model Selection
OpenChat separates model selection from provider credential management, so users can switch quickly without leaving chat.Model Selector UX
Implemented inmodel-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
osschatprovider 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 proxies the OpenRouter models endpoint.
- Uses Upstash-backed cache and IP-based rate limiting.
- Includes
TRUST_PROXYsafeguards for rate-limit identity correctness.