# OpenTag

> Self-hosted Slack and Teams agent for research, charts and approved Linear writes

- Repository: https://github.com/CopilotKit/OpenTag
- Category: AI agents
- Stars: 1,280 · Forks: 138 · Language: Python · License: MIT
- Experience: Some experience
- Page: https://ir.adyog.com/repos/copilotkit/opentag/

OpenTag is a ready-made chat agent for Slack and Microsoft Teams. You mention it in a thread and it replies there. It can turn an uploaded CSV into a native Slack chart, do web research with cited sources, and create Linear or Notion items.

It is the assembled example for CopilotKit's Channels SDK, which connects any AG-UI agent to chat apps. A Node runtime handles the channel connection and a Python LangGraph agent does the work. The README says the agent, persona, tools and UI are each one file or directory, so you can swap in your own agent without touching the channel lifecycle.

Writes to Linear and Notion pause for a human to approve, and the button click resumes the LangGraph run. The quick start uses a managed CopilotKit Intelligence Channel for delivery, state and concurrency. You can instead run your own channel runner on the open-source SDK. Setup needs a CopilotKit account, an OpenAI key and a Slack workspace.

## What it does

- **Native Slack output**: A CSV upload comes back as a Slack chart with a written takeaway, not a wall of numbers.
- **Approval before writes**: Linear and Notion writes stop for a human to approve. Approving resumes the LangGraph run.
- **Cited web research**: Research replies arrive as a table with the links the agent used. Parallel search works without a key by default.
- **Thread trigger rules**: A mention subscribes a thread, and later unmentioned messages in it get replies. Unmentioned messages in fresh conversations are ignored.
- **Two deploy paths**: The repo includes a two-service Railway setup and an AWS ECS Fargate guide, with release images published on ghcr.io.

## What you could build

- Fork it to run an on-call or team assistant in your own Slack workspace.
- Replace the bundled LangGraph agent with your own AG-UI agent and keep the Slack and Teams plumbing.
- Upload a CSV in a thread and get a chart and summary back.
- Ask for a cited research brief and turn it into a Linear issue after approving it.
- Deploy a chat agent to Railway or AWS to see what a production setup looks like.

## Who it's for

Developers comfortable with Node, Python and Slack app setup who want a working base for a chat agent; Slack app configuration is the fiddly part to learn first.

## Get started

Install Node 22+, pnpm, Python 3.12 and uv, then run pnpm install. Create the managed Channel with the CopilotKit CLI before creating the Slack app, copy .env.example to .env and fill in your keys, start with pnpm dev, and invite the bot to a channel.

```
pnpm install
```
```
npx --yes copilotkit@latest channels setup
```
```
pnpm dev
```

Tags: slack, microsoft-teams, langgraph, ag-ui, chatbot
