Отправка событий в активный сеанс через каналы
Используйте каналы для отправки сообщений, оповещений и вебхуков в ваш сеанс Claude Code из MCP-сервера. Перенаправляйте результаты CI, сообщения чата и события мониторинга, чтобы Claude мог реагировать, пока вас нет.
Каналы находятся в исследовательском превью и требуют Claude Code v2.1.80 или позже. Они требуют аутентификации Anthropic через claude.ai или ключ API Console, и недоступны на Amazon Bedrock, Google Vertex AI или Microsoft Foundry. Организации Team и Enterprise должны явно их включить.
Канал — это MCP-сервер, который отправляет события в ваш активный сеанс Claude Code, чтобы Claude мог реагировать на события, происходящие, пока вас нет у терминала. Каналы могут быть двусторонними: Claude читает событие и отвечает через тот же канал, как мост чата. События поступают только пока сеанс открыт, поэтому для постоянно работающей установки вы запускаете Claude в фоновом процессе или постоянном терминале.
В отличие от интеграций, которые создают новый облачный сеанс или ждут опроса, событие поступает в уже открытый сеанс: см. сравнение каналов.
Вы устанавливаете канал как плагин и настраиваете его со своими учетными данными. Telegram, Discord и iMessage включены в исследовательское превью.
Когда Claude отвечает через канал, вы видите входящее сообщение в терминале, но не текст ответа. Терминал показывает вызов инструмента и подтверждение (например, "отправлено"), а фактический ответ появляется на другой платформе.
На этой странице рассматривается:
- Поддерживаемые каналы: настройка Telegram, Discord и iMessage
- Установка и запуск канала с fakechat, локальной демонстрацией
- Кто может отправлять сообщения: списки разрешенных отправителей и как вы выполняете сопряжение
- Включение каналов для вашей организации если вы управляете организацией Team, Enterprise или Console
- Сравнение каналов с веб-сеансами, Slack, MCP и Remote Control
Чтобы создать свой собственный канал, см. справочник по каналам.
Поддерживаемые каналы
Каждый поддерживаемый канал — это плагин, который требует Bun. Для практической демонстрации потока плагинов перед подключением реальной платформы попробуйте быстрый старт fakechat.
Просмотрите полный исходный код плагина Telegram.
Создайте бота Telegram
Откройте BotFather в Telegram и отправьте /newbot. Дайте ему отображаемое имя и уникальное имя пользователя, заканчивающееся на bot. Скопируйте токен, который возвращает BotFather.
Установите плагин
В Claude Code выполните:
/plugin install telegram@claude-plugins-official
Если Claude Code сообщает, что плагин не найден ни в одном маркетплейсе, ваш маркетплейс либо отсутствует, либо устарел. Выполните /plugin marketplace update claude-plugins-official для его обновления или /plugin marketplace add anthropics/claude-plugins-official, если вы его еще не добавили. Затем повторите попытку установки.
После установки выполните /reload-plugins для активации команды настройки плагина.
Настройте ваш токен
Выполните команду настройки с токеном от BotFather:
/telegram:configure <token>
Это сохранит его в ~/.claude/channels/telegram/.env. Вы также можете установить TELEGRAM_BOT_TOKEN в переменной окружения вашей оболочки перед запуском Claude Code.
Перезагрузитесь с включенными каналами
Выйдите из Claude Code и перезагрузитесь с флагом канала. Это запустит плагин Telegram, который начнет опрашивать сообщения от вашего бота:
claude --channels plugin:telegram@claude-plugins-official
Выполните сопряжение вашей учетной записи
Откройте Telegram и отправьте любое сообщение вашему боту. Бот ответит кодом сопряжения.
Если ваш бот не отвечает, убедитесь, что Claude Code работает с --channels из предыдущего шага. Бот может отвечать только пока канал активен.
Вернитесь в Claude Code и выполните:
/telegram:access pair <code>
Затем заблокируйте доступ, чтобы только ваша учетная запись могла отправлять сообщения:
/telegram:access policy allowlist
Просмотрите полный исходный код плагина Discord.
Создайте бота Discord
Перейдите на Discord Developer Portal, нажмите New Application и назовите его. В разделе Bot создайте имя пользователя, затем нажмите Reset Token и скопируйте токен.
Включите Message Content Intent
В настройках вашего бота прокрутите до Privileged Gateway Intents и включите Message Content Intent.
Пригласите бота на ваш сервер
Перейдите в OAuth2 > URL Generator. Выберите область bot и включите эти разрешения:
- View Channels
- Send Messages
- Send Messages in Threads
- Read Message History
- Attach Files
- Add Reactions
Откройте созданный URL для добавления бота на ваш сервер.
Установите плагин
В Claude Code выполните:
/plugin install discord@claude-plugins-official
Если Claude Code сообщает, что плагин не найден ни в одном маркетплейсе, ваш маркетплейс либо отсутствует, либо устарел. Выполните /plugin marketplace update claude-plugins-official для его обновления или /plugin marketplace add anthropics/claude-plugins-official, если вы его еще не добавили. Затем повторите попытку установки.
После установки выполните /reload-plugins для активации команды настройки плагина.
Настройте ваш токен
Выполните команду настройки с токеном бота, который вы скопировали:
/discord:configure <token>
Это сохранит его в ~/.claude/channels/discord/.env. Вы также можете установить DISCORD_BOT_TOKEN в переменной окружения вашей оболочки перед запуском Claude Code.
Перезагрузитесь с включенными каналами
Выйдите из Claude Code и перезагрузитесь с флагом канала. Это подключит плагин Discord, чтобы ваш бот мог получать и отвечать на сообщения:
claude --channels plugin:discord@claude-plugins-official
Выполните сопряжение вашей учетной записи
Отправьте личное сообщение вашему боту в Discord. Бот ответит кодом сопряжения.
Если ваш бот не отвечает, убедитесь, что Claude Code работает с --channels из предыдущего шага. Бот может отвечать только пока канал активен.
Вернитесь в Claude Code и выполните:
/discord:access pair <code>
Затем заблокируйте доступ, чтобы только ваша учетная запись могла отправлять сообщения:
/discord:access policy allowlist
Просмотрите полный исходный код плагина iMessage.
Канал iMessage читает вашу базу данных Messages напрямую и отправляет ответы через AppleScript. Он требует macOS и не требует токена бота или внешнего сервиса.
Предоставьте полный доступ к диску
База данных Messages в ~/Library/Messages/chat.db защищена macOS. При первом чтении сервером macOS запрашивает доступ: нажмите Allow. Запрос указывает приложение, которое запустило Bun, например Terminal, iTerm или вашу IDE.
Если запрос не появляется или вы нажали Don't Allow, предоставьте доступ вручную в System Settings > Privacy & Security > Full Disk Access и добавьте ваш терминал. Без этого сервер немедленно завершит работу с ошибкой authorization denied.
Установите плагин
В Claude Code выполните:
/plugin install imessage@claude-plugins-official
Если Claude Code сообщает, что плагин не найден ни в одном маркетплейсе, ваш маркетплейс либо отсутствует, либо устарел. Выполните /plugin marketplace update claude-plugins-official для его обновления или /plugin marketplace add anthropics/claude-plugins-official, если вы его еще не добавили. Затем повторите попытку установки.
Перезагрузитесь с включенными каналами
Выйдите из Claude Code и перезагрузитесь с флагом канала:
claude --channels plugin:imessage@claude-plugins-official
Напишите себе
Откройте Messages на любом устройстве, вошедшем в вашу Apple ID, и отправьте сообщение себе. Оно сразу же достигает Claude: самочат обходит контроль доступа без настройки.
Первый ответ, который отправляет Claude, вызывает запрос macOS Automation, спрашивающий, может ли ваш терминал управлять Messages. Нажмите OK.
Разрешите другим отправителям
По умолчанию проходят только ваши собственные сообщения. Чтобы позволить другому контакту достичь Claude, добавьте его дескриптор:
/imessage:access allow +15551234567
Дескрипторы — это номера телефонов в формате +country или адреса электронной почты Apple ID, такие как user@example.com.
Вы также можете создать свой собственный канал для систем, у которых еще нет плагина.
Быстрый старт
Fakechat — это официально поддерживаемый демонстрационный канал, который запускает интерфейс чата на localhost без необходимости аутентификации и без внешнего сервиса для настройки.
После установки и включения fakechat вы можете печатать в браузере, и сообщение поступает в ваш сеанс Claude Code. Claude отвечает, и ответ появляется обратно в браузере. После того как вы протестировали интерфейс fakechat, попробуйте Telegram, Discord или iMessage.
Для демонстрации fakechat вам потребуется:
- Claude Code установлен и аутентифицирован с учетной записью claude.ai или ключом API Claude Console
- Bun установлен. Встроенные плагины каналов — это скрипты Bun. Проверьте с помощью
bun --version; если это не сработает, установите Bun. - Организация Team, Enterprise или управляемая Console: ваш администратор должен включить каналы в управляемых параметрах
Установите плагин канала fakechat
Запустите сеанс Claude Code и выполните команду установки:
/plugin install fakechat@claude-plugins-official
Если Claude Code сообщает, что плагин не найден ни в одном маркетплейсе, ваш маркетплейс либо отсутствует, либо устарел. Выполните /plugin marketplace update claude-plugins-official для его обновления или /plugin marketplace add anthropics/claude-plugins-official, если вы его еще не добавили. Затем повторите попытку установки.
Перезагрузитесь с включенным каналом
Выйдите из Claude Code, затем перезагрузитесь с --channels и передайте установленный плагин fakechat:
claude --channels plugin:fakechat@claude-plugins-official
Сервер fakechat запустится автоматически.
Вы можете передать несколько плагинов в --channels, разделенные пробелом.
Отправьте сообщение
Откройте интерфейс fakechat по адресу http://localhost:8787 и введите сообщение:
hey, what's in my working directory?
Сообщение поступает в ваш сеанс Claude Code как событие <channel source="fakechat">. Claude читает его, выполняет работу и вызывает инструмент reply fakechat. Ответ появляется в интерфейсе чата.
Если Claude столкнется с запросом разрешения, пока вас нет у терминала, сеанс приостановится до вашего ответа. Серверы каналов, которые объявляют возможность трансляции разрешений, могут перенаправлять эти запросы вам, чтобы вы могли одобрить или отклонить их удаленно. Для автоматического использования --dangerously-skip-permissions обходит запросы полностью, но используйте это только в окружениях, которым вы доверяете.
Когда вы запускаете каналы в неинтерактивном режиме с -p, инструменты, которые требуют ввода с терминала, такие как вопросы с множественным выбором и одобрение режима плана, отключены, чтобы сеанс никогда не зависал в ожидании ввода.
Безопасность
Каждый одобренный плагин канала поддерживает список разрешенных отправителей: только ID, которые вы добавили, могут отправлять сообщения, и все остальные молча отбрасываются.
Telegram и Discord инициализируют список путем сопряжения:
- Найдите своего бота в Telegram или Discord и отправьте ему любое сообщение
- Бот ответит кодом сопряжения
- В вашем сеансе Claude Code одобрите код при появлении запроса
- Ваш ID отправителя добавляется в список разрешенных
iMessage работает иначе: отправка сообщения себе автоматически обходит ворота, и вы добавляете другие контакты по дескриптору с помощью /imessage:access allow.
Кроме того, вы контролируете, какие серверы включены в каждом сеансе с помощью --channels, и ваша организация контролирует доступность с помощью channelsEnabled на планах claude.ai Team и Enterprise и на организациях Console, которые развертывают управляемые параметры.
Нахождение в .mcp.json недостаточно для отправки сообщений: сервер также должен быть указан в --channels.
Список разрешенных также контролирует трансляцию разрешений, если канал это объявляет. Любой, кто может отвечать через канал, может одобрить или отклонить использование инструмента в вашем сеансе, поэтому добавляйте в список разрешенных только отправителей, которым вы доверяете эту власть.
Элементы управления для Enterprise
Администраторы контролируют доступность через два управляемых параметра, которые пользователи не могут переопределить. Значение по умолчанию зависит от того, как вы аутентифицируетесь:
- claude.ai Team и Enterprise: каналы заблокированы до тех пор, пока администратор их не включит.
- Anthropic Console с аутентификацией ключа API: каналы разрешены по умолчанию. Этот параметр нужен только если ваша организация развертывает управляемые параметры.
Во всех случаях ни один канал не запустится до тех пор, пока пользователь не выберет его для сеанса с помощью --channels.
| Параметр | Назначение | Если не настроено |
|---|---|---|
channelsEnabled |
Главный переключатель. Должен быть true для доставки сообщений любым каналом. Установите через переключатель консоли администратора claude.ai или непосредственно в управляемых параметрах. Блокирует все каналы, включая флаг разработки, когда отключен. |
claude.ai Team и Enterprise: каналы заблокированы. Console: каналы разрешены, если ваша организация не развертывает управляемые параметры, в этом случае каналы заблокированы до установки этого ключа |
allowedChannelPlugins |
Какие плагины могут регистрироваться после включения каналов. Заменяет список, поддерживаемый Anthropic, когда установлен. Применяется только когда channelsEnabled имеет значение true. |
Применяется список по умолчанию Anthropic |
Пользователи Pro и Max без организации пропускают эти проверки полностью: каналы доступны и пользователи выбирают участие в каждом сеансе с помощью --channels.
Включение каналов для вашей организации
Включите каналы для вашей организации из claude.ai → Admin settings → Claude Code → Channels, что требует роли Owner, или установив channelsEnabled на true в управляемых параметрах.
После включения пользователи в вашей организации могут использовать --channels для выбора серверов каналов в отдельных сеансах. Если параметр отключен или не установлен, MCP-сервер все еще подключается и его инструменты работают, но сообщения каналов не будут поступать. Предупреждение при запуске сообщает пользователю попросить администратора включить параметр.
Ограничение того, какие плагины каналов могут работать
По умолчанию любой плагин из списка разрешенных, поддерживаемого Anthropic, может регистрироваться как канал. Администраторы на планах Team и Enterprise могут заменить этот список разрешенных своим собственным, установив allowedChannelPlugins в управляемых параметрах. Используйте это для ограничения того, какие официальные плагины разрешены, одобрения каналов из вашего собственного внутреннего маркетплейса или обоих. Каждая запись называет плагин и маркетплейс, из которого он поступает:
{
"channelsEnabled": true,
"allowedChannelPlugins": [
{ "marketplace": "claude-plugins-official", "plugin": "telegram" },
{ "marketplace": "claude-plugins-official", "plugin": "discord" },
{ "marketplace": "acme-corp-plugins", "plugin": "internal-alerts" }
]
}
Когда allowedChannelPlugins установлен, он полностью заменяет список разрешенных Anthropic: только перечисленные плагины могут регистрироваться. Оставьте его неустановленным для возврата к списку по умолчанию Anthropic. Пустой массив блокирует все плагины каналов из списка разрешенных, но --dangerously-load-development-channels все еще может его обойти для локального тестирования. Чтобы полностью заблокировать каналы, включая флаг разработки, оставьте channelsEnabled неустановленным.
Этот параметр требует channelsEnabled: true. Если пользователь передает плагин в --channels, который не находится в вашем списке, Claude Code запускается нормально, но канал не регистрируется, и уведомление при запуске объясняет, что плагин не находится в утвержденном списке организации.
Исследовательское превью
Каналы — это функция исследовательского превью. Доступность постепенно развертывается, и синтаксис флага --channels и контракт протокола могут измениться на основе обратной связи.
Во время превью --channels принимает только плагины из списка разрешенных, поддерживаемого Anthropic, или из списка разрешенных вашей организации, если администратор установил allowedChannelPlugins. Плагины каналов в claude-plugins-official — это набор по умолчанию, одобренный Anthropic. Если вы передадите что-то, что не находится в действующем списке разрешенных, Claude Code запустится нормально, но канал не зарегистрируется, и уведомление при запуске скажет вам почему.
Для тестирования создаваемого вами канала используйте --dangerously-load-development-channels. См. Тестирование во время исследовательского превью для информации о тестировании пользовательских каналов, которые вы создаете.
Сообщайте о проблемах или отзывах в репозитории Claude Code на GitHub.
Сравнение каналов
Несколько функций Claude Code подключаются к системам вне терминала, каждая подходит для разного вида работы:
| Функция | Что она делает | Хорошо для |
|---|---|---|
| Claude Code в веб-браузере | Запускает задачи в свежей облачной песочнице, клонированной из GitHub | Делегирование самостоятельной асинхронной работы, которую вы проверяете позже |
| Claude в Slack | Создает веб-сеанс из упоминания @Claude в канале или потоке |
Запуск задач непосредственно из контекста командного разговора |
| Стандартный MCP-сервер | Claude запрашивает его во время задачи; ничего не отправляется в сеанс | Предоставление Claude доступа по требованию для чтения или запроса системы |
| Remote Control | Вы управляете своим локальным сеансом из claude.ai или мобильного приложения Claude | Управление активным сеансом, пока вас нет за столом |
Каналы заполняют пробел в этом списке, отправляя события из источников, не связанных с Claude, в ваш уже работающий локальный сеанс.
- Мост чата: спросите Claude что-то со своего телефона через Telegram, Discord или iMessage, и ответ вернется в тот же чат, пока работа выполняется на вашей машине с вашими реальными файлами.
- Получатель вебхука: вебхук из CI, вашего трекера ошибок, конвейера развертывания или другого внешнего сервиса поступает туда, где Claude уже имеет открытые ваши файлы и помнит, что вы отлаживали.
Следующие шаги
После того как у вас есть работающий канал, изучите эти связанные функции:
- Создайте свой собственный канал для систем, у которых еще нет плагинов
- Remote Control для управления локальным сеансом со своего телефона вместо отправки событий в него
- Запланированные задачи для опроса по таймеру вместо реагирования на отправленные события