Thinking Level

Overview

The thinking level is a lightweight parameter stored on the chat record (thinkingLevel). The dropdown options come from the provider when available: each model record may carry a thinking capability descriptor attached by the server, and the chat view builds its option list from it. When the provider reports nothing (unknown model, no live data yet), the dropdown falls back to the generic Low/Medium/High presets plus a custom input.

The selected value is sent to the AI provider's API as the appropriate native field:

Thinking capability descriptors

Each model record may carry a thinking field describing the controls the provider accepts:

{ "kind": "levels", "levels": ["minimal", "low", "medium", "high", "xhigh"] }
{ "kind": "budget" }
{ "kind": "toggle" }

Where the descriptor comes from, per provider:

Usage

  1. Open a chat.

  2. Tap the thinking level dropdown next to the model picker.

  3. Select one of the provider-reported options (or a preset when no provider info is available).

  4. The value is persisted immediately on the chat record and takes effect on the next message sent.

Fallback presets

LabelValueOpenAIAnthropicGemini
No thinking"" (empty)not sentnot sentnot sent
Low"low"reasoning_effort: "low"thinking.budget_tokens: 2048thinkingConfig.thinkingBudget: 2048
Medium"medium"reasoning_effort: "medium"thinking.budget_tokens: 8192thinkingConfig.thinkingBudget: 8192
High"high"reasoning_effort: "high"thinking.budget_tokens: 16384thinkingConfig.thinkingBudget: 16384

When the provider reports a levels descriptor, its level list replaces the Low/Medium/High rows. A budget descriptor keeps the presets (mapped to token counts server-side) and adds the custom input. A toggle descriptor shows just "No thinking" / "Thinking".

Custom values

For levels and budget models, select "Custom…" from the dropdown to reveal a text input. Type any value and press Enter or blur the field. The value is saved immediately.