Почему это важно именно вам
Есть задачи, где вы работаете таймером: раз в десять минут проверить, не пришёл ли ответ; раз в полчаса посмотреть, закончилась ли обработка; каждый час глянуть, не появилось ли новых заявок. Ничего интеллектуального — но внимание держит.
/loop перекладывает этот таймер на Claude: запрос повторяется сам с нужным интервалом, а вы возвращаетесь, когда есть что смотреть.
Важно сразу понять границу: /loop живёт внутри открытой сессии. Это инструмент для «пока я работаю», а не для «пока я сплю». Для второго — следующий урок.
Что это такое
/loop — встроенный скилл, который повторяет запрос по расписанию, пока сессия открыта.
Три формы вызова, и они ведут себя по-разному:
| Что задаёте | Пример | Что происходит |
|---|---|---|
| Интервал и запрос | /loop 5m проверь, пришли ли новые заявки |
Запрос повторяется примерно раз в 5 минут |
| Только запрос | /loop проверь статус обработки |
Claude сам выбирает интервал перед каждой итерацией |
| Только интервал или ничего | /loop |
Выполняется встроенный «обслуживающий» запрос или ваш файл loop.md |
Задачи привязаны к сессии: новая сессия — задач нет. При возобновлении (--resume, --continue) неистёкшие задачи восстанавливаются: повторяющиеся живут семь дней, разовые — до наступления времени.
Слово «примерно» не для красоты: чтобы тысячи сессий не стучались в API в одну секунду, планировщик добавляет каждой задаче постоянный сдвиг — до половины интервала для задач чаще часа. И «некруглые» интервалы вроде 7m или 90m округляются до ближайшего подходящего, о чём Claude скажет.
В качестве запроса можно передать скилл: /loop 20m /сводка-по-звонкам. Работает это только для скиллов, которые Claude имеет право вызывать сам; встроенные команды вроде /model в цикле не выполняются.
Итерация не врывается в середину чужого хода: если Claude занят, она подождёт окончания. Пропуски не догоняются — сколько бы интервалов ни прошло, сработает один раз.
Как работает на практике
Опрос во время работы
/loop 10m проверь, появились ли новые файлы в ~/Загрузки/выгрузки,
и если появились — разбери их по проектам
Вы занимаетесь своими делами в этой же сессии, а раз в десять минут задача выполняется.
Дать Claude выбрать темп
/loop следи за прогоном обработки и скажи, когда он закончится или упадёт
Без интервала Claude сам решает, когда проверять снова: если процесс идёт долго — реже, если приближается к концу — чаще. Выбирает он в пределах от минуты до часа и в конце каждой итерации печатает выбранную задержку и причину. Иногда вместо опроса он предложит инструмент Monitor: тот запускает фоновый скрипт и отдаёт строки вывода по мере появления — дешевле по лимиту и быстрее реагирует.
Остановить цикл
Способ зависит от формы. Цикл без интервала останавливается клавишей Esc, пока он ждёт следующей итерации; такой цикл Claude умеет завершить и сам, когда решит, что работа сделана. Цикл с фиксированным интервалом Esc не гасит — это обычная запланированная задача: скажите «покажи мои запланированные задачи» и «отмени задачу проверки заявок». Сам по себе он кончится только через семь дней.
Разовое напоминание
Для разового срабатывания /loop как раз не нужен: напишите обычными словами «через сорок минут напомни отправить отчёт», и Claude заведёт одноразовую задачу, которая после срабатывания удалит себя. Если написать /loop 40m …, получится повторяющаяся задача, которая будет дёргать вас каждые сорок минут целую неделю.
Когда опрос — плохая идея
Опрос — это «спрашивать каждые N минут». Если событие может прийти извне (сборка упала, письмо пришло, коллега ответил), правильнее не спрашивать, а получать уведомление. Для этого есть channels — механизм, при котором внешняя система сама вталкивает событие в вашу открытую сессию (о нём — в Дне 80).
Разница практическая: опрос тратит лимит на каждую проверку, даже когда ничего не произошло. Событие тратит только когда есть что обрабатывать.
Частый опрос — тихая утечка лимита
/loop 1m кажется безобидным, но это шестьдесят запросов в час, каждый со всем контекстом сессии. Выбирайте интервал по скорости реальных изменений: сборка идёт восемь минут — проверяйте раз в восемь минут, а не каждую.
Частые ошибки
Ставить минутный интервал «чтобы точно не пропустить». Дорого и бессмысленно: событие всё равно обрабатывается на следующей итерации.
Использовать /loop вместо расписания. Закрыли сессию — цикл кончился. Для ночных задач нужны routines или задачи рабочего стола.
Забывать остановить. Цикл продолжается, пока вы работаете в сессии. Самотемповый гасится Esc, а цикл с интервалом — только отменой задачи; иначе он тихо тратит лимит целую неделю.
Опрашивать то, что может прийти событием. Дороже и медленнее реакции на событие.
Помещать в цикл тяжёлую задачу. Каждая итерация — полноценный ход. Цикл с большим разбором данных каждые пять минут выест лимит за час.
Когда нужно / когда нет
Полезно:
- ждать окончания длинного процесса, продолжая работать;
- периодически проверять внешний источник, который сам сообщить не может;
- разовое напоминание внутри сессии.
Не нужно:
- когда событие может прийти само (используйте channels);
- когда работа должна идти без открытой сессии (routines, задачи рабочего стола);
- когда нужна не периодичность, а достижение результата (
/goal).
Связь с другими уроками
День 76 — /goal. Продолжение по результату, а не по времени.
День 78 — routines. Расписание, которое живёт без вашей сессии и без включённого компьютера.
День 80 — channels. Реакция на события вместо опроса.
День 39 — cron и launchd. Системное расписание на вашей машине; сравните с новыми механизмами, чтобы выбрать подходящий.
Задание на сегодня
- Найдите задачу, в которой вы периодически «проверяете, не появилось ли».
- Запустите
/loopс разумным интервалом (не меньше, чем скорость реальных изменений). - Поработайте час, наблюдая, как срабатывают итерации.
- Попробуйте форму без интервала — пусть Claude выберет темп сам, и сравните.
- Проверьте
/usageдо и после: оцените, во сколько обошёлся опрос.
Критерий «выполнено»: вы один раз заменили ручную проверку циклом и знаете его цену в расходе лимита.
Резюме
/loopповторяет запрос примерно по интервалу (планировщик добавляет сдвиг), пока открыта сессия; задачи живут 7 дней и восстанавливаются при возобновлении — но--continueпропускает сессии, начатые с/loop, для них нужен--resume.- Три формы: интервал с запросом, только запрос (интервал выбирает Claude), только интервал или ничего (встроенный обслуживающий запрос или ваш
loop.md). - В качестве запроса можно передать скилл, если Claude имеет право вызывать его сам.
- Интервал выбирайте по скорости реальных изменений: частый опрос — тихая утечка лимита.
- Остановка:
Escдля самотемпового цикла, отмена задачи — для цикла с интервалом. Для разового напоминания/loopне нужен: попросите словами. - Для работы без открытой сессии нужны routines или задачи рабочего стола, а не
/loop. - Если событие может прийти извне — лучше реакция на событие (channels), чем опрос.