Pre-Built: CopilotChat Vanilla CopilotChat with three starter-prompt suggestions — the minimum-viable surface for free-form chat
chat-ui
Chat Customization: CSS Default CopilotChat re-themed via CopilotKitCSSProperties
chat-ui
Generative UI: Tool Rendering (Default) Out-of-the-box tool rendering — backend defines the tools; the frontend adds zero custom renderers and relies on CopilotKit's built-in default UI
generative-ui
Generative UI: Tool Rendering (Catch-all) Single branded wildcard renderer via useDefaultRenderTool — the same app-designed card paints every tool call
generative-ui
Frontend Tools: In-app Actions Agent invokes client-side handlers registered with useFrontendTool
interactivity
Frontend Tools: Async useFrontendTool with an async handler — agent awaits a client-side async operation (simulated notes DB query) and uses the returned result
interactivity
Human In the Loop: In-chat Time-slot picker rendered inline in the chat via `useHumanInTheLoop` — the agent requests user input, the frontend renders a TimePickerCard, and the user's choice resumes the agent.
interactivity
Human in the Loop: In-app Agent requests approval via useFrontendTool with an async handler; the approval UI pops up as an app-level modal OUTSIDE the chat, and a completion callback resolves the pending tool Promise with the user's decision
interactivity
Generative UI: Tool Rendering (Custom) Custom per-tool renderers (WeatherCard, FlightListCard) plus a wildcard catch-all for every other tool
generative-ui
Generative UI: Tool calls + reasoning Per-tool renderers (WeatherCard, FlightListCard, custom catchall) interleaved with a reasoningMessage slot rendering the agent's reasoning tokens — combines reasoning-display + tool-rendering in one chat surface.
generative-ui
Generative UI: useComponent Agent uses tools to trigger UI generation
generative-ui
Generative UI: Agent State Agent-state-driven Gen UI — the agent plans a live step list via Command(update={steps}); the frontend subscribes through useAgent and renders the steps inside CopilotChat's messageView.children slot.
generative-ui
Shared State: Streaming Per-token state delta streaming from agent to UI
agent-state
Shared State: Read + Write Bidirectional shared state — UI writes preferences via agent.setState; agent writes notes via a Command-returning tool
agent-state
Shared State: Read-only Recipe editor publishes form state via agent.setState; the agent reads the recipe context but does not mutate it (no backend tool — neutral default agent).
agent-state
Sub-Agents Multiple agents with visible task delegation
multi-agent
Pre-Built: Sidebar Docked sidebar chat via <CopilotSidebar />
chat-ui
Pre-Built: Popup Floating popup chat via <CopilotPopup />
chat-ui
Chat Customization: Slots Customize CopilotChat via its slot system
chat-ui
Headless UI: Simple Minimum viable headless chat — useAgent + useCopilotKit dressed in shadcn/ui primitives. No tool rendering, no generative UI, just text in / text out.
chat-ui
Headless UI: Complete Full headless surface — hand-rolled CopilotChat replacement that wires every render hook (useRenderTool, useDefaultRenderTool, useComponent, useRenderToolCall, useRenderActivityMessage, useSuggestions, useAttachments) on top of shadcn primitives.
chat-ui
Reasoning: Default Built-in CopilotChatReasoningMessage rendering with no slot override.
chat-ui
Reasoning: Custom Visible reasoning/thinking chain alongside the final answer
chat-ui
Human in the Loop: Interrupts Interactive component rendered inline in the chat via the lower-level `useInterrupt` primitive — direct control over the LangGraph interrupt lifecycle
interactivity
Human in the Loop: Headless Interrupts Same interrupt(...) backend pattern as gen-ui-interrupt, but the time-picker mounts in a separate app-surface pane (left) instead of inline inside the chat — uses useHeadlessInterrupt (custom-event subscribe + manual runAgent forwardedProps.command.resume).
interactivity
Declarative UI: Dynamic A2UI Canonical A2UI BYOC — custom catalog (Card/StatusBadge/Metric/InfoRow/PrimaryButton) wired via a2ui.catalog on the provider; runtime injects the render_a2ui tool automatically
generative-ui
Declarative UI: Fixed A2UI Render an A2UI tree from a fixed, server-side schema — the agent streams data into a pre-authored component tree
generative-ui
MCP Apps MCP server-driven UI via activity renderers
generative-ui
Shared State: Frontend Context Frontend provides read-only context to the agent via useAgentContext
agent-state
Declarative UI: json-render Streaming hierarchical JSON UI spec rendered via @json-render/react, with a Zod-validated catalog (MetricCard + PieChart + BarChart)
generative-ui
Beautiful Chat Canonical polished starter chat — brand fonts, theme tokens, suggestion pills
chat-ui
Attachments Image and PDF uploads via CopilotChat attachments, processed by a vision-capable agent
chat-ui
Authentication Bearer-token gate via runtime onRequest hook with unauthenticated / authenticated states
platform
Declarative UI: Hashbrown Streaming structured output via @hashbrownai/react, rendering a sales dashboard catalog (MetricCard + PieChart + BarChart)
generative-ui
Open Generative UI: Default Agent composes UI from a registered component library — distinct from Tool Rendering, which attaches a custom renderer to a *named* backend tool. Use Open Generative UI when you want the agent to assemble UI freely from a palette you control.
generative-ui
Open Generative UI: Custom Same Open Generative UI surface, with the iframe-rendered components able to call back into frontend sandbox functions (e.g., a Calculator app whose buttons trigger handlers in the host page).
generative-ui
Voice Speech-to-text via @copilotkit/voice with a bundled sample audio button
chat-ui
Agent Config Object Forward a typed config object (tone / expertise / response length) from the provider to the agent's dynamic system prompt
platform