Сценарии: агент и ваш Telegram
Документация: v0.24.0
Как поручить Claude Code или Codex регулярные задачи: утреннюю сводку, отчёт по чату, обязательства и вопросы без ответа. Каждый сценарий содержит запрос агенту, разрешённые команды и способ запуска по расписанию.
Подготовка
-
Установите
tgи войдите: Установка, Вход и сессии. -
Передайте агенту skill с инструкциями по
tg:# Claude Code mkdir -p ~/.claude/skills/tg-cli && tg skill show > ~/.claude/skills/tg-cli/SKILL.md # Codex and Gemini CLI mkdir -p ~/.agents/skills/tg-cli && tg skill show > ~/.agents/skills/tg-cli/SKILL.md -
Сохраните запросы ниже в файлах, например в
~/tg-recipes/. Команды расписания читают запрос из файла.
Клиенту без терминала, например Claude Desktop, skill не нужен. В Cursor также можно использовать MCP. Подключите сервер (tg mcp config выводит запись настроек) и используйте готовые запросы: catch-up, review, reply, find (MCP).
Разрешения агента
Агент по расписанию работает без вашего участия. Поэтому ограничения нужно задавать настройками, а не только текстом запроса: модель может неверно понять «ничего не отправляй», но не обойдёт настройку, которую ей запрещено менять.
Ограничьте доступные команды. Claude Code в режиме -p выполняет только инструменты из --allowedTools. Если tg messages send нет в списке, агент не сможет вызвать её:
claude -p "$(cat ~/tg-recipes/morning.md)" --allowedTools "Bash(tg inbox:*)"Ограничьте действия профиля. Это работает для любого агента:
tg config set permissions.messages readonly # no sends, edits or deletions
tg config set permissions.messages.send ask # or: a yes or no before each send
tg config set sendsPerHour 5 # or: at most five sends an hour
tg recipients add "Book club" # and only to the chats on this listpermissions ограничивает и ваши команды, пока вы не отмените настройку через tg config unset permissions.messages. Чтобы ограничить только агента, выделите ему отдельный профиль. Все попытки отправки, включая отклонённые, видны в tg sends list. Подробнее: Безопасность.
Чтение незаметно для собеседников. Команды сценариев ниже не отмечают сообщения прочитанными: никто не видит, что агент открыл чат.
Запуск по расписанию
-
Задачи по расписанию Claude Desktop работают на вашем компьютере, где доступны
tgи ваша сессия. См. документацию Claude. -
cron и
claude -p— на любом компьютере, включённом в нужное время:30 8 * * * claude -p "$(cat ~/tg-recipes/morning.md)" --allowedTools "Bash(tg inbox:*)" >> ~/tg-recipes/morning.log 2>&1cron запускает задачи с почти пустым окружением, что создаёт две типичные проблемы в Linux:
node: not found, код 127. Node из nvm, fnm или Volta не находится в системномPATH, который использует cron.- «Данные приложения Telegram не найдены, хотя вход на компьютере выполнен», код 4.
tgне видит хранилище ключей. Не входите заново: сессия работает, проблема в окружении.
Добавьте обе строки в начало
crontab -eсо своими значениями. Каталог показываетdirname "$(which node)", номер —id -u:PATH=/home/you/.nvm/versions/node/v24.0.0/bin:/usr/local/bin:/usr/bin:/bin XDG_RUNTIME_DIR=/run/user/1000Хранилище ключей открыто, пока вы вошли в систему. Сначала запустите задачу вручную и прочитайте журнал. О режиме
-p: документация Claude. -
В открытой сессии Claude Code:
/loopили «напомни в 15:00». Работает, пока сессия открыта (документация Claude).
Облачные routines Claude не подходят: они выполняются на другом компьютере без вашего tg и сессии.
Утренняя сводка
Изменения в Telegram: нет. Разрешите: Bash(tg inbox:*).
Выполни
tg inbox --new --json. Сгруппируй сообщения по чатам. Для каждого чата напиши одну строку: кто пишет и чего хочет. Сначала то, что требует ответа сегодня. Рекламу и служебные уведомления объедини в одну строку в конце.
--new показывает каждое сообщение один раз: tg запоминает позицию и продолжает с неё при следующем запуске. Первый запуск охватывает последние 24 часа.
Недельный отчёт по чату
Изменения в Telegram: нет. Разрешите: Bash(tg messages list:*).
Прочитай последние 7 дней чата «Книжный клуб»:
tg messages list "Book club" --after-time 7d --limit 200 --json. Если ответ содержит"hasMore": true, продолжи чтение. Подготовь отчёт: решения, кто за что отвечает и к какому сроку, открытые вопросы. Укажи дату и автора каждого пункта.
Кто кому что должен
Изменения в Telegram: нет. Разрешите: Bash(tg review:*), Bash(tg messages context:*), Bash(tg messages search:*).
Выполни
tg review --since-time <where the last review ended> --json(без--since-time— последние 3 дня). Раздели результат на три списка: мои обязательства, ожидания от других, вопросы для уточнения. Для каждого пункта укажи чат, дату и идентификаторы сообщений-оснований; срок — только если он был назван. Перед отметкой просрочки проверь последующие сообщения о выполнении. В конце укажи--since-timeдля следующей проверки и список открытых пунктов.
Для следующей проверки используйте тот же запрос с открытыми пунктами предыдущей. В MCP-клиенте это готовый запрос review.
Что осталось без вашего ответа
Короткий вариант: tg review --since-time 7d --unanswered --json — вопросы без ответа вам в личных чатах, вам или администраторам в группах. Сценарий ниже шире: находит и просьбы без вопросительного знака.
Изменения в Telegram: нет. Разрешите: Bash(tg chats list:*), Bash(tg messages list:*).
Выполни
tg chats list --kind dialog --limit 30 --json. Для чатов с последним сообщением за 7 дней прочитайtg messages list <chat id> --limit 5 --json. Покажи чаты, где последнее сообщение не моё и содержит вопрос или просьбу: от кого, о чём и сколько дней назад.
Поиск в переписке
Изменения в Telegram: нет. Разрешите: Bash(tg messages search:*), Bash(tg messages context:*).
Найди «invoice» командой
tg messages search invoice --json. Для каждого результата прочитайtg messages context <locator> --jsonи расскажи, кто что сказал и когда.
Поиск охватывает только сохранённое на этом компьютере. Для полной истории сначала загрузите чат самостоятельно: это запрос от вашего аккаунта — tg store fetch <chat> (Локальная база).
Черновик ответа
Изменения в Telegram: только после вашего согласия. Сценарий для диалога с агентом, а не расписания.
Прочитай последние 20 сообщений чата с @example_user и предложи ответ на последний вопрос. Не отправляй — покажи мне текст.
После согласия агент отправляет: tg messages send @example_user "…". Агент без терминала подключается через tg mcp --confirm-send: перед отправкой вы видите чат и текст и подтверждаете или отклоняете действие (MCP).
Проверка вашей группы
Изменения в Telegram: нет. Разрешите: Bash(tg review:*), Bash(tg chats events:*), Bash(tg chats members list:*).
Выполни
tg review --chat "Hiking" --unanswered 4h --jsonиtg chats events "Hiking" --since-time 7d --json. Кратко перечисли вопросы без ответа: кто и с какого времени ждёт; кто вступил или был добавлен за неделю и кем. Не отвечай участникам — покажи, на что мне ответить.
Все сценарии для групп: Управление группами.
Другие подборки
Сценарии работы агента с Telegram из других проектов. Их запросы можно адаптировать для tg, заменив инструменты командами:
- Telegram MCP: полное руководство — утренняя сводка, черновики ответов, дайджест каналов, поиск по чатам.
- pioh/tg — Claude Code и Codex с личным аккаунтом: дайджест каждые N минут, напоминание при отсутствии ответа маме 15 минут, наблюдение за людьми и чатами.
- Gorgias MCP cookbook — сценарии поддержки клиентов с указанием изменяемых данных и настроек для адаптации.