--resume или --continue Claude Code восстанавливает задачи, которые не истекли, за исключением перечисленных в разделе Ограничения. Для планирования, которое сохраняется независимо от любой сессии, создайте облачную запланированную задачу, настройте запланированную задачу Desktop или используйте GitHub Actions.
Сравните варианты планирования
Claude Code предлагает три способа планирования повторяющихся или одноразовых задач:Запустите подсказку повторно с помощью /loop
Встроенный навык/loop bundled skill — это самый быстрый способ запустить подсказку повторно, пока сеанс остается открытым. Интервал и подсказка являются необязательными, и то, что вы предоставляете, определяет поведение цикла.
Вы также можете передать навык в качестве подсказки, например
/loop 20m /review-pr 1234, чтобы повторно запустить этот навык на каждой итерации. Запланированное выполнение запускает только навыки, которые Claude разрешено вызывать самостоятельно. Следующие элементы поступают к Claude как простой текст вместо выполнения:
- Встроенные команды, такие как
/permissions,/modelили/clear - Навыки, отмеченные
disable-model-invocation: true, включая встроенный навык/verify - Навыки, скрытые от Claude параметром
skillOverridesили правиломSkilldeny - MCP prompts, такие как
/mcp__github__list_prs
Запуск с фиксированным интервалом
Когда вы указываете интервал, Claude преобразует его в выражение cron, планирует задание и подтверждает кадр и ID задания.30m, или следовать за ней как предложение, например every 2 hours. Поддерживаемые единицы: s для секунд, m для минут, h для часов и d для дней.
Секунды округляются до ближайшей минуты, так как cron имеет гранулярность в одну минуту. Интервалы, которые не соответствуют чистому шагу cron, такие как 7m или 90m, округляются до ближайшего интервала, который соответствует, и Claude сообщает вам, что он выбрал.
Позвольте Claude выбрать интервал
Когда вы опускаете интервал, Claude выбирает его динамически вместо запуска по фиксированному расписанию cron. После каждой итерации он выбирает задержку от одной минуты до одного часа на основе того, что он наблюдал: короткие ожидания, пока сборка завершается или PR активен, более длительные ожидания, когда ничего не ожидается. Выбранная задержка и причина для нее выводятся в конце каждой итерации. Приведенный ниже пример проверяет CI и комментарии рецензии, при этом Claude ждет дольше между итерациями, когда PR становится неактивным:/loop. Monitor запускает фоновый скрипт и передает каждую строку вывода обратно, что полностью избегает опроса и часто более эффективно по токенам и отзывчиво, чем повторный запуск подсказки с интервалом.
Динамически запланированный цикл отображается в вашем списке запланированных задач как любая другая задача, поэтому вы можете вывести его в списке или отменить тем же способом. Список показывает его ожидающее пробуждение как одноразовую задачу, поэтому пробуждение, запланированное на :00 или :30, может запуститься немного раньше. Семидневное истечение срока также применяется к циклу.
Динамически выбранные интервалы и встроенная подсказка обслуживания работают на каждом поставщике и с получением флага функции отключенным. На Amazon Bedrock, Claude Platform на AWS, Google Cloud’s Agent Platform и Microsoft Foundry, или с отключенным получением, оба требуют Claude Code v2.1.248 или позже.
Запуск встроенной подсказки обслуживания
Когда вы опускаете подсказку, Claude использует встроенную подсказку обслуживания вместо предоставленной вами. На каждой итерации он работает со следующим по порядку:- продолжить любую незавершенную работу из разговора
- ухаживать за pull request текущей ветки: комментарии рецензии, неудачные запуски CI, конфликты слияния
- запустить проходы очистки, такие как охота на ошибки или упрощение, когда ничего больше не ожидается
/loop запускает этот промпт с динамически выбираемым интервалом:
/loop 15m, чтобы вместо этого запускать его по фиксированному расписанию. Чтобы заменить встроенный промпт собственным промптом по умолчанию, см. Настройка промпта по умолчанию с помощью loop.md.
Настройте подсказку по умолчанию с помощью loop.md
Создайте файлloop.md, чтобы заменить встроенную подсказку обслуживания своими собственными инструкциями. Он определяет одну подсказку по умолчанию для простого /loop, а не список отдельных запланированных задач, и Claude Code игнорирует его всякий раз, когда вы предоставляете подсказку в командной строке. Чтобы запланировать дополнительные подсказки рядом с ней, используйте /loop <prompt> или попросите Claude напрямую.
Claude ищет файл в двух местах и использует первый найденный.
Файл представляет собой простой Markdown без требуемой структуры. Напишите его так, как если бы вы вводили подсказку
/loop напрямую. Следующий пример поддерживает ветку выпуска в хорошем состоянии:
.claude/loop.md
loop.md вступают в силу на следующей итерации, поэтому вы можете уточнить инструкции во время выполнения цикла. Когда loop.md не существует ни в одном месте, цикл возвращается к встроенной подсказке обслуживания. Держите файл кратким: содержимое, превышающее 25 000 байт, усекается.
Остановите цикл
- Цикл с самостоятельным темпом: пока цикл ожидает следующей итерации, нажмите
Esc, чтобы остановить его. Вы также можете остановить его с помощьюCtrl+C, пока Claude бездействует, за исключением фоновой сессии, к которой вы подключились. УведомлениеPending wakeup cancelledподтверждает, что цикл больше не сработает. - Цикл с фиксированным интервалом: чтобы остановить цикл, такой как
/loop 5m, попросите Claude отменить его, напримерcancel the deploy check loop.EscиCtrl+Cне останавливают его, как и любую задачу, которую вы запланировали, попросив Claude напрямую. Цикл, который вы не отменили, завершается по истечении семи дней.
ScheduleWakeup с stop: true, который немедленно отменяет ожидающее пробуждение. Если итерация заканчивается без переплана или остановки, Claude Code планирует одно резервное пробуждение примерно через 20 минут и завершает цикл, когда эта итерация также не переплана.
Отключение без остановки цикла
Когда вы подключены к фоновой сессии и Claude бездействует, дважды нажмитеCtrl+C в пустом промпте, чтобы отключиться. Цикл с самостоятельным темпом, ожидающий там следующей итерации, продолжает работать, и эта итерация начинается по расписанию. Чтобы вместо этого остановить цикл, нажмите Esc перед отключением. Отключение с помощью Ctrl+C без остановки цикла требует Claude Code v2.1.295 или новее.
Установите одноразовое напоминание
Для одноразовых напоминаний опишите то, что вы хотите, на естественном языке вместо использования/loop. Claude планирует одноразовую задачу, которая удаляет себя после выполнения.
Управление запланированными задачами в рамках сессии
Попросите Claude на естественном языке перечислить или отменить задачи, или обратитесь непосредственно к базовым инструментам.
Каждая запланированная задача имеет 8-символьный ID, который вы можете передать в
CronDelete. Сеанс может одновременно содержать до 50 запланированных задач.
Как выполняются запланированные задачи в рамках сессии
Планировщик каждую секунду проверяет, не наступил ли срок выполнения задач, и ставит такие задачи в очередь с низким приоритетом. Запланированный промпт срабатывает между вашими ходами, а не в тот момент, когда Claude формирует ответ. Если Claude занят, когда наступает срок задачи, промпт ожидает завершения текущего хода. Все значения времени интерпретируются в вашем локальном часовом поясе. Cron-выражение вроде0 9 * * * означает 9 утра там, где вы запускаете Claude Code, а не по UTC.
Джиттер
Запланированная задача может выполниться не в то время, которое указано в её расписании. Если бы задачи каждой сессии выполнялись точно по расписанию, многие из них обращались бы к API в один и тот же момент, поэтому Claude Code сдвигает время выполнения каждой задачи. Повторяющиеся задачи выполняются с опозданием, за исключением задачи, которая выполняется каждые пять минут и записана как*/5 * * * *. Одноразовые задачи, запланированные на начало часа или на половину часа, выполняются немного раньше.
Чтобы узнать, когда наступит следующий срок выполнения задачи, посмотрите на строку под вызовом CronCreate от Claude в вашем терминале. В этой строке после расписания указано это время, например next run 10:21 AM. Чтобы проверить снова позже, попросите Claude вывести список ваших задач и найдите next run в строках под вызовом CronList. Для отображения времени следующего запуска в этих строках требуется Claude Code v2.1.299 или новее.
Насколько поздно выполняется повторяющаяся задача
Если повторяющаяся задача не выполняется каждые пять минут, каждый её запуск начинается с опозданием не более чем на половину интервала до следующего запуска и не более чем на 30 минут. Ваша задача относится к одному из трёх случаев:- Равномерно распределённые запуски: задача с равными интервалами, например ежечасная, ежедневная или каждые 10 минут, каждый раз выполняется с опозданием на одно и то же количество минут, в том числе когда сессия простаивает.
- Неравномерно распределённые запуски: задача с неравными интервалами, например запланированная на
:00и:15каждого часа, может выполняться с разным опозданием при каждом запуске. - Каждые пять минут: задача, записанная как
*/5 * * * *, не задерживается. Запуск ровно через пять минут после предыдущего начался бы уже после истечения пятиминутного кэша промптов, поэтому каждый запуск начинается на 15 секунд раньше.
Например,
7,37 * * * * планирует задачу на :07 и :37, между которыми 30 минут, поэтому её задержка составляет от 0 до 15 минут. Если задержка этой задачи равна 14 минутам, она выполняется в :21 и :51 каждый час. Изменение расписания на другую минуту сдвигает время выполнения, и задержка по-прежнему добавляется сверху.
Когда одноразовая задача выполняется раньше
Одноразовая задача, запланированная на:00 или :30, выполняется раньше — до 90 секунд. Claude Code не сдвигает одноразовую задачу, запланированную на любую другую минуту, поэтому, когда время важно, планируйте её не на начало часа и не на половину часа: 3 9 * * * вместо 0 9 * * *.
Истечение срока через семь дней
Срок действия повторяющихся задач автоматически истекает через 7 дней после создания. Задача срабатывает в последний раз, а затем удаляет себя. Это ограничивает время работы забытого цикла. Если вам нужно, чтобы повторяющаяся задача действовала дольше, отмените и создайте её заново до истечения срока или используйте облачные запланированные задачи либо запланированные задачи Desktop для долговременного планирования.Справочник выражений cron
CronCreate принимает стандартные 5-полевые выражения cron: minute hour day-of-month month day-of-week. Все поля поддерживают подстановочные знаки (*), одиночные значения (5), шаги (*/15), диапазоны (1-5) и списки, разделённые запятыми (1,15,30).
День недели использует
0 или 7 для воскресенья через 6 для субботы. Расширенный синтаксис, такой как L, W, ?, и псевдонимы имён, такие как MON или JAN, не поддерживаются.
Когда ограничены как день месяца, так и день недели, дата совпадает, если совпадает любое поле. Это следует стандартной семантике vixie-cron.
Отключите запланированные задачи в рамках сеанса
УстановитеCLAUDE_CODE_DISABLE_CRON=1 в вашей среде, чтобы полностью отключить планировщик. CronCreate и /loop становятся недоступными, и любые уже запланированные задачи перестают срабатывать. Пока файл .claude/scheduled_tasks.json проекта содержит задачи, CronList и CronDelete остаются доступными, поэтому вы по-прежнему можете попросить Claude вывести их список или отменить их. См. Переменные окружения для полного списка флагов отключения.
Ограничения
Планирование, привязанное к сеансу, имеет присущие ему ограничения:- Задачи срабатывают только во время работы Claude Code и в режиме ожидания. Закрытие терминала или выход из сеанса отменяет всё. Перемещение сеанса в фоновый режим переносит задачи
/loopв фоновый сеанс, который продолжает работать без терминала. - Нет наверстывания пропущенных срабатываний. Если запланированное время задачи проходит, пока Claude занят долгоживущим запросом, она срабатывает один раз, когда Claude становится свободным, а не один раз за каждый пропущенный интервал.
- В фоновой сессии самостоятельный цикл останавливается, если время его следующего пробуждения наступает, когда процесс сессии не запущен, например после сбоя. Когда процесс запускается снова, в транскрипте отображается уведомление о том, что пробуждение не сработает. Чтобы продолжить цикл, ответьте в сессии и попросите Claude продолжить его выполнение.
- Когда вы возобновляете сессию с помощью
claude --resumeилиclaude --continue, Claude Code восстанавливает задачи, запланированные с помощьюCronCreate, за исключением повторяющихся задач, которые истекли, и одноразовых задач, чьё запланированное время уже прошло. Самостоятельный/loopне восстанавливается, поэтому запустите/loopснова, чтобы перезапустить его. - Восстановленная повторяющаяся задача не срабатывает для запусков, пропущенных, пока сессия не работала. Её следующий запуск — первый, время которого наступает после возобновления, и к этому запуску применяется джиттер.
- Когда вы возобновляете сессию с помощью
claude --resumeилиclaude --continue, Claude Code не перезапускает фоновые команды Bash и мониторы, которые работали на момент завершения сессии. Если какой-либо из них всё ещё нужен, попросите Claude запустить его снова. - С отключённой загрузкой флагов функций Claude Code сохраняет задачу, которую вы попросили сохранить между сеансами, в файле
.claude/scheduled_tasks.jsonпроекта. Когда директория.claudeили этот файл является символической ссылкой, Claude Code возвращает ошибку вместо планирования задачи. Сохранённая задача запускается только в папке проекта, где вы её создали. Если вы скопируете файл в другую папку, например в новый worktree, сеансы там будут отображать скопированные задачи, но не будут их запускать, поэтому создайте задачу снова в этой папке.
- Облачные запланированные задачи: запуск в облаке по расписанию, через вызов API или на события GitHub
- GitHub Actions: используйте триггер
scheduleв CI - Desktop запланированные задачи: запуск локально на вашей машине