← Back to archive

Repo of the Day

CopilotKit/channels-sdk: The open-source SDK for bringing any agent into any chat platform: Slack, Microsoft Teams, Discord, Telegram - with native, Interactive UI.

Published: Aug 30, 2026

Open repository ↗

The open-source SDK for bringing any agent into any chat platform: Slack, Microsoft Teams, Discord, Telegram - with native, Interactive UI. - CopilotKit/channels-sdk

Summary

Channels SDK is an MIT-licensed Node.js library that connects AG-UI-compatible AI agents to team chat platforms — at present Slack and Microsoft Teams — and renders their output as native platform UI (Slack Block Kit, Teams Adaptive Cards). The library splits responsibility cleanly: engineers run the agent, tools, model credentials, and a long-running listener in their own infrastructure, while CopilotKit Intelligence manages platform credentials, ingress, health, and reconnects.

What it is useful for

The SDK is a fit when an engineer wants to expose an existing agent — CopilotKit's BuiltInAgent, LangGraph, CrewAI, Mastra, Pydantic AI, Google ADK, or any other AG-UI-compatible implementation — inside the chat surfaces where teams already work. The README highlights three capabilities: streaming responses into a thread, calling tools and handling files, and pausing for human approval via buttons and choices before the agent acts. The same agent definition can target multiple channels because the UI is described once and rendered per platform.

For studying a complete application, the README points to OpenTag, an open-source self-hosted on-call triage assistant built on Channels that includes a Python LangGraph agent, native Slack and Teams experiences, and approval gates before Linear or Notion writes.

How engineers can use it

The README documents a manual setup path. Prerequisites are Node.js 22 or later and a long-running Node process or container.

  1. Create a Channel in CopilotKit Intelligence and copy the Channel Code and project API key.
  2. Install the package and dev tools:
    npm install @copilotkit/channels @copilotkit/runtime
    npm install --save-dev tsx typescript @types/node
    npm pkg set type=module
    
  3. Implement a listener using createChannel from @copilotkit/channels and createCopilotNodeListener from @copilotkit/runtime/v2/node. Replace makeAgent with any AG-UI-compatible factory; the Channel lifecycle stays the same.
  4. Set the required environment variables — OPENAI_API_KEY, INTELLIGENCE_API_KEY, CHANNEL_CODE, and optionally PORT (defaults to 3000) — then run:
    node --env-file=.env --import tsx channel.ts
    
  5. When Intelligence reports "Online", invite the app into Slack or Teams and mention it; the agent receives the conversation and replies in-thread.

An alternative path is npx copilotkit@latest channels setup, which installs a skill for a coding agent to drive the full setup (project, agent, managed Channel, provider app, runtime) interactively.

Documented scope to be aware of: managed platform connections are currently limited to Slack and Microsoft Teams, with additional platforms described as "on the way". Discord appears in demo imagery but is not listed as currently managed. Provider-side secrets (Slack bot token, signing secret) stay in the engineer's own .env.