Channel messages don't wake idle sessions (--channels plugin)

Open 💬 10 comments Opened Apr 6, 2026 by adamfarag

Description

When using --channels plugin:telegram@claude-plugins-official, incoming messages display in the terminal (as ← telegram · user: message) but do not trigger Claude to process them when the session is idle at the prompt. The REPL waits for keyboard input instead of interrupting to handle the MCP channel notification.

Steps to Reproduce

  1. Start Claude Code with --channels plugin:telegram@claude-plugins-official
  2. Let the session complete a task and return to the idle prompt ()
  3. Send a message to the bot via Telegram
  4. The message appears in the terminal as ← telegram · user: ...
  5. Claude does NOT automatically process it — just sits at the prompt

Expected Behavior

Incoming channel messages should interrupt the idle prompt and trigger Claude to process/respond, similar to how they work during active conversations.

Actual Behavior

Messages arrive and display but the REPL stays at the idle prompt. The session only processes the message if the user manually types something (any input wakes it up).

Investigation

The Telegram plugin correctly sends notifications via mcp.notification({ method: 'notifications/claude/channel', ... }) and declares the claude/channel capability. The issue is that the REPL/harness does not actively subscribe to or process MCP channel notifications when idle — it prioritizes stdin over MCP notifications.

Workaround

A background script that monitors tmux for incoming ← telegram lines and sends keystrokes to wake the session. This works but is fragile.

Environment

  • Claude Code v2.1.92
  • macOS 26.3.1
  • Telegram plugin v0.0.4
  • Multiple concurrent sessions via tmux, each with their own bot token

🤖 Generated with Claude Code

View original on GitHub ↗

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