Help us improve
Share bugs, ideas, or general feedback.
From claude-code-expert
Pushes events from Telegram, Discord, and iMessage into running Claude Code sessions, enabling reactions to CI results, chat messages, monitoring alerts, and webhooks. Requires v2.1.80+.
npx claudepluginhub markus41/claude --plugin claude-code-expertHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-code-expert:channels-user-guideThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Push events into a running Claude Code session with channels.
Builds MCP channel servers with Bun/Node/Deno to forward webhooks, alerts, and chat messages from external systems like CI or Discord into Claude Code sessions for event-driven coding.
Claude Channels(텔레그램/디스코드) 자동 셋업. 폰에서 메시지로 Claude Code에 작업 지시 가능. --auto 플래그와 FORGE_OUTPUT=json 프로토콜 공유.
Guides setup of messaging channels (WhatsApp, Telegram, Discord, iMessage, Slack) for external access to Claude Code agents via plugin installs. Shows exact commands, prerequisites, and relaunch steps.
Share bugs, ideas, or general feedback.
Push events into a running Claude Code session with channels. Forward CI results, chat messages, monitoring alerts, and webhook events so Claude can react while you're away. Requires Claude Code v2.1.80+. Research preview — requires claude.ai login.
A channel is an MCP server that pushes events into your running Claude Code session, so Claude can react to things that happen while you're not at the terminal. Channels can be two-way: Claude reads the event and replies back through the same channel, like a chat bridge.
Events only arrive while the session is open. For always-on setups, run Claude in a background process or persistent terminal.
| Feature | What it does | Good for |
|---|---|---|
| Claude Code on the web | Runs tasks in a fresh cloud sandbox, cloned from GitHub | Delegating self-contained async work |
| Claude in Slack | Spawns a web session from an @Claude mention | Starting tasks from team conversation |
| Standard MCP server | Claude queries it during a task; nothing is pushed | On-demand access to read or query |
| Remote Control | Drive your local session from claude.ai or mobile | Steering an in-progress session remotely |
| Channels | Push events from external sources into running session | CI alerts, chat bridges, webhooks, monitoring |
Channels fill the gap by pushing events from non-Claude sources into your already-running local session.
/newbot, copy the token/plugin install telegram@claude-plugins-official/telegram:configure <token> (saves to ~/.claude/channels/telegram/.env)claude --channels plugin:telegram@claude-plugins-official/telegram:access pair <code>/telegram:access policy allowlistbot scope → View Channels, Send Messages, Send Messages in Threads, Read Message History, Attach Files, Add Reactions/plugin install discord@claude-plugins-official/discord:configure <token>claude --channels plugin:discord@claude-plugins-official/discord:access pair <code>/discord:access policy allowlistReads Messages database directly, sends replies through AppleScript. No bot token needed.
/plugin install imessage@claude-plugins-officialclaude --channels plugin:imessage@claude-plugins-official/imessage:access allow +15551234567 (phone or Apple ID email)Localhost demo channel — no authentication, no external services.
/plugin install fakechat@claude-plugins-officialclaude --channels plugin:fakechat@claude-plugins-official<channel source="fakechat"> tagsChannels are especially powerful for CI/CD and infrastructure workflows:
Push build failures, test results, and deployment status directly into your session:
Forward monitoring events so Claude can react:
Use the permission relay for remote deployment approvals:
GitHub Actions → webhook POST to localhost:8788 → Channel Server → Claude Code Session
↓
Claude reads build log,
identifies failure,
proposes fix
Every channel maintains a sender allowlist. Only approved IDs can push messages — everyone else is silently dropped.
Telegram/Discord pairing flow:
/telegram:access pair <code> or /discord:access pair <code>/telegram:access policy allowlistiMessage: Self-chat bypasses automatically. Add others with /imessage:access allow.
.mcp.json isn't enough — server must also be named in --channelsmessage.from.id, not message.chat.id (prevents group chat injection)On Team and Enterprise plans, channels are off by default.
| Setting | Purpose | When not configured |
|---|---|---|
channelsEnabled | Master switch. Must be true for any channel to deliver messages. | Channels blocked |
allowedChannelPlugins | Which plugins can register. Replaces Anthropic-maintained list when set. | Anthropic default list applies |
Admin console: claude.ai → Admin settings → Claude Code → Channels or set channelsEnabled: true in managed settings.
{
"channelsEnabled": true,
"allowedChannelPlugins": [
{ "marketplace": "claude-plugins-official", "plugin": "telegram" },
{ "marketplace": "claude-plugins-official", "plugin": "discord" },
{ "marketplace": "acme-corp-plugins", "plugin": "internal-alerts" }
]
}
When set, replaces the Anthropic allowlist entirely. Leave unset for default. Empty array blocks all plugins from allowlist (but --dangerously-load-development-channels still works).
# Single channel
claude --channels plugin:telegram@claude-plugins-official
# Multiple channels (space-separated)
claude --channels plugin:telegram@claude-plugins-official plugin:fakechat@claude-plugins-official
# Development channel (custom/local)
claude --dangerously-load-development-channels server:my-webhook
--channels flag syntax may change--dangerously-load-development-channels