Skip to content

nebelov/telegram-channel-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Channel для Claude Code

Навык (skill) для автоматической настройки двусторонней связи между Telegram и Claude Code через официальный плагин telegram@claude-plugins-official.

Что это даёт: Вы пишете боту в Telegram — сообщение приходит прямо в сессию Claude Code. Claude отвечает — ответ появляется в Telegram. Полноценный мост.

Быстрый старт

1. Создайте бота

Откройте @BotFather в Telegram, отправьте /newbot, получите токен вида 123456789:AAHfiqksKZ8...

2. Узнайте свой Telegram ID

Напишите @userinfobot — он ответит вашим числовым ID.

3. Установите навык

# Скачайте и распакуйте в навыки Claude Code
git clone https://github.com/nebelov/telegram-channel-setup.git ~/.claude/skills/telegram-channel-setup

4. Запустите настройку

~/.claude/skills/telegram-channel-setup/scripts/setup-telegram-channel.sh <ТОКЕН_БОТА> <ВАШ_TELEGRAM_ID>

Скрипт автоматически:

  • Проверит и установит Bun (runtime для MCP-сервера плагина)
  • Проверит токен бота через Telegram API
  • Установит плагин telegram@claude-plugins-official
  • Запишет конфигурацию (.env, access.json)
  • Создаст скрипт запуска ~/bin/cld с нужным флагом --channels
  • Отправит тестовое сообщение в Telegram

5. Запустите Claude Code

# Из НОВОЙ вкладки терминала:
cld

6. Напишите боту

Отправьте любое сообщение вашему боту в Telegram. Оно должно появиться в сессии Claude Code как <channel> уведомление.

Требования

  • Claude Code >= 2.1.81
  • Bun >= 1.0 (установится автоматически)
  • macOS / Linux (zsh или bash)

Как это работает

Telegram              MCP-сервер (Bun)           Claude Code
  |                        |                         |
  |--- сообщение --------->|                         |
  |                        |--- notification ------->|
  |                        |    (notifications/      |
  |                        |     claude/channel)     |
  |                        |                         |--- Claude думает
  |                        |<--- reply tool ---------|
  |<-- ответ --------------|                         |

Плагин запускает MCP-сервер на grammY, который:

  • Получает сообщения через long polling
  • Пересылает их в Claude Code как MCP-уведомления
  • Предоставляет tools для ответа (reply, react, edit_message)

Частые проблемы и решения

Бот не отвечает на сообщения

Проблема: Токен невалидный. BotFather использует шрифт, где I (заглавная i) и l (строчная L) неотличимы.

Решение: Проверьте токен:

curl -s "https://api.telegram.org/bot<ТОКЕН>/getMe"

Если 401 Unauthorized — попробуйте заменить I на l и наоборот. Или скопируйте токен заново из BotFather (не со скриншота!).

Reply tool работает, но входящие сообщения не приходят

Проблема: Claude Code запущен без флага --channels.

Диагностика:

ps aux | grep claude | grep channels

Решение: Флаг --channels plugin:telegram@claude-plugins-official обязателен. Он экспериментальный и не показан в --help, но без него входящие уведомления не маршрутизируются.

Используйте скрипт ~/bin/cld (создаётся автоматически), а не alias в .zshrc — alias кэшируется в памяти шелла и не обновляется до перезапуска терминала.

Изменил alias, но флаг не подхватывается

Проблема: Shell alias загружается один раз при старте терминала. Изменения в .zshrc не действуют в уже открытых вкладках.

Решение: Этот навык создаёт исполняемый скрипт ~/bin/cld вместо alias. Скрипт перечитывается при каждом вызове. Если у вас есть старый alias cld — удалите его:

# В ~/.zshrc удалить строку с alias cld=...
# Или выполнить в текущем терминале:
unalias cld 2>/dev/null

access.json — неправильный формат

Плагин ожидает конкретные имена полей:

{
  "dmPolicy": "allowlist",
  "allowFrom": ["308402137"],
  "groups": {},
  "pending": {}
}

Частые ошибки:

  • dm_policy вместо dmPolicy
  • allowlist вместо allowFrom
  • Числа вместо строк в allowFrom
  • Объекты {"id": 123} вместо простых строк "123"

409 Conflict

Два процесса пытаются получать обновления от одного бота. Остановите старый поллер или используйте другого бота.

Ручная настройка

Если скрипт не подходит, все шаги описаны в SKILL.md.

Управление доступом

После настройки доступны команды в Claude Code:

/telegram:access                    — статус
/telegram:access pair <код>         — подтвердить пейринг
/telegram:access policy allowlist   — закрыть от посторонних
/telegram:access allow <id>         — добавить пользователя
/telegram:access remove <id>        — удалить пользователя

Лицензия

MIT

About

Telegram Channel skill for Claude Code — автоматическая настройка двусторонней связи Telegram + Claude Code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages