Automation & Cloud Execution/Remote Control, Dispatch & Channels
Advanced12 min

Channels — Streaming Session Events to Telegram, Discord, and iMessage

Channels provides a continuous structured feed of everything Claude Code is doing — every tool call, response, error, and completion — streamed in near real-time to Telegram, Discord, iMessage, or a custom consumer. This is deep observability, not just completion notification.

Quick Reference

  • Channels streams every session event: tool calls, responses, errors, completions — not just final results
  • Officially supported platforms (March 2026): Telegram, Discord, iMessage
  • Two-way on Telegram: reply from Telegram to inject messages into the Claude session
  • Discord webhooks: events → webhook → #claude-updates channel
  • Event filtering: all events, errors only, tool completions only, or custom filter expression
  • Build custom consumers via the Channels API to pipe events to any system
  • Channels vs MCP push: MCP pushes IN (external → Claude acts); Channels streams OUT (Claude → humans observe)

Channels vs. Hooks vs. Dispatch Notifications

Claude Code has three distinct mechanisms for surfacing what's happening during a session, and they serve different purposes at different points in the execution lifecycle. Confusing them leads to either over-engineering (setting up Channels when a hook would do) or under-engineering (using hooks when you need continuous observability).

MechanismWhat It DoesWhen It FiresBest For
HooksExecute shell commands synchronously at session lifecycle eventsSpecific session events: start, stop, tool use, errorLocal automation: update a status file, send a desktop notification, log to a file
Dispatch notificationsSignal job completion to a webhook or notification endpointJob completion (success or failure)CI/CD pipelines: trigger downstream work when an async job finishes
ChannelsStream continuous structured event feed to external platformsEvery event: tool calls, responses, errors, completions — in real timeTeam observability, mobile monitoring, compliance audit trails, custom dashboards
Channels Is Continuous, Not Triggered

The fundamental difference between Channels and hooks/notifications is continuity. Hooks fire at specific moments. Dispatch notifications fire once at completion. Channels streams every event throughout the session's entire lifecycle. If you need to know that a session finished, hooks or Dispatch notifications are simpler. If you need to know everything that happened while it was running, Channels is the right tool.