LIVE//NAKODIL.SITE//PAYLOAD :: GUIDE

Гайд · 9 мин чтения

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

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

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

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

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

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

Что строим

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

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

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

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

Шаг 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 подхватит изменения автоматически.

Что дальше

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

Весь этот гайд — то что я реально использую каждый день. Скрипты из шагов 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: Настройки → Конфиденциальность и безопасность → Активные сессии. Там она отображается как отдельное устройство — удобно если файл сессии уже удалён, а сессию нужно закрыть.

Источники

Скиллы по теме

Весь каталог →
Tool
Claude Code
Главный инструмент этого сайта: агент Anthropic, который пишет и правит код прямо у тебя на машине. Все гайды, скиллы и квест построены вокруг него.
Skill
Scroll World
Собирает scroll-лендинг с эффектом «полёта сквозь мир»: по мере прокрутки камера влетает снаружи в каждую сцену, проходит внутрь и без склеек перетекает к следующей — один непрерывный полёт по сгенерированному 3D-миру под конкретный бренд или индустрию. Работает не только в Claude Code, но и в Codex и любом SKILL.md-совместимом агенте. Полезен, когда нужен не обычный лендинг, а вау-презентация — продукт, студия, ивент, где важно «прокатить» посетителя по истории бренда. Даёшь описание индустрии — получаешь готовый scroll-scrub на своём стеке. Прокрутка тут основное взаимодействие, так что подходит не под любой сайт.
Tool
motionsites.ai
Библиотека готовых дизайн-промптов: выбираешь дизайн, копируешь промпт — Claude Code собирает страницу. Быстрый старт с нуля; при своём бренд-стиле — только как референс, проверил на себе.
Skill
Ponytail
Плагин для Claude Code в духе «ленивого сеньора»: перед генерацией кода агент проходит лестницу решений — нужен ли код вообще (YAGNI) → есть в stdlib → нативная фича платформы → уже установленная зависимость → одна строка → и только потом минимально необходимое. Каждый срез помечается комментарием-маркером ponytail: с подсказкой, как развернуть решение обратно. Ленивый, но не безответственный: валидацию, обработку ошибок, безопасность и доступность не режет. Автор замерил на пяти типовых задачах (три модели Claude, медиана): −80–94% кода, в 3–6 раз быстрее, на 42–75% дешевле по API. И честно оговаривает: результат зависит от модели и промта — на коротких задачах и «многословных» reasoning-моделях правила перевешивают экономию. Бенчмарки открыты и воспроизводимы. По смыслу — сосед caveman из этого каталога.
Квест
Собери свой сайт на Claude Code — за неделю
Не лекция: копируешь команды, видишь результат. 7 шагов, первые два бесплатно.
Открыть квест

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

Как автоматически читать 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 → Настройки → Активные сессии.