Extended thinking is Anthropic's mode where Sonnet uses a hidden reasoning trace before emitting its answer. LADLE exposes it as a per-chat toggle (THINK ON / OFF). When on, the send route passes thinkingBudgetTokens=8000 to the Anthropic API; the model spends up to that many tokens in a private scratchpad before starting its reply. The user sees a collapsed 'Thinking… N chars' block above the visible reply, expandable to inspect the full trace.
Enabling THINK
Click the THINK chip in the composer's tools popover. Toggle persists on the current chat via a PATCH to /api/app/chats/:id { thinkingEnabled: true }. If you toggle it on before the first message (on a brand-new chat with no chat_id yet), the send route accepts the flag in the request body and applies it to the freshly created chat before the first reply, so the very first turn respects THINK.
Why THINK forces Sonnet
Extended thinking is a Sonnet capability; Haiku doesn't support it. Turning THINK ON in a chat forces the routing tier to heavy for that chat's replies. If the router would otherwise have picked LIGHT for a short casual turn, THINK overrides it. The reason chip on the assistant reply will read 'user selected THINK → heavy'.
The reasoning budget
8,000 tokens is the current cap on the reasoning trace. The model spends up to that many tokens in a private scratchpad before starting its visible reply. Actual usage varies with difficulty.
How the trace streams and renders
Thinking deltas arrive on the stream with a LADLE_THINKING sentinel prefix, one per line. The client accumulates them into a hidden buffer and renders a 'THINKING…' chip in the reply header. When the reply finishes, the chip expands to reveal the full trace under a details/summary block. The trace is stored persistently in messages.thinking (text column) so it's available on re-render.
When THINK is worth enabling
Math, logic, multi-step reasoning problems, debugging that requires ruling out several hypotheses in order, careful reading of a long document with specific criteria. Not useful for: creative writing (the reasoning trace becomes stilted), casual conversation (the overhead is wasted), single-fact lookups (the model doesn't need to think to answer 'what is the capital of France').
The cost of turning it on
Latency roughly doubles (the model does the reasoning pass before starting the visible reply). Output cost roughly doubles for the same visible answer length, since you're paying for the thinking tokens too. In exchange: on hard reasoning problems the accuracy uplift is substantial and worth every token.
Docs: Second opinion