--channels prints 'Listening' banner but never spawns MCP server child processes

Resolved 💬 4 comments Opened Mar 26, 2026 by michaelstancil Closed Apr 26, 2026

Description

When launching Claude Code with --channels, the green "Listening for channel messages from: ..." banner appears, but the plugin MCP servers are never actually spawned as child processes. No inbound messages are received in the session.

Repro steps

  1. Install discord and imessage channel plugins from claude-plugins-official marketplace
  2. Configure ~/.claude/channels/discord/.env and ~/.claude/channels/imessage/access.json
  3. Launch:

``
claude --channels plugin:discord@claude-plugins-official --channels plugin:imessage@claude-plugins-official
``

  1. Observe the green banner: "Listening for channel messages from: plugin:discord@claude-plugins-official, plugin:imessage@claude-plugins-official"
  2. Send a message from an allowlisted Discord user or iMessage number
  3. Message never arrives in session

Diagnosis

  • ps aux shows the only child of the claude process is caffeinate. No bun processes running the plugin server.ts files.
  • Both plugins start and run correctly when launched manually with the exact command from their .mcp.json:

``
bun run --cwd <plugin_root> --shell=bun --silent start
`
iMessage server outputs healthy startup:
`
imessage channel: self-chat addresses: +1XXXXXXXXXX, user@gmail.com
imessage channel: watching chat.db (watermark=531600)
``
Discord server also starts cleanly with no errors.

  • Plugin configs are correct:
  • .claude-plugin/plugin.json has "channel" in keywords
  • .mcp.json has valid mcpServers entry with command: "bun"
  • access.json allowlists are populated
  • bun is in PATH and functional

Expected behavior

Claude Code should spawn the MCP servers as child processes after printing the "Listening" banner, connect via stdio, and relay inbound notifications/claude/channel events into the session.

Actual behavior

Banner prints but no child processes are spawned. Messages are silently dropped. No error output visible in the terminal.

Environment

  • Claude Code: 2.1.84
  • macOS 26.4 (Darwin 25.4.0, arm64, Mac Mini M4)
  • Bun: 1.3.11
  • Plugins: discord@0.0.4, imessage@0.0.1 from claude-plugins-official
  • Full Disk Access: granted

Note

No stderr log is produced by Claude Code for the channel spawn failure. Redirecting stderr (2>/tmp/log) may help capture what's happening internally.

View original on GitHub ↗

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