← Все гайды
Гайд

Telegram дайджест-бот: настраиваем автоотчёт по всем чатам и каналам

Настройте бота который каждое утро читает ваши Telegram-чаты и каналы и присылает сводку. Telethon + Claude Code + VPS — 0 минут ручного чтения.

Антон · · 9 мин чтения
Коротко
  • Python + Telethon читает выбранные чаты от имени вашего аккаунта, Claude Code формирует сводку до 15 пунктов, cron доставляет утром — 2 минуты чтения вместо 30.
  • Telethon работает как настоящий Telegram-клиент: видит публичные каналы, закрытые группы и приватные чаты — всё к чему у вас есть доступ.
  • На VPS авторизуйтесь через `claude setup-token`: токен действует год, не требует браузера и ежедневного обновления.
  • Из платного — подписка Claude Max и VPS $4–7/мес; Telethon, BotFather и Telegram API бесплатны.
В этом разборе
  1. Что строим
  2. Что потребуется
  3. Шаг 1. Получить API Telegram
  4. Шаг 2. Где запускать бота
  5. Шаг 3. Авторизация Telethon (один раз)
  6. Шаг 4. Парсер чатов
  7. Шаг 5. Создать Telegram-бота для отправки
  8. Шаг 6. Установить Claude Code
  9. Шаг 7. Скрипт дайджеста
  10. Шаг 8. Настроить расписание
  11. Что дальше
  12. Как выглядит готовый дайджест
  13. Как остановить или удалить дайджест-бот
  14. Источники

У меня в Telegram было 15 чатов и каналов которые я читал каждое утро. Это занимало 20-30 минут — и половину времени я просто листал шум.

Теперь в 9 утра мне приходит одно сообщение. Claude собрал всё важное, отфильтровал мусор и написал сводку. Я трачу 2 минуты вместо 30.

В этом гайде — как настроить точно такую же систему с нуля.

Что строим

Бот который по расписанию:

  1. Читает сообщения из любых Telegram-чатов и каналов к которым у вас есть доступ
  2. Фильтрует шум (короткие реплики, стикеры, приветствия)
  3. Отправляет данные Claude Code для анализа
  4. Присылает готовый дайджест вам в личку

Стек: Python + Telethon (парсинг) + Claude Code (анализ) + системный cron (расписание). VPS за $5/мес, подписка Claude Max — больше ничего платить не нужно.

Что потребуется

  • VPS с Linux (Ubuntu 22.04+) — подойдёт любой за $4-7/мес (Hetzner, DigitalOcean, Timeweb)
  • Подписка Claude Max (или Pro)
  • Аккаунт Telegram (обычный, не бот)
  • ~2 часа на настройку

Шаг 1. Получить API Telegram

Telethon работает от вашего имени — как полноценный Telegram-клиент. Для этого нужны API credentials.

  1. Зайдите на my.telegram.org
  2. Войдите через номер телефона
  3. Перейдите в API development tools
  4. Заполните форму: App title (любое), Short name (любое), Platform — Other
  5. Нажмите Create application

Вы получите два значения — сохраните их:

api_id = 12345678
api_hash = "abc123def456..."
Это credentials вашего аккаунта. Не публикуйте их и не давайте никому — через них можно войти в ваш Telegram.

Шаг 2. Где запускать бота

Сервер — опциональный. Бот отлично работает и на вашем Mac или Windows. Единственный нюанс: компьютер должен быть включён в момент запуска по расписанию. Если вы и так держите его включённым по утрам — сервер не нужен, пропустите установку зависимостей ниже и просто установите Python и Telethon локально.

Сервер нужен если:

  • Хотите чтобы дайджест приходил гарантированно каждый день вне зависимости от того, включён ли компьютер
  • Планируете запускать несколько расписаний (утро + вечер + еженедельный)
  • Не хотите держать ноутбук включённым

Подойдёт любой VPS за $4-7/мес — Hetzner, DigitalOcean, Timeweb Cloud. Если решили использовать сервер — откройте Terminal на Mac и подключитесь по SSH (IP берёте из панели вашего хостинга):

ssh root@YOUR_SERVER_IP

После подключения вы окажетесь внутри сервера. Там выполните установку зависимостей:

apt update && apt install -y python3 python3-pip python3-venv nodejs npm
python3 -m venv /root/venv
/root/venv/bin/pip install telethon

Если работаете локально на Mac — просто откройте Terminal и выполните:

pip3 install telethon

Шаг 3. Авторизация Telethon (один раз)

Это единственный шаг который нужно сделать интерактивно — Telegram пришлёт код подтверждения на ваш номер.

Создайте файл /root/auth_telethon.py — проще всего передать код ниже в Claude Code с командой "создай этот файл", или скопировать вручную через любой текстовый редактор на сервере (nano /root/auth_telethon.py):

from telethon import TelegramClient

API_ID = 12345678       # ваш api_id
API_HASH = "abc123..."  # ваш api_hash

client = TelegramClient("digest_session", API_ID, API_HASH)

async def main():
    await client.start()
    me = await client.get_me()
    print(f"Авторизован как: {me.first_name} ({me.phone})")
    await client.disconnect()

import asyncio
asyncio.run(main())

Запустите и введите код из Telegram:

/root/venv/bin/python3 /root/auth_telethon.py

После успешной авторизации появится файл digest_session.session. Это сохранённая сессия — в следующий раз код вводить не придётся.

Шаг 4. Парсер чатов

Теперь нужен скрипт который читает сообщения из нужных чатов и сохраняет их в файл. Напишем его через Claude Code.

Откройте Claude Code и дайте такой промпт:

Напиши Python-скрипт /root/tg-digest-fetch.py который:

1. Использует Telethon с сессией ~/digest_session, API_ID и API_HASH из переменных окружения
2. Читает сообщения за последние 24 часа из следующих чатов (задай как список CHAT_IDS с числовыми ID или username):
   - @channel_name (или числовой ID)
   - добавь ещё нужные
3. Фильтрует шум: сообщения короче 15 символов, стикеры, одиночные эмодзи, типичные приветствия
4. Сохраняет результат в ~/.digest/YYYY-MM-DD.json в формате:
   {
     "date": "2026-04-07",
     "chats": {
       "Название чата": [
         {"time": "09:15", "text": "текст сообщения до 1000 символов"}
       ]
     },
     "total": 42
   }
   (имена отправителей НЕ сохранять — только время и текст)
5. Выводит статистику: сколько сообщений из каждого чата
6. Хранит файлы только за последние 7 дней (старые удаляет)

Зависимости: только telethon (уже установлен в /root/venv).
Запускается как: /root/venv/bin/python3 /root/tg-digest-fetch.py

После того как Claude напишет скрипт — нужно указать ID ваших чатов. Самый простой способ их узнать — попросите Claude Code добавить в скрипт авторизации вывод всех диалогов:

# Этот код добавьте в auth_telethon.py перед disconnect(), или дайте Claude Code команду:
# "добавь вывод всех диалогов с их ID в auth_telethon.py"
async for dialog in client.iter_dialogs():
    print(dialog.id, dialog.name)

Запустите скрипт авторизации ещё раз — он выведет список всех ваших чатов и каналов с ID. Найдите нужные и скопируйте их ID в переменную CHAT_IDS в скрипте парсера.

Проверьте что скрипт работает:

API_ID=12345678 API_HASH="abc123..." /root/venv/bin/python3 /root/tg-digest-fetch.py

Шаг 5. Создать Telegram-бота для отправки

Для отправки дайджеста нужен отдельный бот. Создаётся за 1 минуту:

  1. Напишите @BotFather в Telegram
  2. Отправьте /newbot
  3. Придумайте имя и username (должен заканчиваться на bot)
  4. Получите токен вида 1234567890:ABCdef... — сохраните его
  5. Напишите вашему боту /start — это нужно чтобы он мог слать вам сообщения

Узнайте ваш Telegram ID (куда бот будет слать дайджест):

  1. Напишите @userinfobot
  2. Он покажет ваш числовой ID — сохраните

Шаг 6. Установить Claude Code

Claude Code анализирует данные из чатов и формирует дайджест. Установите его там где будет работать бот — на сервере или локально на Mac:

npm install -g @anthropic-ai/claude-code

Авторизация на Mac (локально)

Если бот будет работать на Mac — авторизуйтесь интерактивно:

claude login

Выберите 1 — Claude account with subscription, откройте ссылку в браузере, вставьте код обратно в терминал.

Авторизация на сервере (VPS)

На сервере обычный claude login не подойдёт — он открывает браузер, которого на VPS нет. Кроме того, стандартный OAuth-токен истекает каждые ~10 часов. Если ваш cron запустится после истечения — дайджест не отправится.

Решение — long-lived токен через setup-token. Он действует 1 год и не требует обновления.

На Mac (где есть браузер) выполните:

claude setup-token

Откроется браузер для авторизации. После этого в терминале появится токен вида sk-ant-oat01-... — скопируйте его.

На сервере добавьте этот токен в переменные окружения (мы это сделаем в Шаге 7 вместе с остальными переменными). Claude Code автоматически подхватывает CLAUDE_CODE_OAUTH_TOKEN из окружения — никакие credentials-файлы не нужны.

Проверьте что работает (на сервере — с переменной, на Mac — без):

claude -p "скажи привет" --output-format text

Шаг 7. Скрипт дайджеста

Теперь главный скрипт — он берёт данные из файла, отправляет Claude на анализ и присылает дайджест в Telegram.

Промпт для Claude Code:

Напиши bash-скрипт /root/tg-digest-send.sh который:

1. Читает переменные из /root/.env.digest:
   TELEGRAM_BOT_TOKEN=...
   TELEGRAM_MY_ID=...
   API_ID=...
   API_HASH=...

2. Запускает /root/venv/bin/python3 /root/tg-digest-fetch.py для получения свежих данных

3. Читает сегодняшний файл из ~/.digest/YYYY-MM-DD.json

4. Вызывает Claude Code неинтерактивно:
   claude -p "$PROMPT" --allowedTools "Bash" --max-turns 10 --output-format text

   Промпт для Claude должен содержать:
   - Данные из JSON-файла
   - Задание: проанализировать сообщения, выделить самое важное и интересное,
     сформировать дайджест до 15 пунктов, отфильтровать флуд и мусор
   - Задание: отправить результат через curl в Telegram API на $TELEGRAM_MY_ID
   - Формат сообщения: Markdown, заголовок с датой, пронумерованные пункты

5. Логирует результат в /var/log/tg-digest.log с временными метками

Сделай скрипт исполняемым (chmod +x).

После того как Claude напишет скрипт — создайте файл с вашими переменными. Выполните в терминале сервера (или на Mac, если работаете локально):

cat > /root/.env.digest << 'EOF'
export TELEGRAM_BOT_TOKEN=1234567890:ABCdef...
export TELEGRAM_MY_ID=123456789
export API_ID=12345678
export API_HASH=abc123def456...
export CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-...
EOF
chmod 600 /root/.env.digest

Переменная CLAUDE_CODE_OAUTH_TOKEN — тот самый long-lived токен из Шага 6. На Mac его можно не добавлять, если вы авторизовались через claude login.

Запустите вручную для проверки:

/root/tg-digest-send.sh

Через 1-2 минуты должен прийти дайджест в личку бота.

Шаг 8. Настроить расписание

Добавьте задачу в cron — бот будет запускаться каждый день в 9 утра. Выполните в терминале (на сервере или на Mac):

crontab -e

Добавьте строку (время в UTC, подберите под ваш часовой пояс):

# Дайджест Telegram в 9:00 по московскому времени (UTC+3 = 06:00 UTC)
0 6 * * * /root/tg-digest-send.sh >> /var/log/tg-digest.log 2>&1

Сохраните и выйдите. Cron подхватит изменения автоматически.

Что дальше

Базовая система готова. Вот что можно добавить:

  • Несколько расписаний — утренний и вечерний дайджест
  • Еженедельная сводка — анализ за 7 дней по воскресеньям
  • Фильтр по ключевым словам — бот сигнализирует если в чатах появилось что-то важное (например, упоминание вашего продукта)
  • Дайджест в группу — отправка не в личку, а в закрытый чат с коллегами
  • Разные форматы — краткий или подробный, зависит от дня недели
  • Напоминание об обновлении токена — long-lived токен действует год, добавьте себе напоминание в календарь чтобы обновить его через claude setup-token

Весь этот гайд — то что я реально использую каждый день. Скрипты из шагов 4 и 7 написал Claude Code за несколько минут. Самое долгое — авторизация Telethon и BotFather, и то это 10 минут руками.

Как выглядит готовый дайджест

Бот присылает одно сообщение в Telegram: заголовок с датой, до 15 пронумерованных пунктов — тема из чата и 1-2 предложения сути. Имён отправителей нет, только содержание. Вот как выглядит реальный вывод из моих чатов:

📋 Дайджест Telegram — 5 июля 2026

1. [Claude Code] background agent notifications — сессии
   которые ждут ввода или завершились теперь уведомляют сами,
   без ручного обхода чатов.

2. [Claude Code] /dataviz skill для дизайна дашбордов
   с runnable color-palette validator в комплекте.

3. [@nakodil_ai] Пост о структуре .claude/: hooks, skills,
   commands — разбор что куда класть и зачем.

... ещё 12 пунктов

Обработано: 15 чатов.

Первые два пункта — из реального changelog Claude Code, третий — из моего канала. Промпт в шаге 7 задаёт формат жёстко: Claude не добавляет вводных и выводов, только пронумерованный список тем.

Скрипт (шаг 4) отсекает сообщения короче 15 символов до отправки в Claude — «ок», «+1», стикеры убираются на входе. Чем чище фильтр, тем точнее дайджест на выходе.

Как остановить или удалить дайджест-бот

Отключить расписание — одна строка в crontab. Удалить полностью — четыре команды и @BotFather. Порядок важен: файл сессии Telethon это авторизованный доступ к вашему аккаунту, его нужно убрать явно — недостаточно просто удалить скрипты.

Остановить расписание (скрипты остаются)

crontab -e
# Найдите строку с tg-digest-send.sh и удалите её

Удалить полностью

rm /root/tg-digest-send.sh /root/tg-digest-fetch.py
rm ~/digest_session.session
rm -rf ~/.digest/
rm /root/.env.digest

Telegram-бот: напишите @BotFather, команда /deletebot, выберите нужного. Токен из .env.digest станет недействительным автоматически.

Сессию Telethon можно отозвать и через Telegram: Настройки → Конфиденциальность и безопасность → Активные сессии. Там она отображается как отдельное устройство — удобно если файл сессии уже удалён, а сессию нужно закрыть.

Источники

Частые вопросы

Как автоматически читать Telegram-каналы и получать дайджест каждое утро?

Стек: Python + Telethon (парсинг) + Claude Code (анализ) + cron (расписание). Telethon работает от имени вашего аккаунта — читает любые чаты и каналы к которым у вас есть доступ. Claude Code вызывается неинтерактивно через claude -p и возвращает готовый дайджест. Cron запускает всё по расписанию. Настройка занимает ~2 часа.

Нужен ли VPS для Telegram-дайджест бота или можно запустить локально?

VPS нужен только если хотите гарантированную доставку каждый день вне зависимости от того, включён ли компьютер. На Mac или Windows бот работает так же — просто компьютер должен быть включён в момент запуска cron. Для начала проще запустить локально, а сервер добавить позже если нужна надёжность.

Как авторизовать Claude Code на сервере без браузера?

Стандартный claude login на VPS не работает — открывает браузер которого нет. Плюс OAuth-токен истекает через ~10 часов. Решение: на Mac выполните claude setup-token, получите токен вида sk-ant-oat01-..., добавьте его как CLAUDE_CODE_OAUTH_TOKEN в файл окружения на сервере. Токен действует 1 год.

Можно ли парсить закрытые Telegram-группы или только публичные каналы?

Telethon работает от имени вашего аккаунта как обычный Telegram-клиент — значит доступны любые чаты и каналы в которых вы состоите: публичные, закрытые, приватные группы. ID чатов можно узнать запустив iter_dialogs() — он выведет список всех ваших диалогов с числовыми ID.

Сколько стоит запустить Telegram-дайджест бот?

VPS — $4-7 в месяц (Hetzner, DigitalOcean, Timeweb). Подписка Claude Pro или Max — обязательна для неинтерактивного вызова. Дополнительных платных сервисов нет: Telethon бесплатный, BotFather бесплатный, API Telegram бесплатный.

Есть ли готовый @digest_bot который можно подключить без кода?

Универсального @digest_bot нет — у каждого свои чаты, язык и нужный формат сводки. В этом гайде собирается свой дайджест-бот за ~2 часа: Python-скрипт парсит ваши каналы, Claude Code анализирует и форматирует, ваш бот шлёт сводку в личку.

Как удалить или полностью отключить дайджест-бот?

Остановить расписание: откройте `crontab -e` и удалите строку с tg-digest-send.sh. Удалить полностью: `rm /root/tg-digest-send.sh /root/tg-digest-fetch.py ~/digest_session.session /root/.env.digest`, затем отзовите бота через @BotFather командой /deletebot. Файл сессии digest_session.session — авторизованный доступ к вашему аккаунту: удалите его или явно отзовите через Telegram → Настройки → Активные сессии.

Читать дальше

Remotion + Claude Code: как поставить скилл и сделать первый ролик

Как я монтирую рилсы через Claude Code: HyperFrames, скилл youtube-edit и что пришлось допилить

16 промптов для моушн-графики в стиле Apple (и мой бриф)

Skills по теме

Новые скиллы и гайды в TelegramПишу в канал, когда нахожу что-то стоящее или выходит новый материал.

Открыть канал