by Anil-matcha
Self-hostable channel-native AI teammate for Slack. Open source alternative to Claude Tag. LLM-agnostic.
# Add to your Claude Code skills
git clone https://github.com/Anil-matcha/open-claude-tagGuides for using ai agents skills like open-claude-tag.
Last scanned: 6/26/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-06-26T07:51:42.309Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}open-claude-tag is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Anil-matcha. Self-hostable channel-native AI teammate for Slack. Open source alternative to Claude Tag. LLM-agnostic. It has 817 GitHub stars.
Yes. open-claude-tag passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/Anil-matcha/open-claude-tag" and add it to your Claude Code skills directory (see the Installation section above).
open-claude-tag is primarily written in Python. It is open-source under Anil-matcha on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh open-claude-tag against similar tools.
No comments yet. Be the first to share your thoughts!
🔥 Claude Tag launched June 23, 2026 — Anthropic's always-on AI teammate that lives in Slack, learns your company, and works autonomously. It's closed, paid, locked to Anthropic, and cloud-only. This is the open-source alternative: self-hostable, LLM-agnostic, and channel-native.
Open Claude Tag is a free, self-hostable AI teammate for Slack that works the way Claude Tag does — one shared agent per channel, persistent memory, skill auto-creation, ambient monitoring — without Anthropic's paywall, without cloud lock-in, without the single-vendor constraint.
Most Slack AI bots are personal assistants — one context per user, isolated DMs. Open Claude Tag flips this: one agent per channel, shared by the whole team. Everyone sees the same context, picks up mid-thread, and the agent knows who said what.
Community: Join Reddit & Discord for discussions and support. Follow the creator for updates.
Open-source AI design agent — alternative to Lovart AI, Runway Agent, Luma Labs Agent → https://github.com/Anil-matcha/Open-AI-Design-Agent
Open-source multi-modal chatbot and Poe alternative → https://github.com/Anil-matcha/Open-Poe-AI
Open-source AI voice agent for sales calls and customer support → https://github.com/Anil-matcha/AI-Voice-Agent
On June 23, 2026, Anthropic released Claude Tag — the first AI that joins Slack as a shared channel teammate rather than a personal DM bot. It went viral. But it stayed closed-source, paid-only, cloud-only, locked to Claude models, and locked to Anthropic's access control model. No self-host, no BYOK for other providers, no custom tool integrations without Anthropic's approval.
Open Claude Tag is the open-source alternative. Same channel-native mental model, none of the lock-in:
MEMORY.md. No noisy append-only logs.SKILL.md capturing what it learned. Institutional knowledge accumulates automatically.| Claude Tag (Anthropic) | OpenClaw / Hermes | Open Claude Tag | |
|---|---|---|---|
| Open source | ❌ | ✅ | ✅ MIT |
| Self-hostable | ❌ | ✅ | ✅ |
| Channel-scoped shared agent | ✅ | ❌ (per-user) | ✅ |
| Multi-user attribution | ✅ | ❌ | ✅ |
| Agent-curated memory | ✅ | Append-only | ✅ Letta inner loop |
| Skill auto-creation | ❌ | ✅ (Hermes) | ✅ |
| Ambient / proactive mode | ✅ | ❌ | ✅ heartbeat cron |
| LLM-agnostic | ❌ (Claude only) | ✅ | ✅ LiteLLM |
| MCP-native tools | ✅ | Partial | ✅ |
| Per-channel model override | ❌ | ❌ | ✅ |
| Per-channel tool scoping | ✅ | ❌ | ✅ tools.toml |
| Token budget controls | ✅ | ❌ | ✅ BUDGET.md |
| Discord / Teams support | ❌ (Slack only) | ✅ | Roadmap |
| Pricing | Enterprise + Team plan | Free | Free |
Every other Slack bot keys sessions on user_id. Open Claude Tag keys sessions on (workspace_id, channel_id). That one change is what makes it feel like a teammate rather than a chatbot.
[#engineering channel]
@alice Can you review the PR for the auth refactor?
@agent Sure. I pulled the PR — looks good overall, one concern:
the session expiry logic on line 42 doesn't handle clock skew.
@bob you mentioned this pattern in the DB migration last week —
does the same fix apply here?
@bob Yeah, add a 5s leeway. Same as auth/session.py:L88
@agent Got it. Adding to MEMORY.md: "session expiry: always add 5s
leeway for clock skew (pattern from auth/session.py:L88)"
Every user in the channel sees the same thread. The agent knows who said what, follows up with the right person, and decides what's worth remembering.
Slack @mention
│
▼
Channel Router ──── (workspace_id + channel_id) → AgentSession
│ ↑ serialized lock: no parallel writes to context
▼
Context Assembler
├── CHANNEL.md (identity, purpose, tone)
├── MEMORY.md (agent-curated facts, always in context)
├── skills/*.md (auto-created playbooks, loaded on semantic match)
└── Last 50 messages (with @username attribution)
│
▼
Agent Loop (ReAct + tool-use via LiteLLM)
├── Tool Registry ← MCP servers defined in tools.toml
├── Built-in tools ← web search, Python runner, channel search
└── Stream reply → Slack thread
│
├── Memory curation turn ← agent decides what to write to MEMORY.md
│ (Letta inner-loop: model gets one extra turn to curate)
│
└── Skill evaluator ← ≥5 tool calls? write SKILL.md
(Hermes pattern: agent authors its own playbooks)
│
▼
SQLite + FTS5 (per-workspace DB, channel-isolated, WAL mode)
│
▼
Ambient Engine (background — Phase 3)
├── Per-channel APScheduler crons
├── Heartbeat evaluator: "anything worth surfacing?"
└── Proactive Slack post if yes, SILENT if no
Layer 1 — Context window (always loaded)
CHANNEL.md + MEMORY.md + active SKILL.md files + last 50 messages
Layer 2 — Session store (SQLite + FTS5, per workspace)
Full message history with user_id, timestamps, thread_ts
Full-text search: "what did we decide about X last month?"
Layer 3 — Semantic recall (Mem0, Phase 2)
Embeddings over key decisions and facts
Namespace = channel_id (fully isolated per channel)
Layer 4 — Skill library (per channel)
Auto-created after complex tasks (≥5 tool calls)
Loaded into context when task description matches
Curated weekly: stale after 30d, archived after 90d
The heartbeat evaluator runs on a configurable cron per channel. It dumps recent activity to the LLM and asks: "anything worth surfacing?" It only posts if there's genuine value — stale threads, approaching deadlines, forgotten questions, spotted risks. Otherwise: SILENT.
The agent can also create its own monitoring tasks via schedule_task(cron, description) — it decides what's worth checking and when.
xapp-...) with connections:write scopeapp_mention and message.channelsapp_mentions:read, channels:history, channels:read, chat:write, reactions:write, users:readxoxb-...)# Clone
git clone https://github.com/Anil-matcha/open-claude-tag
cd open-claude-tag
# Install
pip install -e .
# Configure
cp .env.example .env
Edit .env:
SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...
# Pick one LLM provider:
LLM_MODEL=claude-sonnet-4-6
ANTHROPIC_API_KEY=sk-ant-...
# or: LLM_MODEL=gpt-4o + OPENAI_API_KEY=sk-...
# or: LLM_MODEL=gemini/gemini-2.0-flash + GEMINI_API_KEY=...
# or: LLM_MODEL=ollama/llama3 (no key needed)
Get your channel ID: in Slack, right-click channel name → View channel details → scroll to the bottom.