Thinking, rendered for free
When a reasoning-capable model thinks before it answers, CopilotKit renders that thinking right in the chat. This is the simplest generative-UI pattern in the whole section: there is nothing to build. No hook, no component, no props. Use a reasoning-capable model, keep the streaming wrapper your Flows already have, and the chat surface from the Overview does the rest.Use a reasoning-capable model
Reasoning is surfaced automatically bycopilotkit_stream, which every Flow example already wraps the model call in. The bridge reads the model’s reasoning deltas and emits them to the frontend. It is provider-agnostic and works over both of CrewAI’s streaming transports, so the only thing you change is the model.
deepseek-reasoner, Anthropic extended thinking (Claude), and Gemini thinking, among others. Swap the model for one of these and its thinking starts streaming through.
This works the same for both Crews and Flows, since both run their model calls through copilotkit_stream.
Render it
There is no frontend step. TheCopilotChat, CopilotSidebar, or CopilotPopup surface you already mounted shows the reasoning as it streams, above the answer it produced.
There is no
useReasoning hook and no reasoning component to write. Reasoning is not something you wire up on the frontend; it renders automatically as long as the model emits it.Related
Generative UI
The full spectrum, from author-controlled to agent-invented UI.
Agentic Generative UI
Render live agent state as the Flow works.
Frontend Overview
Set up the chat surface and runtime.
