Models

Clutch automatically discovers available models from each provider's API and caches the results locally. You can switch models at any time — even mid-conversation.

Model Discovery

When you first configure a provider, Clutch fetches the full list of available models directly from the provider's API. This list is cached in SQLite with a 24-hour TTL. On app startup, if the cache is older than 24 hours, Clutch refreshes it automatically in the background. You can also trigger a manual refresh from Settings → Models.

SQLite Caching

Model lists are stored in the model_cache table with provider name, JSON model data, ETag, version, and last-updated timestamp. The 24-hour cache prevents unnecessary API calls while keeping your model list current. A background scheduler checks every 12 hours for stale caches.

Model Categorization

Models are grouped by provider family for easy browsing. OpenCode Go surfaces models from MiniMax, Kimi, GLM, DeepSeek, Qwen, and Mimo. OpenCode Zen covers Claude, Gemini, GPT, DeepSeek, Grok, and Free-tier models. The model selector dropdown reflects this hierarchy so you can quickly find what you need.

Context Limits

Each model has a different context window size. Clutch tracks the current token count and displays it in the context bar below the chat input. Here are the limits for commonly used models:

ModelContext LimitProvider
deepseek-v4-pro1,048,576 (1M)DeepSeek
Claude 3.5 Sonnet200,000OpenCode Zen
Claude 3 Opus200,000OpenCode Zen
Gemini 2.5 Pro1,048,576 (1M)OpenCode Zen
Gemini 2.5 Flash1,048,576 (1M)OpenCode Zen
GPT-4o128,000OpenCode Zen
GPT-4 Turbo128,000OpenCode Zen
Grok-3131,072OpenCode Zen
Qwen-Max131,072OpenCode Go
MiniMax-Text-011,004,576OpenCode Go

Changing Models Mid-Chat

Switch models at any point in a conversation using the model selector in the chat header. The full message history is preserved and sent to the new model. This is useful for experimenting with different models on the same prompt, or switching to a larger context window when your conversation grows. The provider label updates to reflect the current model.

Token Counting

Clutch uses tiktoken-rs on the Rust backend for accurate per-model token counting. Token counts are stored per-message and summed per-session. The context bar shows your usage relative to the current model's limit, with color-coded warnings as you approach capacity.