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).
| Mechanism | What It Does | When It Fires | Best For |
|---|---|---|---|
| Hooks | Execute shell commands synchronously at session lifecycle events | Specific session events: start, stop, tool use, error | Local automation: update a status file, send a desktop notification, log to a file |
| Dispatch notifications | Signal job completion to a webhook or notification endpoint | Job completion (success or failure) | CI/CD pipelines: trigger downstream work when an async job finishes |
| Channels | Stream continuous structured event feed to external platforms | Every event: tool calls, responses, errors, completions — in real time | Team observability, mobile monitoring, compliance audit trails, custom dashboards |
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.