SpyBara
Go Premium

scheduled-tasks.md 2026-09-17 05:00 UTC to 2026-09-18 23:58 UTC

This page contains 49 additions and 54 deletions.

2026
Thu 10 23:00 Fri 18 23:58

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

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

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

Задачи привязаны к сеансу: они существуют в текущем разговоре и останавливаются при запуске нового. Возобновление с помощью --resume или --continue восстанавливает задачи, которые не истекли, за исключением перечисленных в разделе 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 в один и тот же момент по стене часов, планировщик добавляет детерминированное смещение к времени срабатывания:

  • Повторяющиеся задачи срабатывают до 30 минут после запланированного времени (или до половины интервала для задач, которые выполняются чаще, чем раз в час). Почасовое задание, запланированное на :00, может срабатывать в любое время до :30.
  • Одноразовые задачи, запланированные на верхнюю или нижнюю часть часа, срабатывают до 90 секунд раньше.

Смещение получается из ID задачи, поэтому одна и та же задача всегда получает одно и то же смещение. Если точное время имеет значение, выберите минуту, которая не является :00 или :30, например 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 восстанавливает задачи, запланированные с помощью CronCreate, за исключением повторяющихся задач, которые истекли, и одноразовых задач, чьё запланированное время уже прошло. Самостоятельный /loop не восстанавливается, поэтому запустите /loop снова, чтобы перезапустить его. Фоновые задачи Bash и monitor никогда не восстанавливаются при возобновлении.
  • С отключённой загрузкой флагов функций Claude Code сохраняет задачу, которую вы попросили сохранить между сеансами, в файле .claude/scheduled_tasks.json проекта. Когда директория .claude или этот файл является символической ссылкой, Claude Code возвращает ошибку вместо планирования задачи. Сохранённая задача запускается только в папке проекта, где вы её создали. Если вы скопируете файл в другую папку, например в новый worktree, сеансы там будут отображать скопированные задачи, но не будут их запускать, поэтому создайте задачу снова в этой папке.

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