> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

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

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

<Note>
  Запланированные задачи требуют Claude Code v2.1.72 или более поздней версии. Проверьте вашу версию с помощью `claude --version`.
</Note>

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

Задачи привязаны к сеансу: они существуют в текущем разговоре и останавливаются при запуске нового. Возобновление с помощью `--resume` или `--continue` восстанавливает любую задачу, которая не [истекла](#seven-day-expiry): повторяющуюся задачу, созданную в течение последних 7 дней, или одноразовую, чьё запланированное время ещё не наступило. Для планирования, которое сохраняется независимо от любого сеанса, используйте [Routines](/ru/routines) для создания процедуры на управляемой Anthropic инфраструктуре, установите [Desktop запланированные задачи](/ru/desktop-scheduled-tasks) или используйте [GitHub Actions](/ru/github-actions).

<h2 id="compare-scheduling-options">
  Сравните варианты планирования
</h2>

Claude Code offers three ways to schedule recurring or one-off work:

|                            | [Cloud](/en/routines)          | [Desktop](/en/desktop-scheduled-tasks) | [`/loop`](/en/scheduled-tasks)      |
| :------------------------- | :----------------------------- | :------------------------------------- | :---------------------------------- |
| Runs on                    | Anthropic cloud                | Your machine                           | Your machine                        |
| Requires machine on        | No                             | Yes                                    | Yes                                 |
| Requires open session      | No                             | No                                     | Yes                                 |
| Persistent across restarts | Yes                            | Yes                                    | Restored on `--resume` if unexpired |
| Access to local files      | No (fresh clone)               | Yes                                    | Yes                                 |
| MCP servers                | Connectors configured per task | [Config files](/en/mcp) and connectors | Inherits from session               |
| Permission prompts         | No (runs autonomously)         | Configurable per task                  | Inherits from session               |
| Customizable schedule      | Via `/schedule` in the CLI     | Yes                                    | Yes                                 |
| Minimum interval           | 1 hour                         | 1 minute                               | 1 minute                            |

<Tip>
  Use **cloud tasks** for work that should run reliably without your machine. Use **Desktop tasks** when you need access to local files and tools. Use **`/loop`** for quick polling during a session.
</Tip>

<h2 id="run-a-prompt-repeatedly-with-/loop">
  Запланируйте повторяющуюся подсказку с помощью /loop
</h2>

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

| Что вы предоставляете      | Пример                      | Что происходит                                                                                                              |
| :------------------------- | :-------------------------- | :-------------------------------------------------------------------------------------------------------------------------- |
| Интервал и подсказка       | `/loop 5m check the deploy` | Ваша подсказка запускается по [фиксированному расписанию](#run-on-a-fixed-interval)                                         |
| Только подсказка           | `/loop check the deploy`    | Ваша подсказка запускается с [интервалом, выбранным Claude](#let-claude-choose-the-interval) на каждой итерации             |
| Только интервал или ничего | `/loop`                     | Запускается [встроенная подсказка обслуживания](#run-the-built-in-maintenance-prompt) или ваш `loop.md`, если он существует |

Вы также можете передать skill в качестве подсказки, например `/loop 20m /review-pr 1234`, чтобы повторно запустить этот skill на каждой итерации. {/* min-version: 2.1.196 */}Начиная с версии 2.1.196, запланированное срабатывание запускает только skills, которые Claude [может вызывать самостоятельно](/ru/skills#control-who-invokes-a-skill). Следующие элементы поступают к Claude как простой текст вместо выполнения:

* встроенные команды, такие как `/permissions`, `/model` или `/clear`
* skills, отмеченные [`disable-model-invocation: true`](/ru/skills#frontmatter-reference)
* skills, скрытые от Claude параметром [`skillOverrides`](/ru/skills#override-skill-visibility-from-settings) или правилом `Skill` [deny](/ru/skills#restrict-claude’s-skill-access)
* [MCP prompts](/ru/mcp#use-mcp-prompts-as-commands), такие как `/mcp__github__list_prs`; skills, которые предоставляет MCP сервер, всё ещё запускаются

<h3 id="run-on-a-fixed-interval">
  Запуск по фиксированному интервалу
</h3>

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

```text theme={null}
/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 сообщает вам, что он выбрал.

<h3 id="let-claude-choose-the-interval">
  Позвольте Claude выбрать интервал
</h3>

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

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

```text theme={null}
/loop check whether CI passed and address any review comments
```

Когда вы запрашиваете динамическое расписание `/loop`, Claude может использовать инструмент [Monitor](/ru/tools-reference#monitor-tool) напрямую. Monitor запускает фоновый скрипт и передаёт каждую строку вывода обратно, что полностью избегает опроса и часто более эффективно по токенам и отзывчиво, чем повторный запуск подсказки через интервал.

Динамически запланированный цикл появляется в вашем [списке запланированных задач](#manage-scheduled-tasks) как любая другая задача, поэтому вы можете перечислить или отменить его таким же образом. [Правила дрожания](#jitter) не применяются к нему, но [истечение через семь дней](#seven-day-expiry) применяется: цикл автоматически заканчивается через семь дней после его запуска.

<Note>
  На Bedrock, Vertex AI и Microsoft Foundry подсказка без интервала запускается по фиксированному расписанию в 10 минут вместо этого.
</Note>

<h3 id="run-the-built-in-maintenance-prompt">
  Запустите встроенную подсказку обслуживания
</h3>

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

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

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

```text theme={null}
/loop
```

Простой `/loop` запускает эту подсказку с [динамически выбранным интервалом](#let-claude-choose-the-interval). Добавьте интервал, например `/loop 15m`, чтобы запустить его по фиксированному расписанию вместо этого. Чтобы заменить встроенную подсказку своей собственной по умолчанию, см. [Настройте подсказку по умолчанию с помощью loop.md](#customize-the-default-prompt-with-loop-md).

<Note>
  На Bedrock, Vertex AI и Microsoft Foundry `/loop` без подсказки выводит сообщение об использовании вместо запуска подсказки обслуживания.
</Note>

<h3 id="customize-the-default-prompt-with-loop-md">
  Настройте подсказку по умолчанию с помощью loop.md
</h3>

Файл `loop.md` заменяет встроенную подсказку обслуживания вашими собственными инструкциями. Он определяет одну подсказку по умолчанию для простого `/loop`, а не список отдельных запланированных задач, и игнорируется всякий раз, когда вы предоставляете подсказку в командной строке. Чтобы запланировать дополнительные подсказки рядом с ней, используйте `/loop <prompt>` или [попросите Claude напрямую](#manage-scheduled-tasks).

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

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

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

```markdown title=".claude/loop.md" theme={null}
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 байт, усекается.

<Note>
  На Bedrock, Vertex AI и Microsoft Foundry `loop.md` не читается и `/loop` без подсказки выводит сообщение об использовании вместо этого.
</Note>

<h3 id="stop-a-loop">
  Остановите цикл
</h3>

Чтобы остановить `/loop` во время ожидания следующей итерации, нажмите `Esc`. Это очищает ожидающее пробуждение, поэтому цикл не срабатывает снова. Задачи, которые вы запланировали, [попросив Claude напрямую](#manage-scheduled-tasks), не затрагиваются `Esc` и остаются на месте до тех пор, пока вы их не удалите.

В [режиме самостоятельного темпа](#let-claude-choose-the-interval) Claude также может завершить цикл самостоятельно, не планируя следующее пробуждение после того, как задача будет доказуемо завершена. Циклы по фиксированному интервалу продолжают работать до тех пор, пока вы их не остановите или [не пройдёт семь дней](#seven-day-expiry).

<h2 id="set-a-one-time-reminder">
  Установите одноразовое напоминание
</h2>

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

```text theme={null}
remind me at 3pm to push the release branch
```

```text theme={null}
in 45 minutes, check whether the integration tests passed
```

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

<h2 id="manage-scheduled-tasks">
  Управление запланированными задачами
</h2>

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

```text theme={null}
what scheduled tasks do I have?
```

```text theme={null}
cancel the deploy check job
```

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

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

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

<h2 id="how-scheduled-tasks-run">
  Как работают запланированные задачи
</h2>

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

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

<h3 id="jitter">
  Дрожание
</h3>

Чтобы избежать того, чтобы каждый сеанс обращался к API в один и тот же момент по стене часов, планировщик добавляет детерминированное смещение к времени срабатывания:

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

Смещение получается из ID задачи, поэтому одна и та же задача всегда получает одно и то же смещение. Если точное время имеет значение, выберите минуту, которая не является `:00` или `:30`, например `3 9 * * *` вместо `0 9 * * *`, и одноразовое дрожание не будет применяться.

<h3 id="seven-day-expiry">
  Истечение через семь дней
</h3>

Повторяющиеся задачи автоматически истекают через 7 дней после создания. Задача срабатывает в последний раз, а затем удаляет себя. Это ограничивает, как долго может работать забытый цикл. Если вам нужна повторяющаяся задача, которая длится дольше, отмените и пересоздайте её перед истечением срока, или используйте [Routines](/ru/routines) или [Desktop запланированные задачи](/ru/desktop-scheduled-tasks) для долговечного планирования.

<h2 id="cron-expression-reference">
  Справочник выражений cron
</h2>

`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.

<h2 id="disable-scheduled-tasks">
  Отключите запланированные задачи
</h2>

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

<h2 id="limitations">
  Ограничения
</h2>

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

* Задачи срабатывают только во время работы Claude Code и в режиме ожидания. Закрытие терминала или выход из сеанса отменяет всё. [Перемещение сеанса в фоновый режим](/ru/agent-view#from-inside-a-session) переносит задачи `/loop` в фоновый сеанс, который продолжает работать без терминала.
* Нет наверстывания пропущенных срабатываний. Если запланированное время задачи проходит, пока Claude занят долгоживущим запросом, она срабатывает один раз, когда Claude становится свободным, а не один раз за каждый пропущенный интервал.
* Запуск нового разговора очищает все задачи, привязанные к сеансу. Возобновление с помощью `claude --resume` или `claude --continue` восстанавливает задачи, которые не истекли: повторяющиеся задачи в течение семи дней после создания и одноразовые задачи, чьё запланированное время ещё не наступило. Фоновые задачи Bash и monitor никогда не восстанавливаются при возобновлении.

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

* [Routines](/ru/routines): запуск на инфраструктуре, управляемой Anthropic, по расписанию, через вызов API или на события GitHub
* [GitHub Actions](/ru/github-actions): используйте триггер `schedule` в CI
* [Desktop запланированные задачи](/ru/desktop-scheduled-tasks): запуск локально на вашей машине
