--- title: "CopilotKit" description: "The CopilotKit provider component, wrapping your application." --- { /* * ATTENTION! DO NOT MODIFY THIS FILE! * This page is auto-generated. If you want to make any changes to this page, changes must be made at: * packages/react-core/src/components/copilot-provider/copilotkit.tsx */ } 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. ## Example You can find more information about self-hosting CopilotKit [here](/guides/self-hosting). ```tsx import { CopilotKit } from "@copilotkit/react-core"; // ... your app ... ``` ## Properties Your Copilot Cloud API key. Don't have it yet? Go to https://dashboard.operations.copilotkit.ai and get one for free. Your public license key for accessing premium CopilotKit features. Don't have it yet? Go to https://dashboard.operations.copilotkit.ai and get one for free. Restrict input to specific topics using guardrails. @remarks This feature is only available when using CopilotKit's hosted cloud service. To use this feature, sign up at https://dashboard.operations.copilotkit.ai to get your publicApiKey. The feature allows restricting chat conversations to specific topics. The endpoint for the Copilot Runtime instance. [Click here for more information](/concepts/copilot-runtime). The endpoint for the Copilot transcribe audio service. The endpoint for the Copilot text to speech service. Additional headers to be sent with the request. Can be a static object or a function that returns headers dynamically (useful for refreshing auth tokens). For example: ```tsx // Static headers headers={{ "Authorization": "Bearer X" }} // Dynamic headers (re-evaluated on each render) headers={() => ({ "Authorization": `Bearer ${getToken()}` })} ``` The children to be rendered within the CopilotKit. Custom properties to be sent with the request. Can include threadMetadata for thread creation and authorization for LangGraph Platform authentication. For example: ```js { 'user_id': 'users_id', 'authorization': 'your-auth-token', // For LangGraph Platform authentication threadMetadata: { 'account_id': '123', 'user_type': 'premium' } } ``` Note: The `authorization` property is automatically forwarded to LangGraph agents. See the [LangGraph Agent Authentication Guide](/coagents/shared/guides/langgraph-platform-authentication) for details. Indicates whether the user agent should send or receive cookies from the other domain in the case of cross-origin requests. To enable HTTP-only cookie authentication, set `credentials="include"` and configure CORS on your runtime endpoint: ```tsx // Frontend (https://myapp.com) {children} // Backend (https://api.myapp.com) copilotRuntimeNextJSAppRouterEndpoint({ runtime, endpoint: "/copilotkit", cors: { origin: "https://myapp.com", credentials: true, }, }); ``` The name of the agent to use. The forwarded parameters to use for the task. The auth config to use for the CopilotKit. @remarks This feature is only available when using CopilotKit's hosted cloud service. To use this feature, sign up at https://dashboard.operations.copilotkit.ai to get your publicApiKey. The feature allows restricting chat conversations to specific topics. The thread id to use for the CopilotKit. 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 ```typescript { debugDashboard.capture(errorEvent); }} > ``` Enable or disable the CopilotKit Inspector, letting you inspect AG-UI events, view agent messages, check agent state, and visualize agent context. Defaults to enabled. Enable debug logging. On the server (`CopilotRuntime`), this enables structured Pino logging of the AG-UI event pipeline. On the client, this configuration is forwarded to the AG-UI transport layer (`transformChunks`) for transport-level debug output. Pass `true` for full output, or an object for granular control: ```tsx {children} ```