Open-source, channel-native agent gateway for Slack. Route team threads to Claude Code, Codex, OpenCode, Docker, HTTP agents, and custom CLIs with policy, approvals, memory, audit logs, and artifacts.
OpenTag
Open-source, channel-native multiplayer AI gateway with shared, auditable team knowledge.
Tag local AI agents into Slack threads, with local execution, visible progress, approvals, audit trails, and pluggable agent runtimes.
English ยท ็ฎไฝไธญๆ ยท User Guide ยท Security ยท Contributing
OpenTag brings AI agents into the place where team work already happens: Slack channels and threads.
Instead of running an agent from one person's terminal and pasting results back into chat, a team can mention @OpenTag, discuss the task in the same thread, approve risky actions when needed, and keep the outcome visible to everyone who has access to that channel.
โจ What You Can Do
- Ask an agent to investigate a bug from a Slack thread.
- Let teammates add context before or during the agent run.
- Route work to different agent backends such as Codex, Claude Code, OpenCode, Docker-based agents, HTTP agents, or custom CLIs.
- Teach OpenTag an explicit team fact, decision, convention, preference, or procedure; corrections are versioned, scoped, sourced, and reused by every configured runtime.
- Use Channel Profiles / Access Bundles so different projects can have different permissions, memories, default agents, and run limits.
- Require approvals before write actions or risky operations.
- Keep a record of sessions, decisions, outputs, and generated artifacts.
๐ฌ How It Feels In Slack
@OpenTag summarize why this deployment failed
@OpenTag check this thread and draft the fix plan
/runtime codex-readonly explain the current project structure
/opentag sessions /opentag approvals /opentag status <session_id>
The agent replies in the same Slack thread, so the work stays connected to the original discussion.
๐ Why OpenTag
Most AI coding and automation tools are built around a single local operator. OpenTag is built around shared channels.
- Shared by default: the conversation, context, and result stay in the team thread.
- Channel-aware: each channel can have its own project, instructions, memory, permissions, default runtime, and run limits.
- Shared team knowledge: correct a fact once and future threads receive the latest active version, with provenance and revision history under your control.
- Agent-flexible: use the agent runtime that fits the task instead of locking the team into one backend.
- Approval-ready: sensitive actions can pause for human review.
- Auditable: sessions, messages, approvals, outputs, and artifacts can be reviewed later.
โก Quick Start
OpenTag requires Node.js >=20.11.0.
npm install
npm run smoke
Try OpenTag locally without Slack:
npm run start:console
Start the Slack gateway with the example configuration:
npm link
opentag init --project . --runtime mock --open-slack
opentag setup launch
opentag doctor --strict
opentag setup launch starts the local daemon when needed and opens a step-by-step setup wizard at http://127.0.0.1:8787/setup. The wizard walks through agent selection, Slack manifest import, local token saving, and final verification.
Run this any time to see the next setup step:
opentag next
For detailed Slack setup, start with:
๐ฆ What Is Included
- Slack gateway for mentions, thread replies, DMs, slash commands, and approvals.
- Local console mode for trying OpenTag without Slack.
- Runtime options for mock runs, Codex, Claude Code, OpenCode, Docker, HTTP agents, and generic CLI agents.
- Channel configuration for default runtime, allowed runtimes, allowed users, approvers, instructions, memory, and workspace roots.
- Versioned Team Knowledge with workspace/private-channel boundaries, source references, archive/restore, and permanent deletion.
- Channel Profiles / Access Bundles for per-channel runtime, memory, approval, and limit boundaries.
- Local storage for sessions, messages, approvals, runs, audit records, and artifacts.
- Admin and integration surfaces for teams that want to build deeper workflows.
๐ User Guide
docs/user-guide/README.md- guide indexdocs/user-guide/01-install.md- install and visual Slack setupdocs/user-guide/02-use-in-slack.md- day-to-day Slack usagedocs/user-guide/03-projects-and-runtimes.md- projects and runtime choicesdocs/user-guide/04-admin-and-safety.md- approvals, safety, and operationsdocs/user-guide/05-troubleshooting.md- common issuesdocs/user-guide/06-faq.md- FAQdocs/gateway-contract.md- connector contract for future Discord/Teams/etc.docs/runtime-adapter-templates.md- generic CLI, HTTP, and MCP-capable runtime templates
docs/developer-guide.md.
๐ Safety Model
OpenTag is meant to make agent work visible and controllable in a team setting.
- Secrets should be supplied through environment variables, not committed to the repository.
- Channels can limit who can use OpenTag and which runtimes are allowed.
- Write-capable or risky actions can require approval.
- Workspaces and filesystem roots can be restricted by configuration.
- Runs, approvals, artifacts, and audit records are kept for review.
SECURITY.md for security reporting and project security guidance.
๐งญ Current Status
OpenTag is an MVP for Slack-first team agent workflows. It is suitable for local trials, internal team experiments, and runtime integration work.
It is not yet a hosted production SaaS. Planned improvements include Slack OAuth installation, stronger multi-instance storage, a web admin UI, hardened sandboxing, and more channel integrations.
๐ License
Apache-2.0. See LICENSE.