Push events into a running session with channels changedchannels
Nearest release: v2.1.314, published 17 hours before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Upstream edited this page at 30 Oct 2026 17:44 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 30 Oct 2026 18:07 UTC.
Upstream edited
Recorded here
Lines+194added
Lines−194removed
From line
20
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits20to this page, all time
The whole hunk
from line 20, old and new numbered
/
from line 20
2020
2121Each supported channel is a plugin that requires [Bun](https://bun.sh). For a hands-on demo of the plugin flow before connecting a real platform, try the [fakechat quickstart](#quickstart).
2222
23**Telegram**
24
25View the full [Telegram plugin source](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/telegram).
26
27**1. Create a Telegram bot**
28
29Open [BotFather](https://t.me/BotFather) in Telegram and send `/newbot`. Give it a display name and a unique username ending in `bot`. Copy the token BotFather returns.
30
31**2. Install the plugin**
32
33Start Claude Code by running `claude` in your terminal, then enter this at its prompt:
34
35```
36/plugin install telegram@claude-plugins-official
37```
38
39If the install fails, match the message Claude Code reports:
40
41* `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install.
42* `Plugin "<name>" not found in marketplace "claude-plugins-official"`: your local copy of the marketplace catalog may be out of date. Refresh it with `/plugin marketplace update claude-plugins-official`, then retry the install. If the retry prints the same message, see [Plugin not found in marketplace](https://code.claude.com/docs/en/plugins/troubleshooting.md#plugin-not-found-in-marketplace).
43
44When the install asks for an installation scope, choose the user scope option so the plugin is available across all your projects. Check the install summary: if it reports `Run /reload-plugins to apply.`, see [Apply plugin changes without restarting](https://code.claude.com/docs/en/plugins/cli-reference.md#reload-plugins) to make the plugin's configure command available.
45
46**3. Configure your token**
47
48Run the configure command with the token from BotFather:
49
50```
51/telegram:configure <token>
52```
53
54This saves it to `~/.claude/channels/telegram/.env`. You can also set `TELEGRAM_BOT_TOKEN` in your shell environment before launching Claude Code.
55
56**4. Restart with channels enabled**
57
58Exit Claude Code and restart with the channel flag. This starts the Telegram plugin, which begins polling for messages from your bot:
59
60```bash theme={null}
61claude --channels plugin:telegram@claude-plugins-official
62```
63
64**5. Pair your account**
65
66Open Telegram and send any message to your bot. The bot replies with a pairing code.
67
68> [!NOTE]
23> [tab] Telegram
6924>
70> If your bot doesn't respond, make sure Claude Code is running with `--channels` from the previous step. The bot can only reply while the channel is active.
25> View the full [Telegram plugin source](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/telegram).
26>
27> **1. Create a Telegram bot**
28>
29> Open [BotFather](https://t.me/BotFather) in Telegram and send `/newbot`. Give it a display name and a unique username ending in `bot`. Copy the token BotFather returns.
30>
31> **2. Install the plugin**
32>
33> Start Claude Code by running `claude` in your terminal, then enter this at its prompt:
34>
35> ```
36> /plugin install telegram@claude-plugins-official
37> ```
38>
39> If the install fails, match the message Claude Code reports:
40>
41> * `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install.
42> * `Plugin "<name>" not found in marketplace "claude-plugins-official"`: your local copy of the marketplace catalog may be out of date. Refresh it with `/plugin marketplace update claude-plugins-official`, then retry the install. If the retry prints the same message, see [Plugin not found in marketplace](https://code.claude.com/docs/en/plugins/troubleshooting.md#plugin-not-found-in-marketplace).
43>
44> When the install asks for an installation scope, choose the user scope option so the plugin is available across all your projects. Check the install summary: if it reports `Run /reload-plugins to apply.`, see [Apply plugin changes without restarting](https://code.claude.com/docs/en/plugins/cli-reference.md#reload-plugins) to make the plugin's configure command available.
45>
46> **3. Configure your token**
47>
48> Run the configure command with the token from BotFather:
49>
50> ```
51> /telegram:configure <token>
52> ```
53>
54> This saves it to `~/.claude/channels/telegram/.env`. You can also set `TELEGRAM_BOT_TOKEN` in your shell environment before launching Claude Code.
55>
56> **4. Restart with channels enabled**
57>
58> Exit Claude Code and restart with the channel flag. This starts the Telegram plugin, which begins polling for messages from your bot:
59>
60> ```bash theme={null}
61> claude --channels plugin:telegram@claude-plugins-official
62> ```
63>
64> **5. Pair your account**
65>
66> Open Telegram and send any message to your bot. The bot replies with a pairing code.
67>
68> > [!NOTE]
69> >
70> > If your bot doesn't respond, make sure Claude Code is running with `--channels` from the previous step. The bot can only reply while the channel is active.
71>
72> Back in Claude Code, run:
73>
74> ```
75> /telegram:access pair <code>
76> ```
77>
78> Then lock down access so only your account can send messages:
79>
80> ```
81> /telegram:access policy allowlist
82> ```
7183
72Back in Claude Code, run:
73
74```
75/telegram:access pair <code>
76```
77
78Then lock down access so only your account can send messages:
79
80```
81/telegram:access policy allowlist
82```
83
84**Discord**
85
86View the full [Discord plugin source](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/discord).
87
88**1. Create a Discord bot**
89
90Go to the [Discord Developer Portal](https://discord.com/developers/applications), click **New Application**, and name it. In the **Bot** section, create a username, then click **Reset Token** and copy the token.
91
92**2. Enable Message Content Intent**
93
94In your bot's settings, scroll to **Privileged Gateway Intents** and enable **Message Content Intent**.
95
96**3. Invite the bot to your server**
97
98Go to **OAuth2 > URL Generator**. Select the `bot` scope and enable these permissions:
99
100* View Channels
101* Send Messages
102* Send Messages in Threads
103* Read Message History
104* Attach Files
105* Add Reactions
106
107Open the generated URL to add the bot to your server.
108
109**4. Install the plugin**
110
111Start Claude Code by running `claude` in your terminal, then enter this at its prompt:
112
113```
114/plugin install discord@claude-plugins-official
115```
116
117If the install fails, match the message Claude Code reports:
118
119* `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install.
120* `Plugin "<name>" not found in marketplace "claude-plugins-official"`: your local copy of the marketplace catalog may be out of date. Refresh it with `/plugin marketplace update claude-plugins-official`, then retry the install. If the retry prints the same message, see [Plugin not found in marketplace](https://code.claude.com/docs/en/plugins/troubleshooting.md#plugin-not-found-in-marketplace).
121
122When the install asks for an installation scope, choose the user scope option so the plugin is available across all your projects. Check the install summary: if it reports `Run /reload-plugins to apply.`, see [Apply plugin changes without restarting](https://code.claude.com/docs/en/plugins/cli-reference.md#reload-plugins) to make the plugin's configure command available.
123
124**5. Configure your token**
125
126Run the configure command with the bot token you copied:
127
128```
129/discord:configure <token>
130```
131
132This saves it to `~/.claude/channels/discord/.env`. You can also set `DISCORD_BOT_TOKEN` in your shell environment before launching Claude Code.
133
134**6. Restart with channels enabled**
135
136Exit Claude Code and restart with the channel flag. This connects the Discord plugin so your bot can receive and respond to messages:
137
138```bash theme={null}
139claude --channels plugin:discord@claude-plugins-official
140```
141
142**7. Pair your account**
143
144DM your bot on Discord. The bot replies with a pairing code.
145
146> [!NOTE]
84> [tab] Discord
14785>
148> If your bot doesn't respond, make sure Claude Code is running with `--channels` from the previous step. The bot can only reply while the channel is active.
86> View the full [Discord plugin source](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/discord).
87>
88> **1. Create a Discord bot**
89>
90> Go to the [Discord Developer Portal](https://discord.com/developers/applications), click **New Application**, and name it. In the **Bot** section, create a username, then click **Reset Token** and copy the token.
91>
92> **2. Enable Message Content Intent**
93>
94> In your bot's settings, scroll to **Privileged Gateway Intents** and enable **Message Content Intent**.
95>
96> **3. Invite the bot to your server**
97>
98> Go to **OAuth2 > URL Generator**. Select the `bot` scope and enable these permissions:
99>
100> * View Channels
101> * Send Messages
102> * Send Messages in Threads
103> * Read Message History
104> * Attach Files
105> * Add Reactions
106>
107> Open the generated URL to add the bot to your server.
108>
109> **4. Install the plugin**
110>
111> Start Claude Code by running `claude` in your terminal, then enter this at its prompt:
112>
113> ```
114> /plugin install discord@claude-plugins-official
115> ```
116>
117> If the install fails, match the message Claude Code reports:
118>
119> * `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install.
120> * `Plugin "<name>" not found in marketplace "claude-plugins-official"`: your local copy of the marketplace catalog may be out of date. Refresh it with `/plugin marketplace update claude-plugins-official`, then retry the install. If the retry prints the same message, see [Plugin not found in marketplace](https://code.claude.com/docs/en/plugins/troubleshooting.md#plugin-not-found-in-marketplace).
121>
122> When the install asks for an installation scope, choose the user scope option so the plugin is available across all your projects. Check the install summary: if it reports `Run /reload-plugins to apply.`, see [Apply plugin changes without restarting](https://code.claude.com/docs/en/plugins/cli-reference.md#reload-plugins) to make the plugin's configure command available.
123>
124> **5. Configure your token**
125>
126> Run the configure command with the bot token you copied:
127>
128> ```
129> /discord:configure <token>
130> ```
131>
132> This saves it to `~/.claude/channels/discord/.env`. You can also set `DISCORD_BOT_TOKEN` in your shell environment before launching Claude Code.
133>
134> **6. Restart with channels enabled**
135>
136> Exit Claude Code and restart with the channel flag. This connects the Discord plugin so your bot can receive and respond to messages:
137>
138> ```bash theme={null}
139> claude --channels plugin:discord@claude-plugins-official
140> ```
141>
142> **7. Pair your account**
143>
144> DM your bot on Discord. The bot replies with a pairing code.
145>
146> > [!NOTE]
147> >
148> > If your bot doesn't respond, make sure Claude Code is running with `--channels` from the previous step. The bot can only reply while the channel is active.
149>
150> Back in Claude Code, run:
151>
152> ```
153> /discord:access pair <code>
154> ```
155>
156> Then lock down access so only your account can send messages:
157>
158> ```
159> /discord:access policy allowlist
160> ```
149161
150Back in Claude Code, run:
151
152```
153/discord:access pair <code>
154```
155
156Then lock down access so only your account can send messages:
157
158```
159/discord:access policy allowlist
160```
161
162**iMessage**
163
164View the full [iMessage plugin source](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage).
165
166The iMessage channel reads your Messages database directly and sends replies through AppleScript. It requires macOS and needs no bot token or external service.
167
168**1. Grant Full Disk Access**
169
170The Messages database at `~/Library/Messages/chat.db` is protected by macOS. The first time the server reads it, macOS prompts for access: click **Allow**. The prompt names whichever app launched Bun, such as Terminal, iTerm, or your IDE.
171
172If the prompt doesn't appear or you clicked Don't Allow, grant access manually under **System Settings > Privacy & Security > Full Disk Access** and add your terminal. Without this, the server exits immediately with `authorization denied`.
173
174**2. Install the plugin**
175
176Start Claude Code by running `claude` in your terminal, then enter this at its prompt:
177
178```
179/plugin install imessage@claude-plugins-official
180```
181
182If the install fails, match the message Claude Code reports:
183
184* `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install.
185* `Plugin "<name>" not found in marketplace "claude-plugins-official"`: your local copy of the marketplace catalog may be out of date. Refresh it with `/plugin marketplace update claude-plugins-official`, then retry the install. If the retry prints the same message, see [Plugin not found in marketplace](https://code.claude.com/docs/en/plugins/troubleshooting.md#plugin-not-found-in-marketplace).
186
187When the install asks for an installation scope, choose the user scope option so the plugin is available across all your projects.
188
189If the install summary reports `Run /reload-plugins to apply.`, you don't need to act on it here, because restarting in the next step picks up the plugin.
190
191**3. Restart with channels enabled**
192
193Exit Claude Code and restart with the channel flag:
194
195```bash theme={null}
196claude --channels plugin:imessage@claude-plugins-official
197```
198
199**4. Text yourself**
200
201Open Messages on any device signed into your Apple ID and send a message to yourself. It reaches Claude immediately: self-chat bypasses access control with no setup.
202
203> [!NOTE]
162> [tab] iMessage
204163>
205> The first reply Claude sends triggers a macOS Automation prompt asking if your terminal can control Messages. Click **OK**.
164> View the full [iMessage plugin source](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage).
165>
166> The iMessage channel reads your Messages database directly and sends replies through AppleScript. It requires macOS and needs no bot token or external service.
167>
168> **1. Grant Full Disk Access**
169>
170> The Messages database at `~/Library/Messages/chat.db` is protected by macOS. The first time the server reads it, macOS prompts for access: click **Allow**. The prompt names whichever app launched Bun, such as Terminal, iTerm, or your IDE.
171>
172> If the prompt doesn't appear or you clicked Don't Allow, grant access manually under **System Settings > Privacy & Security > Full Disk Access** and add your terminal. Without this, the server exits immediately with `authorization denied`.
173>
174> **2. Install the plugin**
175>
176> Start Claude Code by running `claude` in your terminal, then enter this at its prompt:
177>
178> ```
179> /plugin install imessage@claude-plugins-official
180> ```
181>
182> If the install fails, match the message Claude Code reports:
183>
184> * `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install.
185> * `Plugin "<name>" not found in marketplace "claude-plugins-official"`: your local copy of the marketplace catalog may be out of date. Refresh it with `/plugin marketplace update claude-plugins-official`, then retry the install. If the retry prints the same message, see [Plugin not found in marketplace](https://code.claude.com/docs/en/plugins/troubleshooting.md#plugin-not-found-in-marketplace).
186>
187> When the install asks for an installation scope, choose the user scope option so the plugin is available across all your projects.
188>
189> If the install summary reports `Run /reload-plugins to apply.`, you don't need to act on it here, because restarting in the next step picks up the plugin.
190>
191> **3. Restart with channels enabled**
192>
193> Exit Claude Code and restart with the channel flag:
194>
195> ```bash theme={null}
196> claude --channels plugin:imessage@claude-plugins-official
197> ```
198>
199> **4. Text yourself**
200>
201> Open Messages on any device signed into your Apple ID and send a message to yourself. It reaches Claude immediately: self-chat bypasses access control with no setup.
202>
203> > [!NOTE]
204> >
205> > The first reply Claude sends triggers a macOS Automation prompt asking if your terminal can control Messages. Click **OK**.
206>
207> **5. Allow other senders**
208>
209> By default, only your own messages pass through. To let another contact reach Claude, add their handle:
210>
211> ```
212> /imessage:access allow +15551234567
213> ```
214>
215> Handles are phone numbers in `+country` format or Apple ID emails like `[email protected]`.
206216
207**5. Allow other senders**
208
209By default, only your own messages pass through. To let another contact reach Claude, add their handle:
210
211```
212/imessage:access allow +15551234567
213```
214
215Handles are phone numbers in `+country` format or Apple ID emails like `[email protected]`.
216
217217## Quickstart
218218
219219Fakechat is an officially supported demo channel that runs a chat UI on localhost, with nothing to authenticate and no external service to configure.
from line 304
304304| `channelsEnabled` | Master switch. Must be `true` for any channel to deliver messages. Blocks all channels including the development flag when off. See [Enable channels for your organization](#enable-channels-for-your-organization). | claude.ai Team and Enterprise: channels blocked. Console: channels allowed unless your organization deploys managed settings, in which case channels are blocked until this key is set |
305305| `allowedChannelPlugins` | Which plugins can register once channels are enabled. Replaces the Anthropic-maintained list when set. | Anthropic default list applies |
306306
307Pro and Max users without an organization skip these checks entirely: channels are available and users opt in per session with `--channels`.
307Pro, Max, and Ultra users without an organization skip these checks entirely: channels are available and users opt in per session with `--channels`.
308308
309309### Enable channels for your organization
310310
No line in this hunk matches that.