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:
| Model | Context Limit | Provider |
|---|---|---|
| deepseek-v4-pro | 1,048,576 (1M) | DeepSeek |
| Claude 3.5 Sonnet | 200,000 | OpenCode Zen |
| Claude 3 Opus | 200,000 | OpenCode Zen |
| Gemini 2.5 Pro | 1,048,576 (1M) | OpenCode Zen |
| Gemini 2.5 Flash | 1,048,576 (1M) | OpenCode Zen |
| GPT-4o | 128,000 | OpenCode Zen |
| GPT-4 Turbo | 128,000 | OpenCode Zen |
| Grok-3 | 131,072 | OpenCode Zen |
| Qwen-Max | 131,072 | OpenCode Go |
| MiniMax-Text-01 | 1,004,576 | OpenCode 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.