Екатерина Юферева · AI-NATIVE BRAND · @yufereva_katerina

Telegram-агент, который
ничего не забывает за тебя

Он читает твои рабочие чаты вместо тебя и раз в день присылает то, что реально важно: кто с кем и когда договорился созвониться, какие есть обязательства перед кем-то, что горит по срокам. Встречи сами падают в календарь. Работает локально на твоём компьютере — не подписка, не облачный сервис, никто посторонний твою переписку не видит, кроме модели, которая её анализирует.

Кому подходитрабочие договорённости тонут в чатах
УстройствоMac или Windows
Время на подключение~1 час, без опыта
Бюджетот ~$1–2 в месяц

Результат один и тот же независимо от компьютера — работающий агент, который сам всё присылает. Сборка внутри может немного отличаться (например, автозапуск на Windows настраивается иначе, чем на Mac) — Claude Code сам подстроится под твою систему.

нюанс на MacЕсли собираешь на macOS — не клади папку проекта на Desktop, в Documents или Downloads. Система блокирует фоновым процессам доступ к этим трём папкам, и автозапуск будет молча падать. Подробнее — в разделе «Если что-то пошло не так».
// как устроено

Один круг в сутки

Твои чаты в Telegram
Собираются новые сообщения — текст и голосовые (расшифровываются автоматически)
Claude вычленяет: созвоны · долги · важное
Google CalendarТолько твой личный календарь, без приглашения участников
Приватный каналОтдельный канал в Telegram — не Saved Messages, чтобы не мешалось с обычной перепиской

Сводка — только за сегодня, с полуночи по твоему часовому поясу, каждый день заново. Это не архив и не поиск по всей истории переписки (если такой поиск нужен — см. пункт 9 брифа ниже, это отдельная опция).

// пошагово

6 шагов до готового агента

как это читатьДальше — шаги для понимания, что вообще происходит. По факту за руку через каждый из них тебя проведёт сам Claude Code — не нужно запоминать или следовать этому в одиночку.
1 Дай Клоду промпт 1 сообщение · копируешь и вставляешь целиком +

Скопируй весь блок целиком и вставь в новую сессию Claude Code. В анкете внутри — где написано «впиши свой ответ», впиши; где непонятно — оставь пустым, Клод сам переспросит простыми словами.

Собери мне персонального агента, который мониторит мои чаты в Telegram и присылает
сводку важного: договорённости о звонках/встречах (с автопостановкой в Google
Calendar), обязательства ("я должен/должна X", с пометкой срочности), прочие важные
рабочие моменты.

АРХИТЕКТУРА (обязательно так, не предлагай альтернатив без явного запроса):
- Отдельный локальный Python-проект в НОВОЙ папке в моей домашней директории —
  НЕ встроенный в текущую сессию чата, потому что доступ к личному Telegram-
  аккаунту и ежедневная автономная работа требуют отдельного локального
  процесса, независимого от того, открыт ли чат со мной.
- Если ты собираешь это на macOS: НЕ клади проект на Desktop, в Documents или
  в Downloads — macOS блокирует фоновым процессам доступ к этим трём папкам без
  отдельного разрешения, и автозапуск будет молча падать с PermissionError.
  Используй домашнюю папку напрямую (например ~/telegram-digest).
- Telegram: доступ через личный аккаунт (MTProto, библиотека Telethon), НЕ через
  Bot API — боты не видят личные переписки, а мне нужны в том числе они.
- Анализ переписок: Anthropic API (модель claude-sonnet-5), forced tool-use для
  структурированного JSON-ответа (не текстовый JSON — ловит меньше ошибок парсинга).
- Переписка в анализе группируется в два уровня: клиент/проект → конкретный чат
  внутри него (см. пункт 8 брифа) — это сильно снижает путаницу между чатами с
  похожими или пересекающимися темами.
- Календарь: Google Calendar API, OAuth (Desktop app), события без приглашения
  участников — только в мой личный календарь. При создании события ВСЕГДА отправляй
  "наивное" время (без +HH:MM смещения в строке) плюс отдельное поле timeZone —
  если положить туда одновременно и смещение, и timeZone, Google Calendar API
  начинает непредсказуемо путать часы (проверено на практике).
- Голосовые сообщения: расшифровывать через faster-whisper (модель "small",
  локально, бесплатно, БЕЗ системного ffmpeg — аудио декодируется через PyAV,
  которая ставится через pip и тащит свои библиотеки).
- Доставка сводки: НЕ в Saved Messages, а в отдельный приватный Telegram-канал,
  который скрипт сам создаёт через Telethon (CreateChannelRequest, я в нём
  единственный участник).
- Планировщик: используй родной для моей операционной системы механизм
  автозапуска — launchd на macOS, Task Scheduler на Windows, cron/systemd timer
  на Linux. Если нужно два запуска в день (см. пункт 3 брифа) — настрой два
  отдельных задания с разными аргументами командной строки, конкретный способ
  зависит от ОС.
- ВАЖНО: планировщик ориентируется на системные часы компьютера, а не на
  TIMEZONE-переменную из .env — это два независимых понятия. Сверь их и явно
  спроси меня, если они расходятся.
- Предупреди меня заранее, что деньги на Anthropic API могут закончиться молча
  (скрипт просто перестанет работать без явного уведомления) — и сразу покажи,
  как включить Auto-reload в Anthropic Console, чтобы это не повторялось.

БРИФ (мои ответы ниже; там, где пусто — спроси меня, не додумывай сам):

1. Какие чаты мониторить:
   [ ] все личные чаты и группы, кроме каналов-подписок (по умолчанию)
   [ ] только группы
   [ ] другое: _______

2. Куда присылать сводку:
   [ ] отдельный приватный Telegram-канал (по умолчанию)
   [ ] Saved Messages
   [ ] другое: _______

3. Расписание:
   [ ] один запуск в день (по умолчанию), время: _______
   [ ] два запуска: дневной (тихий, только календарь, без сводки) в _____ и
       вечерний (со сводкой) в _____ — только если специально нужно
   Часовой пояс, в котором это время должно срабатывать: _______

4. Что делать с найденными созвонами/встречами:
   [ ] ставить в Google Calendar автоматически, без приглашения участников
       (по умолчанию)
   [ ] только упоминать в тексте сводки, в календарь не ставить
   [ ] другое: _______

5. Нужно ли распознавание голосовых сообщений:
   [ ] да (по умолчанию)
   [ ] нет, только текст

6. Формат сводки — заголовок и разделы (можно оставить пример или дать свой):
   🔔 СВОДКА ВАЖНОГО ЗА ДЕНЬ
   🔥 Горит по срокам (обязательства со сроком сегодня/завтра или явной срочностью)
   📅 Созвоны/встречи
   🤝 Договорённости/задачи
   📌 Другое важное
   ✅ Добавлено в календарь сегодня (если решишь ставить события в календарь)

7. Часовой пояс для резолва дат ("завтра"/"в четверг"/"в 10:00"): _______

8. Есть ли чаты, которые относятся к одному клиенту/проекту, но называются
   по-разному? Перечисли ТОЧНЫЕ названия чатов как они есть в Telegram (не
   пересказ, а дословно — регистр и пробелы важны):
   _______

9. Нужна ли возможность искать по уже накопленным перепискам (например,
   "когда и в каком чате Х говорил про Y за последний месяц")?
   [ ] да, добавь отдельную команду поиска (по умолчанию)
   [ ] нет, не нужно

ПОРЯДОК РАБОТЫ:
1. Сначала задай мне уточняющие вопросы по брифу выше, НЕ приступай к коду сразу.
2. Собери проект и синтаксически проверь все модули до того, как просить меня
   заводить настоящие ключи.
3. Проведи меня по подключению внешних сервисов ПОШАГОВО и ПРОСТЫМ ЯЗЫКОМ, без
   технического жаргона, буквально «нажми сюда». Если у меня не открывается
   терминал — открой его сам. Учитывай мою операционную систему.
4. Логины и пароли (код Telegram, пароль двухфакторки, вход в Google) ввожу
   СТРОГО лично я — не проси присылать их тебе в чат и не вводи их за меня.
5. После настройки прогони пайплайн на реальных сегодняшних данных, покажи мне
   результат ДО отправки в календарь/канал.
6. Настрой автозапуск и покажи, как проверить/остановить.
7. Если в брифе отмечен поиск (пункт 9): добавь search.py — он берёт все
   сохранённые файлы data/raw/*.json за нужный период (по умолчанию месяц,
   можно указать другой), находит подходящие сообщения по ключевым словам и
   прогоняет их через Claude, чтобы получить внятный ответ: где, когда, кто
   именно это сказал, с цитатой. Покажи, как им пользоваться — просто попросить
   в чате "найди, когда в переписках говорили про Х".

ВАЖНО ПРО КОНФИДЕНЦИАЛЬНОСТЬ:
- Все ключи/сессии/токены — только локально, в .gitignore.
- Тексты переписок уходят ТОЛЬКО в Anthropic API для анализа, больше никуда —
  объясни мне это словами.
- Ты не входишь в мои аккаунты за меня — код и пароли ввожу я.
2 Заведи 3 ключа ~15–20 минут · Telegram, Anthropic, Google Cloud +

Показано на примере macOS — на Windows экраны сайтов те же самые (это веб-страницы, от системы не зависят), а шаги с терминалом и автозапуском в конце будут выглядеть иначе. Claude Code сам покажет актуальные для твоей системы команды.

2.1Telegram — api_id и api_hash
  1. Открой в браузере my.telegram.org
  2. Введи номер телефона, привязанный к Telegram → войди по коду из приложения
  3. Нажми API development tools
  4. Заполни форму: App title — любое название, Short name — любое слово латиницей (5–32 символа), Platform — любой вариант
  5. Нажми Create application
  6. Скопируй App api_id и App api_hash со страницы — их нужно будет вставить в чат с Клодом
Пустая форма создания приложения на my.telegram.org
Готовые App api_id и App api_hash (значения скрыты)
2.2Anthropic — ключ для анализа переписок
  1. Открой console.anthropic.com
  2. На экране выбора нажми Individual (не Organization)
    Экран выбора Individual / Organization в Anthropic Console
  3. Войди через свой Google-аккаунт
  4. Если появится экран «Buy usage credits to get started» — выбери 20 $ (Recommended) и заполни платёжные данные. Это бюджет, на котором будет работать анализ переписок
    Экран покупки кредитов Buy usage credits
  5. Слева найди API KeysCreate Key → дай любое имя
  6. Появится ключ вида sk-ant-api03-... — скопируй сразу, второй раз посмотреть не получится
    Окно Save your API key (ключ скрыт)
  7. Включи автопополнение: BillingAuto reload → порог, например «пополнять на $20, когда останется меньше $5»
важноБез Auto-reload деньги закончатся молча — скрипт просто перестанет работать, без явного уведомления. Включи сразу, не откладывай.
2.3Google Cloud — доступ к календарю
  1. Открой console.cloud.google.com, войди тем же гуглом. Если это первый раз — увидишь Welcome / My First Project, использовать его, отдельный проект не нужен
    Стартовый экран Google Cloud, My First Project
  2. В поиске сверху вбей Google Calendar API → открой страницу → нажми Enable → дождись статуса Enabled
    Страница Google Calendar API со статусом Enabled
  3. Открой Google Auth Platform → Overview. Если увидишь «Google Auth Platform not configured yet» — жми Get started
    Google Auth Platform not configured yet, кнопка Get started
  4. Мастер: App name любое, User support email своя почта → Next → Audience: External → Next → Contact Information своя почта → Next → галочка согласия → Continue/Create
  5. Появится сообщение «OAuth configuration created!»
    Уведомление OAuth configuration created!
  6. Слева Audience → вниз до Test users+ Add users → впиши свою почту → Save
    Окно Add users для добавления test user
  7. Слева ClientsCreate OAuth client: Application type — Desktop app (не Web), любое имя → Create
  8. В открывшемся окне нажми Download JSON — единственный момент, когда это возможно
    Окно OAuth client created с кнопкой Download JSON
  9. Скажи Клоду, в какую папку скачался файл (обычно Downloads) — он сам перенесёт его куда нужно
3 Отдай ключи Клоду вставить 4 значения в чат +

Вставь в чат: api_id и api_hash из шага 2.1, ключ sk-ant-... из шага 2.2, номер телефона от Telegram. Клод сам разложит их по файлам — вручную ничего редактировать не нужно.

4 Войди в Telegram самостоятельно 1 раз · вводишь код и, возможно, пароль +
  1. Клод откроет терминал/командную строку сам. Дождись запроса кода — он придёт в Telegram или SMS, впиши самый последний (если Telegram скинул ошибку и прислал код заново — старый уже не сработает)
    Терминал с запросом кода подтверждения
  2. Если попросит пароль — это не код, а отдельный пароль двухфакторки из настроек Telegram
    Терминал с запросом пароля двухфакторки
  3. Увидишь подтверждение входа — готово, окно можно закрыть
важноКод и пароль вводи только в это окно — не присылай их Клоду в чат. Это твой личный доступ к аккаунту.
5 Разреши доступ к календарю 1 раз · вход в Google в браузере +

При первом реальном запуске откроется браузер с окном входа в Google — войди и разреши доступ. Дальше это не понадобится.

6 Проверка и автозапуск финальный прогон на реальных данных +

Клод прогонит пайплайн на твоих реальных сегодняшних сообщениях и покажет результат — прежде чем что-то создастся в календаре или уйдёт в канал. Проверь, что всё выглядит разумно, и попроси включить автозапуск.

// бюджет

Сколько это стоит в месяц

Платный кусок — только анализ переписок через Anthropic API (Telegram и Google Calendar бесплатны, распознавание голосовых — тоже, работает на компьютере). Расчёт по ~$3 за миллион токенов на вход (сверь актуальную цифру на pricing-странице Anthropic — она может измениться), один запуск анализа в день.

Объём переписокСообщений / деньВ месяц
Небольшой · пара рабочих чатов50–150~$1–2
Средний · несколько активных проектов400–600~$4–5
Большой · много групп, весь день активность1000–1500+~$10–14

Если включишь два запуска в день (пункт 3 брифа) — цифры примерно удваиваются. Расход скачет день ото дня, поэтому важнее включить Auto-reload (шаг 2.2), чем один раз прикинуть сумму на глаз.

// если что-то пошло не так

Это нормально

Ничего не приходит, и в логах нет явной ошибки
Если ты на macOS и папка проекта случайно оказалась на Desktop, в Documents или Downloads — система блокирует фоновым процессам доступ к этим папкам без отдельного разрешения, и скрипт падает мгновенно, до того как успевает залогировать что-то по-человечески. Попроси Клода проверить путь проекта и перенести его в домашнюю папку.
Скрипт вдруг перестал что-либо находить/присылать
Проверь баланс на Anthropic (console.anthropic.com → Billing). Ошибка «Your credit balance is too low» ничем внешне не проявляется, кроме как в логе — включи Auto-reload сразу, чтобы не ловить это регулярно.
Не нахожу терминал (macOS)
⌘ + Пробел → Terminal → Enter. Не получается — попроси Клода открыть за тебя.
После ввода кода пишет Invalid code
Telegram иногда сбрасывает процесс сам и присылает код заново. Бери самый последний.
Терминал завис на «Sleeping for Ns»
Telegram сам придерживает скорость запросов при первом сборе истории. Нормально, просто медленно (10–30 минут в первый раз). Дальше — за секунды.
В календаре время выглядит неверно
Google Calendar может показывать время в таймзоне самого календаря, а не той, что использовалась при создании. Событие может быть правильным — попроси Клода перепроверить с явным указанием нужной таймзоны, прежде чем что-то удалять.
Модель перепутала время/дату двух похожих договорённостей в одном чате
Если подряд идёт несколько коротких «да» на разные вопросы, модель иногда путает, к какому вопросу какое «да» относится. Не баг, а предел точности на зашумлённых данных — первое время стоит проверять созданные события глазами.
Модель перепутала двух клиентов
Заполни пункт 8 в брифе или скажи Клоду в чате «эти чаты — один клиент». Названия должны быть точными, скопированными из Telegram — регистр и пробелы важны.
// дальше

Как управлять и вносить изменения

Не обязательно писать в тот же чат, где всё собиралось. Открой любую новую сессию Claude Code и скажи: «У меня уже есть проект в папке ~/telegram-digest, хочу [что нужно]» — Клод сам прочитает файлы и внесёт изменения. История переписки не нужна, важна только папка с проектом.

Так же в чате можно: поменять время или список чатов · сказать «эти два чата — один клиент» · попросить найти что-то в переписках за прошлый период, если включён поиск (пункт 9 брифа) — просто спроси «найди, когда в переписках обсуждали Х».

// приватность

Кто видит переписку

Все ключи и сессии хранятся только на твоём компьютере. Тексты переписок за день уходят только в Anthropic — чтобы найти важное, больше никуда. Claude Code не входит в твои аккаунты за тебя — код и пароли вводишь только ты.