OpenTag: an open-source alternative to Claude in Slack
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/bot —
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.
See it in action
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 yourself with the open-source SDK below — or skip the ops and sign up for the managed service → coming soon from CopilotKit.
Quick start (self-hosted)
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 model3. 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.
Make it your own
OpenTag is deliberately small and hackable:
- Change what it does. The agent's behavior is steered by a single system prompt in
runtime.ts— rewrite it and you have a different agent. - Copy
app/to start your own bot. It's the platform-agnostic bot (tools, components, the human-in-the-loop gate).runtime.tsis the agent backend: one CopilotKitBuiltInAgent(an LLM + optional MCP tools — no Python, no LangGraph), served over AG-UI. - One platform, or all of them.
createBottakes 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.
Don't want to host it yourself?
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).
- Join the waitlist → — be first in when the managed service opens.
- Talk to an engineer → — building something real on this? We'd love to help you ship it.
Learn more
The CopilotKit Slack quickstart is the canonical guide to building a Slack agent — read it alongside this starter. Detailed setup and configuration lives in setup.md.
License
MIT — see LICENSE.

























