Channels (Telegram): Claude doesn't automatically call the reply tool for inbound channel messages — responds only in terminal

Status Open
Maintainer reply None cached
Activity 1 comment · opened Sep 17, 2026

Environment:

  • Claude Code CLI (latest, updated 2026-09-17)
  • Plugin: telegram@claude-plugins-official
  • Launched with: claude --channels plugin:telegram@claude-plugins-official

Steps to reproduce:

  1. Set up the Telegram channel plugin per docs (code.claude.com/docs/en/channels): install plugin, configure token, pair account, restart with --channels.
  2. Confirm plugin:telegram:telegram MCP server is connected (/mcp).
  3. Send a DM to the paired bot from Telegram (e.g. "привет").

Expected behavior (per docs):

"Claude reads it, does the work, and calls fakechat's reply tool ... The terminal shows the tool call and a confirmation (like 'sent'), and the actual reply appears on the other platform."

Actual behavior:

  • Inbound message correctly appears in the terminal as ← telegram · <username>: <text>.
  • Claude generates a plain-text response and prints it directly in the terminal (like a normal chat turn) — it does not call the reply tool.
  • No message is delivered back to Telegram.
  • The plugin:telegram:telegram MCP server does expose a working reply tool — confirmed by manually asking Claude in the same session: "отправь через telegram-инструмент сообщение 'тест' в мой чат" → Claude called plugin:telegram:telegram → message arrived in Telegram successfully.

Conclusion: The reply tool itself works correctly. The issue is that Claude does not automatically invoke it in response to inbound <channel source="plugin:telegram:telegram"> events — it needs to be explicitly told to use the tool each time, which defeats the purpose of the channel bridge.

Workaround found: Explicitly instructing the session ("on every inbound telegram message, reply using the reply tool with the same chat_id") makes it work for the rest of that session, but this isn't persistent and isn't the documented default behavior.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗