Каждый день в Telegram-канале - что нового в вайб-кодинге: инструменты, разборы, ошибки. Подпишись, чтобы быть в курсе.
Что такое Claude Code Channels и зачем они нужны
20 марта 2026 Anthropic выпустила Claude Code Channels - официальный плагин для связки сессии Claude с мессенджерами. Поддерживаются Telegram, Discord и iMessage. Фича в режиме research preview: документация на code.claude.com/docs/en/channels, исходники плагинов лежат в открытом репозитории anthropics/claude-plugins-official.
Если коротко - это «чат-мост» между телефоном и твоей сессией Claude Code. Я пишу боту «продолжи переписывать тарифную сетку, у меня в business/products/practicum/README.md поправь даты следующей когорты», бот пересылает сообщение в сессию на моём VPS, Claude вытаскивает контекст, редактирует файл, коммитит изменения и отвечает в Telegram «готово, посмотри коммит». Ноутбук стоит закрытый дома.
⚠️ Главное ограничение research preview: Channels - это мост через MCP. Сессия должна быть запущена на твоей машине или VPS. Когда сессия закрыта - сообщения никто не получает. Поэтому 24/7 настраивается отдельно (раздел про VPS ниже).
Чем Channels отличается от других способов работы удалённо
Anthropic в официальной документации даёт прямую таблицу сравнения. Я её адаптировал под русский язык:
| Фича | Что делает | Когда выбирать |
|---|---|---|
| Claude Code on the web | Запускает задачу в свежем облачном песочнице, клонирует репо из GitHub | Делегировать самостоятельную фоновую задачу, проверить позже |
| Slack-интеграция | По упоминанию @Claude стартует web-сессию в треде | Запускать задачи прямо из переписки команды |
| MCP-сервер (обычный) | Claude обращается к нему во время задачи, ничего не пушит в сессию | Дать Claude on-demand доступ к внешним системам |
| Remote Control | Управляешь локальной сессией с claude.ai или мобильного приложения | Рулить уже идущей сессией с экрана телефона |
| Channels ⭐ | Пушит события из не-Claude источников в уже запущенную локальную сессию | Спросить с телефона, получить ответ в чате; ловить webhook из CI |
Главное отличие Channels от Remote Control: Remote Control - это «телефон как окно в терминал», ты буквально видишь курсор и нажимаешь кнопки. Channels - это чат-бот, у которого вместо мозгов твоя локальная сессия Claude. С Remote Control я смотрю на терминал. С Channels я пишу человеку, который читает мои файлы.
Если тебе нужен полный контроль с экрана - Remote Control. Если хочется «отправил вопрос, занимаюсь своими делами, получил ответ» - Channels. Я использую оба: Remote Control - когда нужно подтверждать критичные изменения, Channels - когда уверен в задаче и хочу освободить вечер.
Что понадобится перед началом
Прежде чем лезть в команды, проверь чек-лист:
- Аккаунт Anthropic. Нужен Pro, Max, Team или Enterprise. На бесплатном тарифе Channels не пускают. Console API key тоже подходит, но проверь, что в организации
channelsEnabled: true. - Claude Code v2.1.80 или новее. Проверить:
claude --version. Если старее - обновись:claude updateилиnpm install -g @anthropic-ai/claude-code@latest. - Bun. Плагины Channels - это Bun-скрипты, не Node. Проверить:
bun --version. Если нет - поставь:curl -fsSL https://bun.sh/install | bash, потомsource ~/.bashrc. - Telegram-аккаунт. Любой, главное чтоб ты был залогинен на телефоне.
- Если ты в команде / Enterprise - попроси админа включить
channelsEnabledв managed settings или через admin-settings/claude-code. По умолчанию у организаций всё закрыто.
Не пугайся Bun, если первый раз его видишь. Bun - это альтернативный JavaScript-рантайм, как Node. Anthropic выбрала его для плагинов Channels, потому что он быстрее стартует и проще пакуется в один бинарник. Поставил один раз - забыл.
⚠️ На корпоративном Bedrock / Google Vertex / Azure Foundry Channels пока не работают. Только claude.ai-аутентификация или Anthropic Console.
Шаг 1. Создаём Telegram-бота через BotFather
BotFather делает всю работу за тебя - тебе нужно нажать 5 кнопок. Алгоритм пошагово:
- Открой @BotFather в Telegram (можно с телефона - дальше делается тоже с телефона).
- Нажми «Start» если в первый раз.
- Отправь команду
/newbot. - BotFather спросит «Alright, a new bot. How are we going to call it?». Введи отображаемое имя: например,
Артемий - Claude Code. - Дальше попросит username. Он должен быть уникальным во всём Telegram и обязательно заканчиваться на
bot. Например,artemii_claude_botилиsmyslokod_dev_bot. - BotFather ответит сообщением вида:
Done! Congratulations on your new bot. You will find it at
t.me/artemii_claude_bot.
Use this token to access the HTTP API:
1234567890:AAHzlAU...
Keep your token secure and store it safely, it can be used by anyone to control your bot.Скопируй токен. Он понадобится через 2 минуты.
⚠️ Безопасность токена. Токен бота даёт полный контроль над ним. Если он утечёт - любой сможет писать с твоего имени и (потенциально) перехватывать сообщения, которые ты пишешь Claude. Не публикуй в репозиториях, не вставляй в код, не отправляй в чаты. Я храню токены в ~/.claude/channels/telegram/.env - плагин сам туда положит на следующем шаге.
Шаг 2. Ставим плагин Telegram в Claude Code
Открываешь терминал в любой папке, где обычно работаешь с Claude, и запускаешь:
claudeВ сессии набираешь слэш-команду:
/plugin install telegram@claude-plugins-officialЕсли Claude отвечает «Plugin not found in any marketplace» - значит твой клиент не знает официальный маркетплейс. Добавь его:
/plugin marketplace add anthropics/claude-plugins-officialИли обнови, если уже добавлен раньше:
/plugin marketplace update claude-plugins-officialПосле успешной установки делаешь reload, чтобы команды плагина стали активны:
/reload-pluginsТеперь у тебя появились слэш-команды /telegram:configure, /telegram:access и другие. Если хочешь убедиться - набери /help, в списке должна появиться секция telegram.
Шаг 3. Привязываем токен к плагину
В сессии Claude:
/telegram:configure 1234567890:AAHzlAU...Команда положит токен в файл ~/.claude/channels/telegram/.env. Файл доступен только твоему пользователю (chmod 600), за это можно не переживать.
Альтернативный вариант - выставить токен через переменную окружения. Полезно, если ты разворачиваешь Claude через systemd или Docker и не хочешь интерактивных команд:
export TELEGRAM_BOT_TOKEN="1234567890:AAHzlAU..."
claude --channels plugin:telegram@claude-plugins-official⚠️ Я в проде всегда использую переменные окружения, а не файл .env в домашней папке ~/. Так проще управлять секретами через systemd (Environment=TELEGRAM_BOT_TOKEN=...) и не тянуть ~/.claude/ в репо случайно.
Шаг 4. Перезапускаем Claude с флагом --channels
Это самый важный момент, который ловит всех на первом запуске. Просто установить плагин - мало. Чтобы бот реально начал принимать сообщения, нужно запустить Claude с явным флагом:
claude --channels plugin:telegram@claude-plugins-officialБез флага - сессия работает как обычно, но Telegram-плагин в спячке. С флагом - Claude поднимает MCP-сервер плагина, начинает polling Telegram API и реагирует на сообщения боту.
После запуска ты увидишь в терминале что-то вроде:
✻ Welcome to Claude Code 2.1.80
Channels: telegram@claude-plugins-official (active)
Polling for messages...Если строки про channels нет - флаг не подхватился. Проверь, что версия Claude Code 2.1.80+ и плагин действительно установлен (/plugin list внутри сессии).
⚠️ Удобный совет. Я кладу алиас в ~/.zshrc:
alias claude-tg="claude --channels plugin:telegram@claude-plugins-official"Дальше запускаю просто claude-tg. Можно прокинуть несколько плагинов через пробел: --channels plugin:telegram@... plugin:discord@....
Шаг 5. Связываем аккаунт и закрываем чужих
Это шаг про безопасность. Без него любой посторонний человек, который найдёт твоего бота по username, сможет отправить сообщение и получить ответ от Claude в твоём терминале. Это значит: чужой человек может попросить Claude прочитать файлы, удалить что-то, опубликовать твой код.
Алгоритм:
- Открой бота в Telegram. Найди его по username
@artemii_claude_botили по ссылке из ответа BotFather. Нажми «Start». - Напиши боту любое сообщение. Например,
hi. - Бот ответит сообщением с кодом сопряжения. Что-то вроде:
Hi! To pair this account, run in your Claude Code session:
/telegram:access pair 847291
This code is valid for 5 minutes.- Возвращайся в терминал. В сессии Claude введи команду из ответа:
/telegram:access pair 847291Claude ответит «Account paired». Теперь твой Telegram-аккаунт может отправлять команды.
- Включи allowlist-политику. Это закрывает доступ всем, кроме уже сопряжённых:
/telegram:access policy allowlistПосле этого все сообщения от других аккаунтов будут молча проигнорированы. В терминале их не видно, бот не отвечает - как будто их не было.
⚠️ Очень важно включить allowlist сразу после сопряжения, не оставлять «на потом». Промежуток между «бот работает» и «allowlist включён» - это окно, в котором незнакомец может попасть в твою сессию. У меня бот первый раз работал 10 минут без allowlist, и за это время два случайных Telegram-юзера успели написать «hi». Хорошо, что я не пускал тогда команды на запись.
Если нужно добавить ещё кого-то (например, партнёра по проекту):
/telegram:access pair <код от их аккаунта>Пусть он напишет боту первым, получит код, передаст тебе, ты добавишь. Только так.
Хочешь полную схему по вайб-кодингу - не только Telegram-бот, но и всю связку под Claude? На практикуме за 3 эфира собираешь все три: ИИ-клон + Второй мозг + Контекст-инжиниринг - именно эта связка делает Claude из «помощника с галлюцинациями» рабочим инструментом, который не теряет контекст между задачами.
Как запустить Claude 24/7 на своём VPS
Если ты хочешь не «открыл ноут на час и подёргал», а «бот живой круглые сутки» - сессию нужно держать запущенной. Локально это можно через tmux, но проще и надёжнее - VPS.
У меня всё уже стоит на Coolify-VPS, где живёт smyslokod.ru (подробности в гайде про публикацию через Coolify). Можно использовать тот же сервер - Claude кушает мало (около 200 МБ RAM, по данным danubedata.ro). Если у тебя нет VPS - бери минимальный за 4-5 евро в месяц, любой Hetzner CX11 / Yandex Cloud / Selectel.
Шаг 1: ставим систему на VPS
Под root или через sudo:
apt update && apt upgrade -y
apt install -y curl git tmux ufw
# Node.js 22 (плагины Bun, но claude code сам нужен Node)
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs
# Bun (обязательно)
curl -fsSL https://bun.sh/install | bash
source ~/.bashrc
# Claude Code
npm install -g @anthropic-ai/claude-codeПроверь, что всё встало:
node --version # v22.x.x
bun --version # 1.x.x
claude --version # 2.1.80+Шаг 2: авторизуемся в claude.ai
Запусти команду:
claude loginОткроется веб-флоу: Claude напечатает URL, ты копируешь его на свой ноут или телефон, открываешь, логинишься через claude.ai, подтверждаешь. Терминал поймает callback и сохранит токен.
⚠️ API key не подойдёт. Channels требуют именно claude.ai-аутентификацию (Pro/Max/Team/Enterprise). API key Anthropic Console работает только для организаций с правильно настроенным channelsEnabled.
Шаг 3: оборачиваем сессию в systemd
Создаём service-файл для автозапуска и автоперезапуска при падении:
cat > /etc/systemd/system/claude-code.service <<'EOF'
[Unit]
Description=Claude Code with Telegram channel
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=claude
WorkingDirectory=/home/claude/workspace
Environment="HOME=/home/claude"
Environment="TELEGRAM_BOT_TOKEN=1234567890:AAH..."
ExecStart=/usr/bin/claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable claude-code
systemctl start claude-codeЧто я тут включил:
Type=simple- простой режим, systemd считает процесс запущенным сразу после старта.User=claude- под отдельным пользователем, не под root. Безопаснее.WorkingDirectory=/home/claude/workspace- папка, где у Claude «работа». Сюда же клонируй свой репозиторий:cd /home/claude/workspace && git clone <repo>.Environment=TELEGRAM_BOT_TOKEN=...- токен пробрасывается прямо в процесс. Файл.envне нужен.--dangerously-skip-permissions- критично для режима без присмотра. Без этого флага Claude будет ждать твоего «yes/no» в терминале на каждое действие, и сессия зависнет. Включаем только потому, что allowlist Telegram уже закрыл доступ.Restart=on-failure- если процесс упал (Claude крашнулся, сеть отвалилась), systemd поднимет его через 10 секунд.
Логи смотришь так:
journalctl -u claude-code -fЕсли что-то пошло не так - journalctl -u claude-code -n 100 даст последние 100 строк.
Шаг 4: проверь, что бот живой
С телефона напиши боту привычное «hi». Сначала должен быть pairing - сделай его так же, как в шаге 5 выше: напиши в Telegram, получи код, выполни /telegram:access pair (но уже из VPS-сессии - можно подключиться через journalctl -u claude-code -f и параллельно через интерактивный systemctl stop claude-code; claude --channels plugin:telegram@... сделать pairing, потом снова запустить service).
⚠️ Хитрый момент: pairing через systemd. Systemd-сервис не интерактивный, ты в нём /telegram:access pair не введёшь. Поэтому первый раз pairing делаешь руками: останавливаешь service, запускаешь Claude в обычном режиме, проходишь pairing + allowlist, выходишь, поднимаешь service обратно. Аллоулист сохраняется в ~/.claude/, при перезапуске остаётся.
5 ловушек на боевом сервере и как их обойти
1. Bun не в PATH у systemd
systemd запускает процесс с минимальным окружением: переменные из ~/.bashrc он не видит. Если ты ставил Bun под root и положил в ~/root/.bun/bin, а в service-файле User=claude - Bun не найдётся, плагин не запустится.
Решение. Либо ставь Bun системно (/usr/local/bin/bun), либо явно прокидывай PATH:
Environment="PATH=/home/claude/.bun/bin:/usr/local/bin:/usr/bin:/bin"2. Сессия теряет TCP-соединение с Telegram API после долгого простоя
После 6-12 часов простоя бот может «глохнуть» - сообщения уходят в Telegram, плагин их не получает. Это особенность long polling.
Решение. Добавь в systemd регулярный перезапуск (раз в 24 часа):
Restart=always
RuntimeMaxSec=86400Или поставь cron-задачу: 0 5 * * * systemctl restart claude-code (рестарт в 5 утра).
3. Лимиты Claude Max заканчиваются среди дня
Если ты гоняешь Claude через Telegram на полную - на тарифе Max 5x (~$100/мес) можно упереться в лимиты за 4-6 часов. Запросы из Telegram ничем не отличаются от запросов из обычного терминала, они расходуют тот же бюджет.
Решение. Поставь напоминалку «бот не отвечает - проверь /stats». Если упёрся - либо ждёшь сброса лимита, либо обновляешься до Max 20x ($200/мес). Гайд по экономии токенов и гайд по моделям Sonnet vs Opus помогут.
4. --dangerously-skip-permissions опасно даже с allowlist
Этот флаг отключает все подтверждения. Любая команда от тебя из Telegram выполнится без вопросов: удалить файлы, отправить запросы наружу, что угодно. Я сам один раз попросил «убери ненужные console.log», и Claude в порыве чистоты грохнул половину debug-логов в боевом скрипте. Restored через git, но осадок остался.
Решение. Не включай --dangerously-skip-permissions, если работаешь над критичным проектом. Лучше отдай sessions через Remote Control - там разрешения приходят на телефон, и ты подтверждаешь руками. Channels с --dangerously-skip-permissions - для черновых задач, рефакторинга, тестов.
5. Allowlist «сломался» после переустановки
Allowlist хранится в ~/.claude/channels/telegram/. Если ты переехал на новый VPS / переустановил Claude / сменил пользователя - старые pairing-данные не подхватятся. Бот пустит первого попавшегося.
Решение. Перед переездом - сохрани папку ~/.claude/channels/telegram/ в бэкап. После - перенеси обратно. Или сделай pairing заново сразу после переустановки и не оставляй между запуском бота и policy allowlist ни одной минуты.
Channels или Remote Control - что выбрать
Anthropic выпустила обе фичи почти одновременно: Remote Control - 25 февраля 2026, Channels - 20 марта 2026. Они не дублируют друг друга, решают разные задачи.
| Сценарий | Channels | Remote Control |
|---|---|---|
| Спросить «какие коммиты вчера» с улицы | ✅ Идеально | Перебор - нужен полный экран |
| Подтвердить файловое изменение | ⚠️ Слепое подтверждение через --dangerously-skip-permissions | ✅ Видишь, что Claude хочет сделать |
| Поднять Claude на 24/7 | ✅ Связка с VPS + systemd | ⚠️ Нужен открытый ноутбук |
| Просто пописать пару промптов с телефона | ⚠️ Перебор - бот, токен, plugin | ✅ Один QR-код |
| Поймать webhook из CI / Sentry | ✅ Это нативный сценарий | ❌ Не для этого |
| Команда с несколькими людьми | ✅ Allowlist на несколько аккаунтов | ⚠️ Только владелец сессии |
| Не светить файлы в облако Anthropic | ✅ Только текст через MCP | ✅ Тоже только текст |
Я для себя поделил так: Channels - для асинхронной работы, когда не сижу за ноутом, для CI-уведомлений, для интеграций. Remote Control - когда нужно реально посмотреть, что Claude делает, или подтвердить опасный шаг.
Можно использовать оба одновременно. Бот в Telegram даёт тебе быстрый канал «спросить-получить», Remote Control - канал «контролировать критичное». Лимит Claude один и тот же.
FAQ
Можно ли подключить несколько ботов одновременно?
Да. Флаг --channels принимает список через пробел: --channels plugin:telegram@claude-plugins-official plugin:discord@claude-plugins-official. Один Claude отвечает в оба чата.
Что будет, если я закрою терминал?
Сессия закроется, плагин остановится, бот замолчит. На VPS - сессия в systemd продолжит работать. На локальной машине - закрой ноутбук, и через несколько секунд claude отвалится по SIGHUP.
Можно ли получать уведомления от CI или Sentry?
Да. Channels - это двусторонний канал. Через Channels Reference можно написать свой плагин, который пробрасывает webhook'и в сессию. Claude будет видеть события в реальном времени и реагировать.
Telegram чем-то ограничен по сравнению с Discord?
Базовые возможности одинаковые. Discord требует Message Content Intent в настройках бота. iMessage работает только на macOS и читает базу ~/Library/Messages/chat.db напрямую. Telegram - универсальный.
Если я на Team-плане, что нужно сделать?
Админ организации включает channelsEnabled: true в managed settings или через admin-settings/claude-code. Без этого плагин подключится, но сообщения не пойдут - в терминале будет startup warning.
Что Claude видит из моего телефона - сам Telegram-чат?
Нет. Claude видит только то сообщение, которое ты ему написал боту. История переписки в Telegram, список чатов, контакты - вне доступа. MCP-плагин читает только сообщения боту через Telegram Bot API.
Можно ли запускать Claude через Channels без подписки на Pro/Max?
Нет. Требуется claude.ai-аккаунт с действующей подпиской (Pro / Max / Team / Enterprise). Free-tier и API-only не пускают.
Что дальше
Когда бот заработал стабильно - есть несколько следующих шагов, чтобы выжать из Channels максимум:
- Подключи webhook'и из CI. Если у тебя GitHub Actions / GitLab CI - можно настроить плагин Channels так, чтобы он пробрасывал результаты сборки прямо в сессию. Claude будет видеть «test failed» сразу после пуша и предлагать починку. Документация в channels-reference.
- Подружи с Routines. На той же сессии можно крутить Routines для регулярных задач. Утром бот сам отправляет «доброе утро, вот сводка по проекту», ты с телефона отвечаешь «сделай отчёт по выручке».
- Поставь монитор бота. Если бот замолчал - я хочу знать. Маленький cron-скрипт на VPS пингует Telegram-бота раз в час: если бот не ответил - шлёт алерт в отдельный канал. Без этого бот может умереть в 4 утра, и ты узнаешь только в обед.
- Подумай про хуки. Хуки реагируют на события Claude (started tool, finished message). Связка хук + Channels = автоматические уведомления в Telegram «Claude закончил задачу N».
Не лепи Channels на ВСЁ. Это удобный способ догнать задачу из дороги или с кофейни. Когда нужно реально думать - открываешь ноут и сидишь. Channels - чтобы освободить голову от «ой, надо ещё это попросить, надо ноут открывать», когда ты на улице или в дороге.
Источники
- Push events into a running session with channels - Claude Code Docs
- anthropics/claude-plugins-official на GitHub - исходники плагинов Telegram, Discord, iMessage, fakechat
- Anthropic just shipped an OpenClaw killer called Claude Code Channels - VentureBeat
- First Look: Hands-On with Claude Code's Telegram and Discord Integrations - MacStories
- Claude Code Channels on a VPS - DanubeData - production-setup на VPS с systemd
- Continue local sessions from any device with Remote Control - Claude Code Docs
- How to Set Up Claude Code Channels with Telegram - MindStudio
Полная схема по вайб-кодингу за вечер: ИИ-клон + Второй мозг + Контекст-инжиниринг. 3 эфира, 2 000 ₽. Записи остаются у тебя.
Новые материалы - дайджестом, без спама
Гайды выходят регулярно. Подпишись, чтобы не пропускать: пришлю подборку в Telegram или на email. Раз в неделю или каждый день - выбираешь сам.

