# correspond > A channel facade for AI agents: read, listen, write and identify the sender over GitHub, email, push notifications, Telegram and a web inbox. ## Pages in this subsection - [correspond](correspond.html.md): correspond: a channel facade for AI agents. - [correspond.authored](correspond.authored.html.md): What the sender of an email actually wrote: their text, apart from quoted replies, forwarded blocks,... - [correspond.channel](correspond.channel.html.md): Serve listeners as a Claude Code channel: new messages pushed into a running session, replies throug... - [correspond.channels](correspond.channels.html.md): The built-in channel adapters, one module each. - [correspond.channels.apprise](correspond.channels.apprise.html.md): Apprise: send-only notifications to the long tail of services (about 155), each named by an alias. - [correspond.channels.discord](correspond.channels.discord.html.md): Discord: a bot reading and posting in channels over REST, through discorddol. - [correspond.channels.gdrive](correspond.channels.gdrive.html.md): Google Drive: a shared folder, read only, where files that a conversation announces arrive. - [correspond.channels.github](correspond.channels.github.html.md): GitHub: issues, pull request conversations and discussions, through the `gh` CLI. - [correspond.channels.github_webhook](correspond.channels.github_webhook.html.md): GitHub webhook receiver: `discussion_comment` deliveries, so listen sees every discussion reply. - [correspond.channels.macos](correspond.channels.macos.html.md): macOS Notification Centre: a banner on this Mac (send only). - [correspond.channels.mail](correspond.channels.mail.html.md): Email: IMAP to read and listen, SMTP to send, with the standard library. - [correspond.channels.ntfy](correspond.channels.ntfy.html.md): ntfy: push notifications to a phone or a desktop through an ntfy server (send only). - [correspond.channels.signal](correspond.channels.signal.html.md): Signal through `signal-cli-rest-api` (JSON-RPC mode): listen, read what was logged, send. - [correspond.channels.slack](correspond.channels.slack.html.md): Slack: drafts in Slack’s own formatting; reading, polling and posting with a token; posting through ... - [correspond.channels.slack_events](correspond.channels.slack_events.html.md): Slack Events API receiver: Slack pushes a channel’s messages, edits and deletions, so listen need no... - [correspond.channels.telegram](correspond.channels.telegram.html.md): Telegram: a bot over the Bot API, with the standard library. - [correspond.channels.webinbox](correspond.channels.webinbox.html.md): The web inbox: a small ASGI collector web pages post reports to, and the channel that reads them. - [correspond.errors](correspond.errors.html.md): What correspond raises, and the vocabulary a failed write reports. - [correspond.idempotency](correspond.idempotency.html.md): Idempotent sends: an `idempotency_key` keeps a message from going out twice. - [correspond.mcp](correspond.mcp.html.md): MCP over stdio: the same tools, for Claude Desktop and other local MCP clients. - [correspond.model](correspond.model.html.md): The data model every channel is described in. - [correspond.notify](correspond.notify.html.md): Make a draft’s `notify` list a property of sending, not a rule a sender can forget. - [correspond.ops](correspond.ops.html.md): The operations: small protocols an adapter implements a subset of, and the verbs that call them. - [correspond.outbound](correspond.outbound.html.md): The `before_send` check: what every write runs, with the conversation’s audience, before anything le... - [correspond.registry](correspond.registry.html.md): Which channels exist: the built-in channel table, the registry built from it, and what each channel ... - [correspond.render](correspond.render.html.md): Turning a tool’s result into terminal output: `(stdout, stderr, exit code)`. - [correspond.routing](correspond.routing.html.md): Deciding what a message is about: a transparent rule chain. - [correspond.settings](correspond.settings.html.md): Where correspond keeps state and reads configuration, and how it finds a secret. - [correspond.stores](correspond.stores.html.md): The state stores: listen cursors, the web inbox’s reports and blobs, the Telegram log. - [correspond.testing](correspond.testing.html.md): An in-memory channel for tests and rehearsals, and `python -m correspond.testing`: the CLI with it r... - [correspond.tools](correspond.tools.html.md): The single source of truth for every surface: plain functions, flat arguments in, JSON-ready dicts o... ## Optional - [Top-level llms.txt](../llms.txt): Complete documentation index.