SpyBara
Go Premium

scheduled-tasks.md 2026-10-08 22:58 UTC to 2026-10-09 19:00 UTC

This page contains 27 additions and 10 deletions.

2026
Thu 1 23:59 Fri 9 21:01

Запуск подсказок по расписанию

Используйте /loop и инструменты планирования cron для повторного запуска подсказок, опроса статуса или установки одноразовых напоминаний в сеансе Claude Code.

Запланированные задачи позволяют Claude автоматически повторно запускать подсказку через определённый интервал. Используйте их для опроса развёртывания, контроля pull request, проверки долгоживущей сборки или напоминания себе о чём-то позже в сеансе. Чтобы реагировать на события по мере их возникновения вместо опроса, см. Channels: ваш CI может отправить сбой непосредственно в сеанс. Чтобы продолжить работу сеанса от одного хода к другому до выполнения условия, а не через интервал, см. /goal.

Задачи привязаны к сеансу. При возобновлении с помощью --resume или --continue Claude Code восстанавливает задачи, которые не истекли, за исключением перечисленных в разделе Limitations. Для планирования, которое сохраняется независимо от любого сеанса, используйте Routines для создания процедуры на облаке, установите Desktop запланированные задачи или используйте GitHub Actions.

Сравните варианты планирования

Claude Code предлагает три способа планирования повторяющихся или одноразовых задач:

Cloud Desktop /loop
Запускается на Cloud, управляется Anthropic по умолчанию Ваша машина Ваша машина
Требует включенную машину Нет Да Да
Требует открытую сессию Нет Нет Да
Сохраняется после перезагрузки Да Да Восстанавливается при --resume, с исключениями
Доступ к локальным файлам Нет (свежий клон) Да Да
MCP servers Connectors настроены для каждой задачи Config files и connectors Наследуется из сессии
Запросы разрешений Нет (работает автономно) Настраивается для каждой задачи Наследуется из сессии
Настраиваемое расписание Через /schedule в CLI Да Да
Минимальный интервал 1 час 1 минута 1 минута

Запустите подсказку повторно с помощью /loop

Встроенный навык /loop bundled skill — это самый быстрый способ запустить подсказку повторно, пока сеанс остается открытым. Интервал и подсказка являются необязательными, и то, что вы предоставляете, определяет поведение цикла.

Что вы предоставляете Пример Что происходит
Интервал и подсказка /loop 5m check the deploy Ваша подсказка запускается по фиксированному расписанию
Только подсказка /loop check the deploy Ваша подсказка запускается с интервалом, который выбирает Claude на каждой итерации
Только интервал или ничего /loop Запускается встроенная подсказка обслуживания, или ваш loop.md, если он существует

Вы также можете передать навык в качестве подсказки, например /loop 20m /review-pr 1234, чтобы повторно запустить этот навык на каждой итерации. Запланированное выполнение запускает только навыки, которые Claude разрешено вызывать самостоятельно. Следующие элементы поступают к Claude как простой текст вместо выполнения:

  • Встроенные команды, такие как /permissions, /model или /clear
  • Навыки, отмеченные disable-model-invocation: true, включая встроенный навык /verify
  • Навыки, скрытые от Claude параметром skillOverrides или правилом Skill deny
  • MCP prompts, такие как /mcp__github__list_prs

Запуск с фиксированным интервалом

Когда вы указываете интервал, Claude преобразует его в выражение cron, планирует задание и подтверждает кадр и ID задания.

/loop 5m check if the deployment finished and tell me what happened

Интервал может предшествовать подсказке как отдельный токен, например 30m, или следовать за ней как предложение, например every 2 hours. Поддерживаемые единицы: s для секунд, m для минут, h для часов и d для дней.

Секунды округляются до ближайшей минуты, так как cron имеет гранулярность в одну минуту. Интервалы, которые не соответствуют чистому шагу cron, такие как 7m или 90m, округляются до ближайшего интервала, который соответствует, и Claude сообщает вам, что он выбрал.

Позвольте Claude выбрать интервал

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

Приведенный ниже пример проверяет CI и комментарии рецензии, при этом Claude ждет дольше между итерациями, когда PR становится неактивным:

/loop check whether CI passed and address any review comments

В сеансе, где доступен инструмент Monitor, Claude может использовать его напрямую, когда вы просите динамическое расписание /loop. Monitor запускает фоновый скрипт и передает каждую строку вывода обратно, что полностью избегает опроса и часто более эффективно по токенам и отзывчиво, чем повторный запуск подсказки с интервалом.

Динамически запланированный цикл отображается в вашем списке запланированных задач как любая другая задача, поэтому вы можете перечислить или отменить его таким же образом. Правила jitter к нему не применяются, но семидневное истечение применяется.

Запуск встроенной подсказки обслуживания

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

  • продолжить любую незавершенную работу из разговора
  • ухаживать за pull request текущей ветки: комментарии рецензии, неудачные запуски CI, конфликты слияния
  • запустить проходы очистки, такие как охота на ошибки или упрощение, когда ничего больше не ожидается

Claude не начинает новые инициативы вне этой области, и необратимые действия, такие как push или удаление, выполняются только когда они продолжают то, что стенограмма уже авторизовала.

/loop

Простой /loop запускает эту подсказку с динамически выбранным интервалом. Добавьте интервал, например /loop 15m, чтобы запустить его по фиксированному расписанию. Чтобы заменить встроенную подсказку своей собственной по умолчанию, см. Настройте подсказку по умолчанию с помощью loop.md.

Настройте подсказку по умолчанию с помощью loop.md

Создайте файл loop.md, чтобы заменить встроенную подсказку обслуживания своими собственными инструкциями. Он определяет одну подсказку по умолчанию для простого /loop, а не список отдельных запланированных задач, и Claude Code игнорирует его всякий раз, когда вы предоставляете подсказку в командной строке. Чтобы запланировать дополнительные подсказки рядом с ней, используйте /loop <prompt> или попросите Claude напрямую.

Claude ищет файл в двух местах и использует первый найденный.

Путь Область
.claude/loop.md На уровне проекта. Имеет приоритет, когда оба файла существуют.
~/.claude/loop.md На уровне пользователя. Применяется в любом проекте, который не определяет свой собственный.

Файл представляет собой простой Markdown без требуемой структуры. Напишите его так, как если бы вы вводили подсказку /loop напрямую. Следующий пример поддерживает ветку выпуска в хорошем состоянии:

Check the `release/next` PR. If CI is red, pull the failing job log,
diagnose, and push a minimal fix. If new review comments have arrived,
address each one and resolve the thread. If everything is green and
quiet, say so in one line.

Изменения в loop.md вступают в силу на следующей итерации, поэтому вы можете уточнить инструкции во время выполнения цикла. Когда loop.md не существует ни в одном месте, цикл возвращается к встроенной подсказке обслуживания. Держите файл кратким: содержимое, превышающее 25 000 байт, усекается.

Остановите цикл

Чтобы остановить самостоятельный /loop во время ожидания следующей итерации, нажмите Esc. Это очищает ожидающее пробуждение, поэтому цикл не срабатывает снова. Задачи, которые вы запланировали, попросив Claude напрямую, не затрагиваются Esc и остаются на месте, пока вы их не удалите.

В режиме самостоятельного выполнения Claude также может завершить цикл самостоятельно после завершения задачи. Claude вызывает инструмент ScheduleWakeup с stop: true, который немедленно отменяет ожидающее пробуждение. Если итерация заканчивается без переплана или остановки, Claude Code планирует одно резервное пробуждение примерно через 20 минут и завершает цикл, когда эта итерация также не переплана.

Циклы с фиксированным интервалом продолжают работать, пока вы не отмените их как любую другую запланированную задачу или не истекут семь дней.

Установите одноразовое напоминание

Для одноразовых напоминаний опишите то, что вы хотите, на естественном языке вместо использования /loop. Claude планирует одноразовую задачу, которая удаляет себя после выполнения.

remind me at 3pm to push the release branch
in 45 minutes, check whether the integration tests passed

Claude привязывает время срабатывания к определённой минуте и часу, используя выражение cron, и подтверждает, когда оно сработает.

Управление запланированными задачами

Попросите Claude на естественном языке перечислить или отменить задачи, или обратитесь непосредственно к базовым инструментам.

what scheduled tasks do I have?
cancel the deploy check job

Под капотом Claude использует эти инструменты:

Инструмент Назначение
CronCreate Запланировать новую задачу. Принимает 5-полевое выражение cron, подсказку для запуска и указание на то, повторяется ли она или срабатывает один раз.
CronList Перечислить все запланированные задачи с их ID, расписаниями и подсказками.
CronDelete Отменить задачу по ID.

Каждая запланированная задача имеет 8-символьный ID, который вы можете передать в CronDelete. Сеанс может одновременно содержать до 50 запланированных задач.

Как выполняются запланированные задачи

Планировщик каждую секунду проверяет, не наступил ли срок выполнения задач, и ставит такие задачи в очередь с низким приоритетом. Запланированный промпт срабатывает между вашими ходами, а не в тот момент, когда Claude формирует ответ. Если Claude занят, когда наступает срок задачи, промпт ожидает завершения текущего хода.

Все значения времени интерпретируются в вашем локальном часовом поясе. Cron-выражение вроде 0 9 * * * означает 9 утра там, где вы запускаете Claude Code, а не по UTC.

Джиттер

Запланированная задача может выполниться не в то время, которое указано в её расписании. Если бы задачи каждой сессии выполнялись точно по расписанию, многие из них обращались бы к API в один и тот же момент, поэтому Claude Code сдвигает время выполнения каждой задачи. Повторяющиеся задачи выполняются с опозданием, а одноразовые задачи, запланированные на начало часа или на половину часа, выполняются немного раньше.

Насколько поздно выполняется повторяющаяся задача

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

Задачи, которые выполняются чаще, получают более короткие задержки, а 30 минут — это максимальная задержка, которую может получить задача. Ниже приведены диапазоны задержки для некоторых распространённых расписаний:

Задача выполняется Задержка составляет от
Каждые 10 минут 0 до 5 минут
Каждые 30 минут 0 до 15 минут
Каждый час или реже, например ежедневно 0 до 30 минут

Например, 7,37 * * * * планирует задачу на :07 и :37, между которыми 30 минут, поэтому её задержка составляет от 0 до 15 минут. Если задержка этой задачи равна 14 минутам, она выполняется в :21 и :51 каждый час. Изменение расписания на другую минуту сдвигает время выполнения, и задержка по-прежнему добавляется сверху.

Когда одноразовая задача выполняется раньше

Одноразовая задача, запланированная на :00 или :30, выполняется раньше — до 90 секунд. Claude Code не сдвигает одноразовую задачу, запланированную на любую другую минуту, поэтому, когда время важно, планируйте её не на начало часа и не на половину часа: 3 9 * * * вместо 0 9 * * *.

Истечение срока через семь дней

Срок действия повторяющихся задач автоматически истекает через 7 дней после создания. Задача срабатывает в последний раз, а затем удаляет себя. Это ограничивает время работы забытого цикла. Если вам нужно, чтобы повторяющаяся задача действовала дольше, отмените и создайте её заново до истечения срока или используйте Routines либо запланированные задачи Desktop для долговременного планирования.

Справочник выражений cron

CronCreate принимает стандартные 5-полевые выражения cron: minute hour day-of-month month day-of-week. Все поля поддерживают подстановочные знаки (*), одиночные значения (5), шаги (*/15), диапазоны (1-5) и списки, разделённые запятыми (1,15,30).

Пример Значение
*/5 * * * * Каждые 5 минут
0 * * * * Каждый час в начале часа
7 * * * * Каждый час в 7 минут
0 9 * * * Каждый день в 9 утра по местному времени
0 9 * * 1-5 Будни в 9 утра по местному времени
30 14 15 3 * 15 марта в 14:30 по местному времени

День недели использует 0 или 7 для воскресенья через 6 для субботы. Расширенный синтаксис, такой как L, W, ?, и псевдонимы имён, такие как MON или JAN, не поддерживаются.

Когда ограничены как день месяца, так и день недели, дата совпадает, если совпадает любое поле. Это следует стандартной семантике vixie-cron.

Отключите запланированные задачи

Установите CLAUDE_CODE_DISABLE_CRON=1 в вашей среде, чтобы полностью отключить планировщик. Инструменты cron и /loop становятся недоступными, и любые уже запланированные задачи перестают срабатывать. См. Переменные окружения для полного списка флагов отключения.

Ограничения

Планирование, привязанное к сеансу, имеет присущие ему ограничения:

  • Задачи срабатывают только во время работы Claude Code и в режиме ожидания. Закрытие терминала или выход из сеанса отменяет всё. Перемещение сеанса в фоновый режим переносит задачи /loop в фоновый сеанс, который продолжает работать без терминала.
  • Нет наверстывания пропущенных срабатываний. Если запланированное время задачи проходит, пока Claude занят долгоживущим запросом, она срабатывает один раз, когда Claude становится свободным, а не один раз за каждый пропущенный интервал.
  • Когда вы возобновляете сеанс с помощью claude --resume или claude --continue, Claude Code восстанавливает задачи, запланированные с помощью CronCreate, за исключением повторяющихся задач, которые истекли, и одноразовых задач, чьё запланированное время уже прошло. Самостоятельный /loop не восстанавливается, поэтому запустите /loop снова, чтобы перезапустить его. Фоновые задачи Bash и monitor никогда не восстанавливаются при возобновлении.
  • С отключённой загрузкой флагов функций Claude Code сохраняет задачу, которую вы попросили сохранить между сеансами, в файле .claude/scheduled_tasks.json проекта. Когда директория .claude или этот файл является символической ссылкой, Claude Code возвращает ошибку вместо планирования задачи. Сохранённая задача запускается только в папке проекта, где вы её создали. Если вы скопируете файл в другую папку, например в новый worktree, сеансы там будут отображать скопированные задачи, но не будут их запускать, поэтому создайте задачу снова в этой папке.

Для автоматизации, управляемой cron, которая должна работать без присмотра: