--- title: CopilotChatConfigurationProvider description: "CopilotChatConfigurationProvider API Reference" --- `CopilotChatConfigurationProvider` is a React context provider that manages configuration for chat UI components, including labels, agent ID, and thread ID. It enables customization of all text labels in the chat interface and provides context for chat components to access configuration values. ## What is CopilotChatConfigurationProvider? The CopilotChatConfigurationProvider: - Manages UI labels for all chat components (placeholders, button labels, etc.), allowing for localization or customization of the chat interface. - Lets you to access the current `agentId` and `threadId` - Supports nested configuration with proper inheritance ## Basic Usage Wrap your chat components with the provider to customize configuration: ```tsx import { CopilotChatConfigurationProvider } from "@copilotkit/react-core"; function App() { return ( {/* Your chat components */} ); } ``` ## Props ### threadId `string` **(required)** A unique identifier for the conversation thread. This is used to maintain conversation history and context. ```tsx {children} ``` ### agentId `string` **(optional)** The ID of the agent to use for this chat context. If not provided, defaults to `"default"`. ```tsx {children} ``` ### labels `Partial` **(optional)** Custom labels for chat UI elements. Any labels not provided will use the default values. ```tsx {children} ``` ### children `ReactNode` **(required)** The React components that will have access to the chat configuration context. ## Using with CopilotChat The `CopilotChat` component automatically creates its own `CopilotChatConfigurationProvider` internally. When using `CopilotChat`, you can pass configuration directly as props: ```tsx ``` ### Priority System When `CopilotChat` is used within an existing `CopilotChatConfigurationProvider`, values are merged with the following priority (highest to lowest): 1. Props passed directly to `CopilotChat` 2. Values from the outer `CopilotChatConfigurationProvider` 3. Default values Example: ```tsx ``` ## Accessing Configuration Use the `useCopilotChatConfiguration` hook to access configuration values in your components: ```tsx import { useCopilotChatConfiguration } from "@copilotkit/react-core"; function MyComponent() { const config = useCopilotChatConfiguration(); if (!config) { // No provider found return null; } return (

Agent: {config.agentId}

Thread: {config.threadId}

Labels: {JSON.stringify(config.labels)}

); } ``` Note: The hook returns `null` if no provider is found in the component tree. ## Localization Example The provider is ideal for implementing localization: ```tsx import { useTranslation } from "react-i18next"; function LocalizedChat() { const { t } = useTranslation(); return ( ); } ```