Настраиваем автоотчет по всем Telegram чатам и каналам
Настройте бота который каждое утро читает ваши Telegram-чаты и каналы и присылает сводку. Telethon + Claude Code + VPS — 0 минут ручного чтения.
У меня в Telegram было 15 чатов и каналов которые я читал каждое утро. Это занимало 20-30 минут — и половину времени я просто листал шум.
Теперь в 9 утра мне приходит одно сообщение. Claude собрал всё важное, отфильтровал мусор и написал сводку. Я трачу 2 минуты вместо 30.
В этом гайде — как настроить точно такую же систему с нуля.
Что строим
Бот который по расписанию:
- Читает сообщения из любых Telegram-чатов и каналов к которым у вас есть доступ
- Фильтрует шум (короткие реплики, стикеры, приветствия)
- Отправляет данные Claude Code для анализа
- Присылает готовый дайджест вам в личку
Стек: 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.
- Зайдите на my.telegram.org
- Войдите через номер телефона
- Перейдите в API development tools
- Заполните форму: App title (любое), Short name (любое), Platform — Other
- Нажмите 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 минуту:
- Напишите @BotFather в Telegram
- Отправьте
/newbot - Придумайте имя и username (должен заканчиваться на
bot) - Получите токен вида
1234567890:ABCdef...— сохраните его - Напишите вашему боту
/start— это нужно чтобы он мог слать вам сообщения
Узнайте ваш Telegram ID (куда бот будет слать дайджест):
- Напишите @userinfobot
- Он покажет ваш числовой 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'
TELEGRAM_BOT_TOKEN=1234567890:ABCdef...
TELEGRAM_MY_ID=123456789
API_ID=12345678
API_HASH=abc123def456...
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 минут руками.