Skip to content
DMarketer Tayeeb – Digital Marketing Expert in Bangalore | SEO, SEM & SMM Expert
Contact

Claude Code Channels: Auth, iMessage and Setup

Short answer: Claude Code Channels is a research-preview feature that pushes messages, alerts, and webhooks into an already-running Claude Code session. The current English documentation says Channels can use either a claude.ai login or a Claude Console API key. The built-in preview plugins currently listed are Telegram, Discord, and iMessage. Channels are not available on Amazon Bedrock, Google Cloud Agent Platform, or Microsoft Foundry. Team and Enterprise organisations need an administrator to enable them, and every user still opts a plugin into a session with --channels.

This corrects an important statement in the earlier version of this guide: Console/API-key authentication is no longer unsupported. The Claude Code changelog records Console API-key support for --channels in version 2.1.128 on May 4, 2026. The current documentation also lists iMessage and explains the different defaults for Team/Enterprise and managed Console organisations.

Updated August 24, 2026. Channels remain a research preview, so commands, plugin availability, and the protocol can change.

Claude Code Channels at a glance

QuestionCurrent answer
What does a Channel do?Pushes an event into a running local Claude Code session through an MCP server. Some channels can send Claude’s reply back through the same platform.
Which authentication methods work?A claude.ai account or a Claude Console API key. Console organisations using managed settings must set channelsEnabled: true.
Which built-in plugins are listed?Telegram, Discord, and iMessage. Each supported plugin requires Bun.
Does it run when Claude Code is closed?No. Events arrive only while the session is open. An always-on arrangement needs a background process or persistent terminal.
Where is it unavailable?Amazon Bedrock, Google Cloud Agent Platform, and Microsoft Foundry.
What protects a chat bridge?Sender pairing or an allowlist, the per-session --channels opt-in, and any organisation-level plugin policy.

These points come from Anthropic’s current Channels documentation. They describe product availability and configuration, not a guarantee of response quality, uptime, or unattended safety.

What changed since the original Channels guide

The first version of this article was published on March 22, 2026, shortly after Channels appeared. The implementation boundary has moved since then. The dates below separate the Claude Code release events from this article’s later discovery and refresh.

DateEventWhy it matters
March 19, 2026Claude Code v2.1.80 added --channels as a research preview.This is the original feature boundary.
March 20, 2026v2.1.81 added permission relay and fixed a Team/Enterprise bypass.Remote approval became part of the documented Channel workflow for servers that declare the capability.
March 22, 2026The original DMT Channels guide was published.Its Console/API-key statement and two-plugin list were correct only for that earlier state.
May 4, 2026v2.1.128 made --channels work with Console API-key authentication.This is the dated correction to the old “API key is not supported” claim.
August 24, 2026The current English docs accessed for this refresh list Telegram, Discord, and iMessage, plus current managed-setting defaults.This is a documentation observation, not a claim that iMessage launched on this date.

The official Claude Code changelog is the source for the dated version changes. A changelog search did not establish a separate exact introduction date for the iMessage plugin, so this guide describes it as included in the current preview documentation rather than assigning it an invented launch date.

Authentication and platform availability

Claude.ai authentication

Users can authenticate Claude Code through claude.ai and then opt a supported plugin into a session. Pro and Max users who are not in an organisation skip the organisation managed-setting checks described below. The feature remains a local-session workflow: the login does not turn Channels into a hosted, always-on bot.

Claude Console API-key authentication

Console API keys are supported. The changelog’s v2.1.128 entry specifically says that --channels works with Console API-key authentication. The same entry warns that Console organisations with managed settings must set channelsEnabled: true to enable the feature.

That is a narrower and safer statement than “any API key works everywhere.” Use the current Claude Code authentication guidance for the account and runtime you operate, and do not infer support for a third-party gateway or another cloud distribution unless its own documentation says so.

Cloud distributions that are not supported

The current Channels page explicitly says the preview is not available on Amazon Bedrock, Google Cloud Agent Platform, or Microsoft Foundry. Do not promise a Channel-based workflow to a client just because that client can run another Claude Code or Anthropic-compatible workflow on one of those platforms.

The session still needs an explicit opt-in

Installing a plugin or placing an MCP server in .mcp.json is not enough to receive pushed messages. The server must be named in the session’s --channels argument, and the plugin must be on the effective allowlist. A Channel is attached to the session you start; it is not a separate cloud inbox.

Supported built-in channels

The current English documentation lists three built-in preview plugins. All three require Bun. Their setup models differ, especially iMessage.

PluginWhat you configureImportant limitation
TelegramCreate a bot with BotFather, install the official plugin, configure the bot token, launch with --channels, pair your sender, then use an allowlist.Telegram messages reach Claude only while the channel is active.
DiscordCreate a bot, enable Message Content Intent, invite it with the documented permissions, configure its token, launch with --channels, pair your account, then use an allowlist.The bot’s server permissions and the Claude sender allowlist are separate controls.
iMessageOn macOS, grant Full Disk Access to the terminal that launches Bun, install the plugin, launch with --channels, and text yourself.It reads the Messages database and sends through AppleScript; it needs macOS and has no bot-token setup.

Telegram setup

  1. Create a Telegram bot with BotFather and save its token.
  2. Install the official plugin:
    /plugin install telegram@claude-plugins-official
  3. Configure the token:
    /telegram:configure <token>
  4. Exit and restart Claude Code with the plugin enabled:
    claude --channels plugin:telegram@claude-plugins-official
  5. Message the bot, enter the pairing code in Claude Code, and lock access:
    /telegram:access pair <code>
    /telegram:access policy allowlist

The current docs say the token is saved under ~/.claude/channels/telegram/.env when configured through the plugin. Treat bot tokens as secrets: do not paste them into a public issue, commit them, or put them in a marketing brief.

Discord setup

  1. Create a Discord application and bot, reset its token, and enable Message Content Intent.
  2. Invite the bot with the permissions documented by Anthropic: View Channels, Send Messages, Send Messages in Threads, Read Message History, Attach Files, and Add Reactions.
  3. Install and configure the plugin:
    /plugin install discord@claude-plugins-official
    /discord:configure <token>
  4. Restart with:
    claude --channels plugin:discord@claude-plugins-official
  5. DM the bot, pair the returned code, and switch to an allowlist:
    /discord:access pair <code>
    /discord:access policy allowlist

Discord’s server permissions let the bot see and reply in the intended places; the Claude plugin’s pairing and allowlist determine which senders may inject messages. Configure both deliberately.

iMessage setup on macOS

iMessage is a materially different integration. The plugin reads the local Messages database at ~/Library/Messages/chat.db and sends replies through AppleScript. Anthropic’s docs say it needs macOS, Full Disk Access for the terminal or app that launches Bun, and no bot token or external service.

  1. Grant Full Disk Access to the terminal or IDE that will launch Bun.
  2. Install the plugin:
    /plugin install imessage@claude-plugins-official
  3. Restart with:
    claude --channels plugin:imessage@claude-plugins-official
  4. Text yourself from a device signed into the same Apple ID. Self-chat bypasses the access check for the initial test.
  5. Allow another sender only when needed:
    /imessage:access allow +15551234567

Use a phone number in international format or an Apple ID email when adding a sender. Do not describe this as a Windows or Linux setup: the current official page documents the local macOS Messages database and AppleScript path only.

A safe first-run checklist

For a marketing or agency team, the first test should prove routing and access control—not automate a consequential account change.

  1. Choose the authentication path. Record whether the session uses claude.ai or a Console API key and check whether an organisation manages settings.
  2. Check platform support. Stop if the runtime is Amazon Bedrock, Google Cloud Agent Platform, or Microsoft Foundry.
  3. Install Bun and the official plugin. Verify the plugin name and installation scope in the Claude Code output.
  4. Configure credentials outside the article or repository. Use the plugin’s environment file or documented environment variable and protect its permissions.
  5. Launch only the channel you intend to test. Use the exact --channels plugin name and confirm the startup notice.
  6. Pair one known sender. Move immediately to an allowlist; do not treat a successful first message as a completed access-control review.
  7. Test a read-only request. Ask Claude to summarize a local, non-sensitive fixture or inspect a known test log. Do not start with WordPress publishing, ad changes, billing, deletion, or deployment.
  8. Close the session and test the boundary. Confirm that no new event is processed after the session is closed. If an always-on workflow is required, document the process supervisor, logs, restart policy, and approval model separately.

What this enables for marketing operations

Channels are a transport and session feature, not a promise that Claude can safely operate every marketing account. The following are proposed low-risk patterns for a team to pilot; they are DMT workflow recommendations, not Anthropic product guarantees.

TriggerUseful first actionKeep behind approval
CI or content-build failureSend the error context to a running session and ask for a concise diagnosis or a draft fix list.Merge, deploy, or change production configuration.
Analytics or monitoring alertInspect an approved read-only export and return a dated anomaly summary with evidence links.Budget changes, conversion-definition changes, or CRM updates.
Content QA requestReview a draft for claims, links, headings, and missing source notes, then return a checklist.Publishing, deleting, or overwriting the canonical page.
Campaign-operations questionAnswer from a controlled report or fixture and state the report timestamp.Changing bids, audiences, targeting, budgets, or payment settings.

A mobile reply can be convenient, but convenience is not authorisation. A channel should make the request visible and route it to the session; the team’s normal approval and audit controls still decide whether a tool call runs.

Security, allowlists, and permission relay

Sender access is the first gate

The official docs describe an allowlist for approved senders. Telegram and Discord bootstrap it through pairing. iMessage treats texting yourself as the initial trusted path and lets you add other contacts by handle. Keep the allowlist small, remove leavers, and treat every allowed sender as someone who may influence the local session.

--channels is a session gate

Only the plugins named in --channels register for that session. A server being present in .mcp.json does not, by itself, allow it to push messages. This makes the launch command part of the review record: save the exact plugin name and the project directory used for the test.

Organisation controls

Team and Enterprise administrators can control availability with two managed settings. The current documentation describes these defaults:

  • channelsEnabled is the master switch. Team and Enterprise channels are blocked until an Owner enables them. For a Console organisation with managed settings, set it to true; a Console organisation without managed settings permits Channels by default.
  • allowedChannelPlugins restricts which plugins may register. An organisation can replace the Anthropic-maintained allowlist with its own approved entries.

Even after an administrator enables Channels, a user must still opt the plugin into a session with --channels. An administrator setting does not create an unattended bot.

{
  "channelsEnabled": true,
  "allowedChannelPlugins": [
    { "marketplace": "claude-plugins-official", "plugin": "telegram" },
    { "marketplace": "claude-plugins-official", "plugin": "discord" }
  ]
}

If the organisation sets an empty allowedChannelPlugins array, it blocks the normal approved plugin list. The current docs also describe a separate development flag for testing custom channels; do not use that flag as a production approval shortcut.

Permission relay needs an explicit human policy

Some channel servers can declare a permission-relay capability that forwards tool approval prompts to the phone or chat. The Claude Code changelog introduced permission relay in v2.1.81. The current security guidance says the sender allowlist also gates who may approve or deny those prompts.

That means a permission-relay sender is not merely a person who can ask for a status update. They may be able to approve Bash, Write, or Edit work in the local session. Limit the allowlist to trusted operators, keep tool permissions conservative, and document which actions always require terminal review. Project trust and MCP consent are not replaced by a chat message.

Do not begin a marketing pilot with --dangerously-skip-permissions. If a team later considers unattended operation, it needs a separate threat model, process isolation, secret-handling review, audit trail, and rollback plan.

Running-session and always-on limits

Channels push into a session that already exists. They do not automatically create a fresh cloud session for every message, and they do not receive events after the process exits. The official comparison describes this as the gap between Channels and features such as Claude Code on the web, Claude in Slack, standard MCP querying, and Remote Control.

For a recurring alert workflow, a team therefore has two choices:

  • Keep a local session alive under a controlled process supervisor, with logs, restart limits, and a clear approval boundary.
  • Use a different product or integration designed to create or poll work independently, if the job must continue when no local session is running.

Do not market the first choice as a hosted 24/7 automation without documenting what machine holds the files, what credentials it can read, what happens after a crash, and who can approve a tool call.

Frequently asked questions

Does Claude Code Channels support a Console API key?

Yes, according to the current English docs and the v2.1.128 changelog entry dated May 4, 2026. A Console organisation using managed settings must set channelsEnabled: true. This supersedes the old statement in the March article that API-key authentication was unsupported.

Are Telegram and Discord still supported?

Yes. They remain in the current built-in plugin list. The list is no longer limited to those two because the current docs also include iMessage.

Can I use iMessage on Windows?

The current official setup is macOS-specific: it reads the local Messages database and sends through AppleScript. Do not treat it as a documented Windows or Linux integration.

Is iMessage a hosted Anthropic service?

No. The documented plugin uses the local macOS Messages database and AppleScript, and does not require a bot token or external service. Full Disk Access and a careful sender policy are still important.

Can a Team or Enterprise user turn Channels on without an Owner?

No. The current docs say Team and Enterprise channels are blocked until an Owner enables them. Managed settings can also restrict the allowed plugin list.

Can I use Channels through Bedrock, Google Cloud Agent Platform, or Microsoft Foundry?

The current Channels page says no for all three. Check Anthropic and the relevant cloud documentation again before planning a future migration; preview availability can change.

Will a Channel keep working after I close Claude Code?

No. Events arrive while the session is open. A persistent terminal or background process can keep a session alive, but that changes the operational and security requirements.

Can a message approve a tool call remotely?

Some channel servers can expose permission relay. If enabled, the allowlist determines who can reach that approval path. Treat those senders as operators with meaningful authority, not as ordinary chat participants.

Refresh checklist for the original article

If you are maintaining an older Claude Code Channels guide, update it in this order:

  1. Remove any sentence that says Console/API-key authentication is unsupported.
  2. Add the May 4, 2026 v2.1.128 changelog date and link the current changelog.
  3. Replace “Telegram and Discord are the only official plugins” with the current documented list and the iMessage macOS caveat.
  4. Add the unavailable cloud distributions: Amazon Bedrock, Google Cloud Agent Platform, and Microsoft Foundry.
  5. Explain the Team/Enterprise blocked-by-default path and the managed Console default.
  6. Keep the running-session warning, pairing/allowlist steps, and permission-relay risk visible near the setup commands.
  7. Use a dated “last checked” note. Do not turn the documentation access date into an invented product release date.

Channels are one way to extend a local agent workflow. For adjacent decisions, see the DMT guides on Claude computer use, browser use, Skills, and Files for marketing teams, AI agent harnesses and production controls, OpenAI agent plugins, Skills, and MCP, Grok’s cloud-computer agent, and the GPT-5.6 model-selection guide. Those pages answer different reader jobs; none replaces the Channels setup and authentication correction here.

About the author and editorial process

Tayeeb Khan is DMT’s named author and a digital-marketing practitioner. This refresh was checked against the current English Anthropic Channels documentation and changelog, plus the authenticated DMT WordPress inventory. It does not claim hands-on testing of every channel, account, operating system, or cloud distribution; setup and availability statements are attributed to the linked official sources.

Sources and visual credit

Primary sources checked for this refresh:

Visual credit: The tables in this article are original DMT editorial synthesis of the linked Anthropic documentation and changelog. No external image was copied, generated, or uploaded for this refresh.

Share this article

Written by

Tayeeb Khan

Tayeeb Khan is a digital marketing strategist, SEO specialist, and the founder of Digital Marketer Tayeeb (DMT). Backed by an engineering degree, certifications in Google and Meta advertising, and over a decade of hands-on experience growing startups, Tayeeb bridges the gap between technical infrastructure and marketing execution. His insights on SEO and AI-driven marketing are strictly practitioner-first—built on real tests, real campaigns, and real results. Connect on LinkedIn or via Email.

Leave a Comment

Your email address will not be published. Required fields are marked *

Stay ahead of the curve

Get actionable digital marketing, SEO, and AI insights delivered to your inbox. No fluff, just value.

No spam. Unsubscribe anytime.