OpenTag: Free Open-Source Claude Tag Alternative for Slack

Use OpenTag to run a self-hosted AI agent in Slack with your own model credentials, tools, and deployment environment.

OpenTag is an open-source, self-hosted AI agent for Slack, Discord, Telegram, and WhatsApp.

It reads a chat thread, answers questions, calls connected tools, and renders results as rich cards, tables, and charts inside the conversation.

The agent is built on top of @copilotkit/bot, an open SDK from CopilotKit for building chat-platform agents, and follows the same thread-reading and tool-calling workflow as Claude in Slack (Claude Tag) on infrastructure you host yourself.

Posting a bug report or a long decision thread in Slack usually means someone has to read the whole thing, summarize it by hand, and manually create a Linear issue or a Notion doc.

OpenTag automates that directly inside the thread. You mention the bot, it reads the conversation through a read_thread tool, drafts a response or a ticket, and stops at a confirmation button before it writes anything to Linear or Notion.

The same app/ code runs across every supported chat platform. The tool logic, the confirmation gate, and the rendering layer stay identical on Slack, Telegram, or any other connected platform.

Key Features

  • Runs on your own infrastructure with no per-seat cost.
  • Supports Slack, Discord, Telegram, and WhatsApp through swappable platform adapters.
  • Posts rich Block Kit messages, issue cards, charts, diagrams, and tables directly in threads using generative UI.
  • Uses a human-in-the-loop confirm_write gate that blocks any Linear or Notion write until an explicit Approve click.
  • Works with OpenAI, Anthropic, and Google models via a single environment variable.
  • Connects to Linear for querying and filing issues, and to Notion for finding pages and creating documents.
  • Renders charts, Mermaid diagrams, and tables locally inside a headless Chromium browser; no data is sent to external rendering services.
  • Offers durable Redis persistence for approval state and interactive components across server restarts.
  • Controls agent behavior through a single system prompt in runtime.ts; copy the app/ directory to build your own bot.

OpenTag vs. Claude Tag

OpenTag and Claude Tag both allow you to assign work to an AI agent from inside a Slack conversation. Claude Tag runs as Anthropic’s managed product, while OpenTag requires your team to run the bot, agent runtime, model access, and integrations.

AreaOpenTagClaude Tag
HostingRuns in your own environmentRuns as an Anthropic-managed service
Slack setupRequires a Slack app, tokens, and local or hosted runtimeConnects through an organization-managed Slack setup
Model supportWorks with OpenAI, Anthropic, or Google credentialsUses Claude
IntegrationsSupports Linear, Notion, MCP tools, and custom agent logicUses the tools and access configured for the organization
Write actionsLinear and Notion actions pause for Create or Cancel approvalPermissions follow the organization’s Claude Tag configuration
Cost modelMIT-licensed code, plus model usage and infrastructure costsRequires eligible Claude organization access and usage capacity

OpenTag is good for teams that need to change the system prompt, connect their own tools, select a model provider, or keep the runtime inside their own infrastructure. The tradeoff is operational work: Slack app configuration, credentials, deployment, and ongoing maintenance all remain with the team.

Claude Tag works best for organizations already running Claude Team or Enterprise that want an AI agent in Slack without operating the underlying stack. Its managed setup reduces deployment work, but the workflow stays within Anthropic’s product, model, and administrative controls.

How to Use OpenTag

The base setup needs a Slack app, one model-provider key, and two running processes: the agent runtime and the Slack bot.

Start with the Slack workflow below, then add Linear, Notion, or chart rendering for the tasks your team actually uses.

1. Get the CopilotKit Slack starter

OpenTag’s working setup runs from the CopilotKit monorepo. Clone the repository and move into its root directory.

git clone https://github.com/CopilotKit/CopilotKit.git
cd CopilotKit

The OpenTag starter lives in the examples/slack package. Keep the repository root open in your terminal because the runtime and bot commands run from there.

2. Create the Slack app

Open the Slack app builder, select From a manifest, and paste the included OpenTag Slack manifest.

Install the app in the Slack workspace, then collect these two credentials:

  • Bot User OAuth Token (xoxb-...) for SLACK_BOT_TOKEN
  • App-Level Token (xapp-...) with the connections:write scope for SLACK_APP_TOKEN

The manifest already includes Socket Mode and OpenTag’s Slack commands.

3. Add Slack tokens and a model key

Move into the Slack example directory and create the environment file.

cd examples/slack
cp .env.example .env

Open .env and add your Slack credentials plus one supported model-provider key.

SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...
OPENAI_API_KEY=sk-...

Anthropic and Google credentials also work. Replace OPENAI_API_KEY with ANTHROPIC_API_KEY or GOOGLE_API_KEY when using either provider. Add AGENT_MODEL when the bot should use a specific provider and model.

Return to the repository root before installing dependencies.

cd ../..

4. Start the agent runtime and Slack bot

Install the workspace dependencies once.

pnpm install

Open two terminals in the CopilotKit repository root.

Run the agent runtime in the first terminal:

pnpm --filter slack-example runtime

Run the Slack bot in the second terminal:

pnpm --filter slack-example dev

The runtime handles model requests and tool calls. The bot receives Slack events and posts responses into the relevant channel or thread.

5. Assign a task from a Slack thread

Mention the bot in a thread and describe the finished result you need.

@OpenTag summarize this thread and file it as a bug

OpenTag reads the thread before responding. A request to create a Linear issue or Notion page produces a proposed write action with Create and Cancel controls instead of writing immediately.

6. Add integrations for specific workflows

Add integrations only when the Slack bot already covers the basic thread workflow.

WorkflowRequired setupResult in Slack
Linear issue triageAdd LINEAR_API_KEY and, when needed, LINEAR_TEAM_KEYQuery issues, draft bug reports, and approve new Linear tickets
Notion search and writingAdd NOTION_TOKEN and NOTION_MCP_AUTH_TOKEN, then start the Notion serviceFind workspace pages or prepare an approved Notion document
Charts and diagramsInstall Playwright ChromiumTurn uploaded data or thread details into charts, tables, and diagrams

Start the Notion service in a separate terminal when your workflow needs Notion access.

pnpm --filter slack-example notion-mcp

Install Chromium before using chart or diagram rendering.

npx playwright install chromium

Related Resources

Pros

  • Fully self-hosted.
  • No per-seat pricing.
  • Multi-platform support.
  • Human-in-the-loop write gate.
  • Bring your own LLM.
  • Local chart and diagram rendering.

Cons

  • Complex initial setup.
  • Requires Slack app configuration.
  • Needs a paid LLM API key.
  • In-memory state without Redis.

FAQs

Q: Do I need to sign up for anything to run OpenTag?
A: You need a Slack workspace where you can install a custom app, and an API key from a supported model provider. No OpenTag-specific account or signup exists outside of the optional managed service waitlist.

Q: Does OpenTag require Linear or Notion?
A: No. Both integrations are optional. Leaving LINEAR_API_KEY or NOTION_TOKEN blank runs the agent without that connection.

Q: Is data sent to an external service when OpenTag renders a chart?
A: No. Chart, diagram, and table generation runs through a local headless Chromium instance, and the underlying data stays inside your own runtime.

Q: Does OpenTag work with local models like Ollama or vLLM?
A: Yes, if your local model exposes an OpenAI-compatible endpoint. Set AGENT_URL to your endpoint and provide a dummy API key as required by the runtime.

Q: What files can OpenTag analyze?
A: OpenTag accepts images and PDFs through a vision or document-capable model. CSV, JSON, and text files become text input for the agent. It can return tables, charts, and diagrams in the conversation after the rendering requirements are installed.

Leave a Reply

Your email address will not be published. Required fields are marked *

Get the latest & top AI tools sent directly to your email.

Subscribe now to explore the latest & top AI tools and resources, all in one convenient newsletter. No spam, we promise!