Telegram

Сценарии: агент и ваш Telegram

Документация: v0.24.0

Как поручить Claude Code или Codex регулярные задачи: утреннюю сводку, отчёт по чату, обязательства и вопросы без ответа. Каждый сценарий содержит запрос агенту, разрешённые команды и способ запуска по расписанию.

Подготовка

  1. Установите tg и войдите: Установка, Вход и сессии.

  2. Передайте агенту 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
  3. Сохраните запросы ниже в файлах, например в ~/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 list

permissions ограничивает и ваши команды, пока вы не отмените настройку через 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>&1

    cron запускает задачи с почти пустым окружением, что создаёт две типичные проблемы в 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 — сценарии поддержки клиентов с указанием изменяемых данных и настроек для адаптации.

На этой странице