Run your own AI agent inside Slack: it reads a thread, answers, calls your tools, and renders rich results right in the conversation. Think of it as having Claude in your workspace, except open-source and self-hosted: you own the runtime, bring your own model, and wire it to your own tools. No per-seat pricing, no lock-in.
It's built on β CopilotKit's open SDK for chat-platform agents (Slack first; the same code also runs on Discord, Telegram, and WhatsApp). Clone it, point it at your model and tools, and you own the whole stack.
@copilotkit/bot
demo-slack-opentag.mp4 #
** Watch the demo** (~50s) β an OpenTag agent working a Slack thread: it renders a breakdown, a table, and a bar chart inline (
generative UI) and files a ticket only after an
Approve gate (
human-in-the-loop).
Two ways to run it:host it yourselfwith the open-source SDK below β or skip the ops andcoming soon from CopilotKit.[sign up for the managed service β]
OpenTag ships inside the CopilotKit monorepo as a
first-class example (examples/slack
). That's the dependable way to run it today while the
bot SDK packages finish publishing to npm. (A standalone npm install
from this repo lights up the moment they land β see setup.md.)
You'll run two processes: the agent (the LLM backend) and the bot (the Slack connection) β and set three secrets.
1. Create a Slack app. At api.slack.com/apps β From a manifest β paste slack-app-manifest.yaml. Install it, then grab the
Bot User OAuth Token(
xoxb-β¦
) and an App-Level Token(
xapp-β¦
, with the
connections:write
scope). Step-by-step in setup.md.
2. Set three secrets in .env
(cp .env.example .env
):
SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...
OPENAI_API_KEY=sk-... # or ANTHROPIC_API_KEY β bring your own model
3. Run it from the CopilotKit monorepo root:
pnpm install
pnpm --filter slack-example runtime # the agent backend, on :8200
pnpm --filter slack-example dev # the bot
4. Talk to it. @mention the bot in any channel thread:
@OpenTag summarize this thread and file it as a bug
That's the whole loop. To wire up Linear, Notion, inline charts, Redis persistence, or to run on Discord / Telegram / WhatsApp, see ** setup.md**.
We won't lie to you, though. Setting up hosting for chat agents is not easy. To skip all of that heartache, go join the waitlist for the CopilotKit managed service hosted on our Intelligence platform.
OpenTag is deliberately small and hackable:
Change what it does. The agent's behavior is steered by a single system prompt inβ rewrite it and you have a different agent.runtime.ts
Copy It's the platform-agnostic bot (tools, components, the human-in-the-loop gate).app/
to start your own bot.runtime.ts
is the agent backend: one CopilotKitBuiltInAgent
(an LLM + optional MCP tools β no Python, no LangGraph), served over AG-UI.One platform, or all of them.createBot
takes an array of adapters; set the secrets for whichever platform(s) you want and the bot starts an adapter for each.
The full architecture, the file-by-file map, and every integration live in ** setup.md**.
Self-hosting means you run and scale the runtime, persistence, and inspection tooling yourself. A managed CopilotKit service is on its way. It's the same agent, without the ops: durable threads, persistence, hosted inspection, and agents that improve from feedback (Continuous Learning from Human Feedback).
β be first in when the managed service opens.Join the waitlist ββ building something real on this? We'd love to help you ship it.Talk to an engineer β
The ** CopilotKit Slack quickstart** is the canonical guide to building a Slack agent β read it alongside this starter. Detailed setup and configuration lives in
.