---
title: "Channels"
description: "Stop checking things — events come to you."
order: 28
duration: "10 min"
chapter: "07-the-always-on-system"
type: lesson
---

## Events push in, Claude responds

Up to this point, everything has been pull-based. You ask Claude a question, Claude responds. Channels invert this. Events push *into* your Claude session, and Claude responds without you asking.

A Channel connects an external source — Telegram, Discord, iMessage, or your own webhook endpoint — to a running Claude Code session. Under the hood a channel is an MCP server that pushes events instead of waiting to be called. Anthropic ships channel plugins for the common cases; start one with the `--channels` flag:

```bash
claude --channels plugin:telegram@claude-plugins-official
```

Claude sees each incoming event, understands it, and acts using every tool and MCP server already connected.

<div class="callout">
  <div class="callout-label">The Inversion</div>
  <p><strong>Before Channels:</strong> You check QuickBooks, you check email for invoices, you check the supplier portal. You pull information to Claude.</p>
  <p><strong>After Channels:</strong> A new invoice arrives → webhook fires → Claude receives it → Claude categorizes it using your skill → Claude enters it via MCP. You get a summary on Telegram.</p>
</div>

| Channel Source | What Pushes In | What Claude Can Do |
|---------------|---------------|-------------------|
| **Telegram / Discord** | Messages from you or your team | Respond conversationally, execute commands, report status |
| **iMessage** | Texts from your phone | Same session, no extra app — delegate by text message |
| **Webhook endpoint** | Any HTTP POST payload | Parse the payload, take action — Stripe events, form submissions, invoice arrivals |
| **Monitoring (via webhook)** | Sentry error alerts, CI failures | Analyze the error, check recent deploys, find the commit, draft a fix |

> "The shift is from pulling information to having it pushed to you. Once you set up Channels, you stop checking things. Things come to you."
> — Damien Galarza

Cornwall Market: a webhook receives notification when a new invoice PDF arrives in the shared email. Claude is alerted, downloads the attachment, reads the invoice, applies the categorization skill, and enters the data via QuickBooks MCP. Sarah gets a Telegram message: "New invoice from Chen's Produce, $1,240, categorized to 5100. Approved?"

## Check your understanding

Answer in your own words — write it down before opening the key. Your tutor grades against the criteria and generates fresh variants on retries.

**Q1.** Channels invert the model. State the inversion, then rewrite one recurring check from your own week in before/after form.

<details>
<summary>Answer key — attempt every question first</summary>

## Answer key

### Q1

**Model answer:** Inversion: from you pulling information (checking dashboards, opening inboxes) to events pushing into Claude, which acts and reports. Before: 'every morning I check X.' After: 'when X changes, a webhook fires, Claude applies the rules and messages me the outcome plus anything needing approval.'

**Pass criteria:** pull-to-push stated; the before/after uses a real recurring check with Claude acting, not just notifying

</details>


**Next:** [Routines](/mastering-claude/07-the-always-on-system/29-routines/)
