docs/snippets/shared/reference/copilotkit-component.mdx
{ /*
This component will typically wrap your entire application (or a sub-tree of your application where you want to have a copilot). It provides the copilot context to all other components and hooks.
You can find more information about self-hosting CopilotKit here.
import { CopilotKit } from "@copilotkit/react-core";
<CopilotKit runtimeUrl="<your-runtime-url>">
// ... your app ...
</CopilotKit>
Don't have it yet? Go to https://cloud.copilotkit.ai and get one for free. </PropertyReference>
<PropertyReference name="publicLicenseKey" type="string" > Your public license key for accessing premium CopilotKit features.Don't have it yet? Go to https://cloud.copilotkit.ai and get one for free. </PropertyReference>
<PropertyReference name="guardrails_c" type="{ validTopics?: string[]; invalidTopics?: string[]; }" > Restrict input to specific topics using guardrails. @remarksThis feature is only available when using CopilotKit's hosted cloud service. To use this feature, sign up at https://cloud.copilotkit.ai to get your publicApiKey. The feature allows restricting chat conversations to specific topics. </PropertyReference>
<PropertyReference name="runtimeUrl" type="string" > The endpoint for the Copilot Runtime instance. See the Copilot Runtime API documentation. </PropertyReference> <PropertyReference name="transcribeAudioUrl" type="string" > The endpoint for the Copilot transcribe audio service. </PropertyReference> <PropertyReference name="textToSpeechUrl" type="string" > The endpoint for the Copilot text to speech service. </PropertyReference> <PropertyReference name="headers" type="Record<string, string>" > Additional headers to be sent with the request.For example:
{
"Authorization": "Bearer X"
}
Note: The authorization property is automatically forwarded to LangChain agents. See the LangGraph Agent Authentication Guide (see code examples above) for details.
</PropertyReference>
To enable HTTP-only cookie authentication, set credentials="include" and configure
CORS on your runtime endpoint:
// Frontend (https://myapp.com)
<CopilotKit runtimeUrl="https://api.myapp.com/copilotkit" credentials="include">
{children}
</CopilotKit>
// Backend (https://api.myapp.com)
copilotRuntimeNextJSAppRouterEndpoint({
runtime,
endpoint: "/copilotkit",
cors: {
origin: "https://myapp.com",
credentials: true,
},
});
Set to true to show error banners and toasts, false to hide all error UI.
Defaults to false for production safety.
</PropertyReference>
The built-in A2UI renderer is activated automatically when the runtime reports
that a2ui is configured in CopilotRuntime. This prop is optional and only
needed if you want to override defaults.
| Option | Type | Description |
|---|---|---|
theme | Theme | Override the default A2UI viewer theme. |
catalog | any | Custom component catalog. Defaults to basicCatalog. |
loadingComponent | React.ComponentType | Custom loading component shown while a surface is generating. |
includeSchema | boolean | When true (default), full component schemas are sent as agent context. |
<CopilotKit runtimeUrl="/api/copilotkit" a2ui={{ theme: myCustomTheme }}>
{children}
</CopilotKit>
This feature is only available when using CopilotKit's hosted cloud service. To use this feature, sign up at https://cloud.copilotkit.ai to get your publicApiKey. The feature allows restricting chat conversations to specific topics. </PropertyReference>
<PropertyReference name="threadId" type="string" > The thread id to use for the CopilotKit. </PropertyReference> <PropertyReference name="onError" type="CopilotErrorHandler" > Optional error handler for comprehensive debugging and observability.Requires publicApiKey: Error handling only works when publicApiKey is provided. This is a premium Copilot Cloud feature.
@param errorEvent - Structured error event with rich debugging context
@example
<CopilotKit
publicApiKey="ck_pub_your_key"
onError={(errorEvent) => {
debugDashboard.capture(errorEvent);
}}
>