showcase/shell-docs/src/content/reference/channels/functions/createChannel.mdx
createChannel(options) creates the provider-neutral Channel registered with
CopilotRuntime({ channels }).
function createChannel<TStateSchema>(
options: CreateChannelOptions<TStateSchema>,
): Channel<ThreadStateOf<TStateSchema>>;
Import it from the umbrella package:
import { createChannel } from "@copilotkit/channels";
const channel = createChannel({
name: "support-slack",
provider: "slack",
agent: makeAgent,
tools: [getIncident],
context: [
{
description: "Response style",
value: "Put the next action first.",
},
],
});
channel.onMessage(async ({ thread, message }) => {
await thread.runAgent({ prompt: message.text });
});
Use provider: "teams" with the exact Code of the corresponding Teams Channel
in Intelligence. Slack and Teams are production-ready managed providers.
| Option | Type | Notes |
|---|---|---|
name | string | Required for managed delivery. Must match the project-unique Intelligence Code. |
provider | "slack" | "teams" | Managed provider. Defaults to Slack when omitted; set it explicitly. |
showToolStatus | boolean | Managed Slack hides tool-call progress by default. Set true to show it; tool history remains available in Intelligence either way. |
agent | AbstractAgent | (threadId) => AbstractAgent | Prefer a factory; a singleton is isolated per run via clone(). |
tools | ChannelTool[] | Channel-level typed tools. |
context | ContextEntry[] | Stable context added to every agent run. |
components | ChannelComponent[] | Named JSX components used to reconstruct callbacks. |
commands | ChannelCommand[] | Declared commands routed from provider ingress. |
store | StoreConfig | State, persistence, turn concurrency (parallel default), transcripts, and dedup. |
adapters | PlatformAdapter[] | Developer-owned direct transports. Do not mix them with managed activation on one Channel. |
The managed runtime validates name as lowercase kebab-case, 3–64 characters,
not equal to channels, and unique within the Runtime.
The returned Channel supports:
onMessage and onMentiononInterruptonInteractiononCommandonReactiononThreadStartedonModalSubmit and onModalClose for adapters that support modalstool to add a tool before the Channel startsSee Channel for handler signatures and
StoreConfig for persistence.