Claude Code останавливает фоновую команду через 30 минут, если работает без присмотра: запуск с флагом -p, приложение на Agent SDK, задача CI или облачная сессия. Если Claude сам задал команде время, она проживёт максимум 2 часа, а в обычном терминале, настольном приложении и VS Code лимита нет с версии 2.1.288.
Раньше я сидел у экрана весь день: дал агенту шаг, глянул, поправил, попросил дальше. И так фаза за фазой. Код вроде пишет машина, а погонщиком работаю я. Теперь пишу план, делю на фазы, отдаю реализацию субагентам на ночь и ухожу. За 8 часов без меня Claude проходит план: изучает, делает, пилит. Утром я больше принимаю работу, чем переделываю.
Но если ночной запуск идёт через -p, по расписанию на сервере, в CI или в облаке, сервер разработки и сборка в фоне проживут 30 минут. Потом Claude Code их остановит, и ночная работа споткнётся на середине. Сейчас расскажу, кого касается лимит, как его поднять и что делать, если команда уже остановилась. Погнали.
Свежие разборы инструментов выходят в канале:
Кого касается лимит
Фоновая команда - это то, что Claude запустил и оставил работать, пока сам занят другим. Например, сервер разработки npm run dev или сборка, которая следит за изменениями в файлах.
Документация Claude Code пишет:
In a session that runs unattended, such as a run with the
-pflag, an Agent SDK application, a CI job, or a cloud session, background Bash and PowerShell commands have a time limit. A local session you work in from a terminal, the desktop app, or the VS Code extension has no time limit on background commands.The time limit requires Claude Code v2.1.285 or later. Before v2.1.288, it applied in every session.
Перевод: лимит есть там, где вас рядом нет: запуск с -p, приложение на Agent SDK, задача CI, облачная сессия. В терминале, настольном приложении и VS Code, где вы работаете сами, лимита нет. Появился он в 2.1.285, до 2.1.288 действовал везде.
Как понять, ваш ли это случай:
- Вы открыли Claude Code в терминале или VS Code, дали задачу и ушли спать. Лимита нет, если версия 2.1.288 или новее. На версиях с 2.1.285 по 2.1.287 он есть и здесь. Как обновиться до последней версии, я разбирал в отдельной статье.
- Claude Code запускается командой
claude -p "задача"по расписанию, из своей программы на Agent SDK или в CI. Лимит есть. - Задача идёт в облачной сессии. Лимит есть.
Когда я ставлю агентов на самостоятельную работу, я прошу в промпте: «Запиши эти условия и причины остановки в рабочий план. Проверь, что процесс не зависит от окна, которое я закрою, и от самого компьютера». Лимит 30 минут как раз одна из таких причин.
Если вы собираете свои проекты с ИИ-агентами, посмотрите программу практикума tarasovcode.
Сколько живёт команда в фоне
Отсчёт идёт с момента, когда команда попала в фон. Тут 2 случая.
Claude сразу запустил команду в фоне. Она получает 30 минут. Если Claude при запуске задал ей своё время (параметр timeout), то это время, но не больше 2 часов.
Команда не успела закончиться, пока Claude её ждал. Обычную команду Claude ждёт 2 минуты. Не закончилась - Claude Code не обрывает её и отправляет в фон. С этого момента у неё 30 минут.
Когда время вышло, Claude Code останавливает команду и пишет Claude:
Background command "<description>" was stopped after reaching its background time limitЕсли работа не закончена, Claude может запустить команду снова с большим временем.
И отдельно про -p. При таком запуске фоновые команды завершаются примерно через 5 секунд после итогового ответа Claude. Сервер, поднятый в ночном запуске с -p, проживёт ровно столько, сколько работает сам запуск. Лимит 30 минут важен, когда сам запуск длится дольше: Claude поднял сервер в начале и час прогоняет по нему проверки.
Как я ставлю Claude Code на ночь
Сидеть погонщиком весь день мне надоело, и я заменил это одним промптом-оркестратором. Запустил вечером - и Claude молотит всю ночь, идёт по фазам по очереди: сам пишет, сам проверяет, сам чинит, сам коммитит.
Код пишут группы субагентов, у каждого свои файлы, чтобы не толкались. Принимает работу другая группа, свежая: код-ревью, проверка безопасности, проверка живьём. Нашли косяк - чинится сразу, и проверки гоняются по новой. В промпте есть строка: «Кончился контекст - зафиксируй состояние, следующий запуск продолжит».
За 3 дня так закрылись 8 фаз из 14. Этот промпт-оркестратор я выложил в канале целиком, пост от 13.07: копируете в Claude Code и подставляете свой план. Отдаю бесплатно, забрать можно здесь.
Только 2 момента. Оркестратор не думает за вас: сначала пишется детальный план с фазами, потом ночная смена. И лимиты подписки он ест будь здоров, на мелкую задачку такое заряжать смысла нет. Поэтому всегда ставьте ограничение на число попыток, иначе агент за ночь выжжет все лимиты подписки. Как поставить такие ограничения расходов, я разбирал в отдельной статье.
Как поднять лимит
Путь 1: попросить Claude. Время для конкретной команды выбирает сам Claude, вы его не задаёте. Но можно написать в задаче: «Сервер разработки держи в фоне 2 часа». Больше 2 часов так не получится.
Путь 2: переменные в файле настроек. Значения пишутся в миллисекундах. Опустить лимит ниже 30 минут и 2 часов нельзя, только поднять.
BASH_DEFAULT_TIMEOUT_MSбольше1800000(это 30 минут) меняет 30 минут по умолчанию. Действует и на команды, которые Claude запустил в фоне без своего времени, и на ушедшие в фон по таймауту. Если поставить больше7200000(2 часа), поднимется и потолок.BASH_MAX_TIMEOUT_MSбольше7200000поднимает потолок в 2 часа. 30 минут по умолчанию она не трогает: команда без своего времени всё равно остановится через 30 минут.
У BASH_DEFAULT_TIMEOUT_MS есть побочный эффект. Та же переменная задаёт, сколько Claude ждёт обычную команду, прежде чем отправить её в фон. Поставите 1 час - Claude будет ждать 1 час вместо 2 минут. Ночью это не мешает. Днём вы будете дольше ждать ответа на долгих командах.
Если не хотите разбираться: нужно 3 часа и для обычных команд, и для потолка - впишите BASH_DEFAULT_TIMEOUT_MS со значением 10800000. Этого хватит, вторая переменная не нужна.
Файл настроек лежит в папке .claude в домашней папке: ~/.claude/settings.json на macOS и Linux, %USERPROFILE%\.claude\settings.json на Windows. Нет файла - создайте. Лимит в 1 час выглядит так:
{
"env": {
"BASH_DEFAULT_TIMEOUT_MS": "3600000"
}
}Если блок env в файле уже есть, добавьте строку в него. Запущенная сессия подхватывает новые значения, когда вы сохраняете файл. Удаление переменной сработает только при следующем запуске claude.
Файл нужен на той машине, где крутится агент. Чтобы агент работал ночью, компьютер не должен засыпать. Либо поднимайте Claude Code на удалённом сервере, и тогда настройки кладите туда.
Если команда уже остановилась
Руками ничего делать не надо. На эфире у нас рухнул дев-сервер. Claude понял, что рухнул, пошёл перезапускать сервер, очищать порты от другого проекта и всё сделал сам. Claude Code сообщает Claude причину остановки, так что сначала просто спросите его, что произошло.
Дальше по шагам:
- Разовый долгий прогон до 2 часов. Попросите Claude запустить команду заново с большим временем.
- Команды регулярно нужны дольше 30 минут. Впишите
BASH_DEFAULT_TIMEOUT_MSбольше1800000в файл настроек, как в примере выше. Нужно больше 2 часов - туда жеBASH_MAX_TIMEOUT_MSбольше7200000. - Запустите команду заново. На команду, которая уже работала в фоне до правки, документация ничего не обещает.
- Проверьте итог следующего запуска. Если в отчёте Claude снова есть фраза «stopped after reaching its background time limit», настройка к этой команде не применилась.
Кстати, я снял видео про приёмы Claude Code, обязательно посмотрите:
Там субагенты и рутины - то, на чём держится работа агента, пока вас нет рядом.
Как запустить агента в цикл на всю ночь, я разбирал в отдельной статье. А как настроить Claude Code, чтобы он ночью не сломал проект, - вот здесь.
А вы уже ставите Claude Code работать на ночь? Напишите в комментариях в канале, где у вас падает ночной запуск.
Источники
- Claude Code: Tools reference - где действует лимит, версии 2.1.285 и 2.1.288, 30 минут и 2 часа, перевод в фон по таймауту, текст уведомления, переменные BASH_DEFAULT_TIMEOUT_MS и BASH_MAX_TIMEOUT_MS.
- Claude Code: Environment variables - 2 минуты по умолчанию для обычной команды, блок env в ~/.claude/settings.json, когда сессия подхватывает новые значения.
- Claude Code: Headless - запуск с -p, фоновые команды завершаются примерно через 5 секунд после итогового ответа.
- Claude Code: Settings - где лежит ~/.claude/settings.json на Windows.
Новые материалы - дайджестом, без спама
Гайды выходят регулярно. Подпишись, чтобы не пропускать: пришлю подборку в Telegram или на email. Раз в неделю или каждый день - выбираешь сам.

