Support custom channel plugins beyond the hard-coded allowlist

Resolved 💬 3 comments Opened Apr 11, 2026 by pwelty Closed May 28, 2026

Problem

The --channels flag only accepts plugins from a hard-coded allowlist (discord, telegram, fakechat). Custom MCP plugins that correctly implement the notifications/claude/channel protocol and declare experimental: { 'claude/channel': {} } are rejected with:

plugin:irc@synaxis-plugins · not on the approved channels allowlist

Use case

I run a fleet of ~11 Claude Code sessions coordinating via a shared chat channel. I built a custom IRC channel plugin (ngircd server on my tailnet, MCP server in TypeScript/Bun, same architecture as the Discord plugin) so the fleet can communicate over a lightweight, terminal-native protocol instead of Discord.

The plugin works — it connects, sends/receives messages, uses the same notifications/claude/channel notification method. But the Channels runtime rejects it because it's not on the internal allowlist.

What I've tried

  • Installing from a custom marketplace (synaxis-plugins) — rejected
  • Placing the plugin in claude-plugins-official/external_plugins/ locally — rejected
  • Loading via --mcp-config — MCP server starts but channel notifications are silently dropped without --channels

Request

Allow users to approve custom channel plugins, either via:

  • A setting in settings.json (e.g. approvedChannelPlugins)
  • A CLI flag (e.g. --allow-custom-channels)
  • Trusting any installed+enabled plugin that declares the claude/channel capability

I understand this is a research preview and security matters for channels. A flag like --dangerously-allow-custom-channels that requires explicit opt-in would be fine.

References

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗