Привычка вайб-кодера на красной полоске: weekly Codex показывает около нуля — стоп, новый чат, «завтра». Имеет смысл, если ты открываешь новую работу. Имеет меньше смысла, если текущая задача уже идёт под /goal и агент в середине диффа. Появляется пользовательский отчёт: даже после 0% Codex ещё часы читал файлы, правил код и двигался к цели. Предупреждение «лимит кончился» в этом случае не равнялось «процесс убит прямо сейчас».
Это не релиз-ноут OpenAI и не обещание тарифа. Это наблюдение плюс развилка, которую стоит развести с двумя соседними темами: Persistent mode «пока не уложат спать» (в коде CLI, шипа нет) и banked reset после 20 миллионов (кредит квоты, не жизнь задачи). Ниже — как читать /goal у нуля, чем это не «безлимит», и почему недельный бюджет всё равно нужен.
Что говорят, и чего не говорят
Факт узкий. Когда weekly подходит к нулю, часть людей рвёт сессию на одном проценте «чтобы не словить ошибку посреди патча». Совет из практики: не убивай цель руками на 1%. Запусти или держи /goal и дай агенту дожать критерий. В одном отчёте после нуля агент не замер: читал файлы, вносил правки, прогресс был виден часами. Предупреждение 0% не обязательно значит, что текущая задача умирает в ту же секунду.
Чего в этом абзаце нет — и не будет:
- официального SLA «после 0% ещё N часов»;
- цифры токенов, которую можно перенести на свой план;
- гарантии, что так будет завтра, на другом аккаунте, в десктопе, в веб-Codex;
- инструкции обходить лимит, шерить подписку или крутить sub2api.
Анекдот полезен как анти-рефлекс: не дёргай стоп на красном проценте, если цель уже сформулирована и агент в работе. Анекдот вреден как политика команды: «у нас лимитов нет, главное /goal». Политика по-прежнему: недельный бюджет, тяжёлые лупы в начале цикла, не в воскресенье в 23:50.
Чем /goal не является
Путаница уже стоит в поиске. Три ярлыка с похожим запахом «агент живёт дальше».
Не Persistent mode. Persistent в открытом Codex CLI — пункт reasoning-effort с инструкцией continue working until put to sleep плюс Proactivity. OpenAI это тестирует, запуска нет, на дату соседней статьи кнопки у пользователя нет. /goal при нуле — про поведение текущей команды цели рядом с квотой, не про снятие потолка «пока человек не уложит спать». Не пиши в ТЗ «включи Persistent, у нас и так после 0% работало». Это разные слои: один в коде без релиза, второй — наблюдение на живой квоте.
Не banked reset и не «нам налили бак». Августовская история 20M — кредит сброса, который применяешь сам, плюс отдельные hard reset и фиксы утечек (картинки, compaction, Computer History, title-gen). Это бухгалтерия usage. /goal не наливает полоску. Он может, по отчёту, не оборвать текущий контур, когда полоска уже на нуле. Путать «квота вернулась» и «задача не умерла сразу» — как путать зарплату и то, что ты досидел на смене после конца таймера.
Не Cursor /goal один в один. У Cursor cloud agents в changelog 19.08.2026 есть своя команда /goal: долгая цель, пока критерий не закрыт, рядом с Subscriptions на PR/Slack. Разбор: подписки cloud agents и /goal. Имя то же, продукт другой. Cursor будит облако событием. Codex /goal в этом тексте — про сессию агента OpenAI у края weekly. Не копируй playbook «как в Cursor» в Codex CLI и наоборот.
Как это выглядит в работе
Сценарий, ради которого статья вообще нужна. Ты завёл цель в духе «почини флаки в этом пакете и доведи тесты до зелёного». Агент уже прошёл круг, полоска weekly ползёт к нулю, всплывает предупреждение. Старый рефлекс — Ctrl+C, «сохраню дифф руками, продолжу после сброса». Цена рефлекса: потерянный контекст, половинчатый патч, утром ты сам склеиваешь то, что агент ещё мог дожать.
Альтернатива из отчёта: не рвать. Держать /goal. Смотреть, что процесс ещё читает файлы и пишет. Не стартовать вторую тяжёлую цель «раз всё равно ноль». Не открывать десять субагентов. Одна живая цель, один критерий готовности. Если агент внезапно всё же встанет — у тебя хотя бы не самоубийство сессии на 1%.
Что имеет смысл сделать до красной зоны, не в ней:
- Сформулировать /goal проверяемо: зелёный конкретный suite, конкретный баг, конкретный файл. «Сделай лучше» на нуле — лотерея.
- Не копить в том же треде скрины и посторонние вопросы. Утечки usage в длинных сессиях мы уже разбирали в статье про 20M.
- Понять, когда у аккаунта weekly-сброс. Дожимать цель у края имеет смысл, если до сброса часы, не если ты только открыл неделю и уже на нуле из-за мусора.
- Дифф коммитить маленькими кусками по ходу, не одним шаром в конце. Если контур всё же оборвётся, потеря меньше.
После нуля не делай вид, что открылся безлимит. Не запускай «раз уж живёт — пусть ещё напишет маркетинг и тесты на соседний сервис». Наблюдение про жизнь текущей цели. Новая работа — после сброса или в другом контуре (локальная модель, более лёгкая задача, другой вендор), не как паразит на красной полоске.
Почему 0% может не убить задачу сразу
Честная рамка: мы не знаем внутренний биллинг OpenAI и не будем его угадывать. Можно только отделить наблюдаемое от фантазии.
Наблюдаемое: UI/предупреждение о нуле и фактическая остановка tool-call’ов могут разъехаться по времени. Агент, которому уже выдали цель и контекст, продолжает шаги, которые для тебя выглядят как «он ещё работает». Для биллинга это может быть хвост, кэш, уже авторизованный контур, задержка обновления бара — любой из вариантов, ни один не подтверждаем. Для тебя важен эффект: не путай алерт с kill -9.
Фантазия, которую не надо тащить в чат команды:
- «OpenAI дарит часы бесплатно, если есть /goal»;
- «при 0% токены не считаются»;
- «можно держать агента сутками как Persistent»;
- «если оборвалось у тебя — значит, ты неправильно вызвал /goal».
Сравни с Claude Code: там два бара, session на 5 часов и weekly, и красный один не равен красному другому. Разбор: лимиты Claude Code. У Codex своя полоска и свои сюрпризы августа (утечки, banked, фиксы). С 14 сентября у Claude weekly ещё и переедет на постоянный +25% к старому стандарту, что относительно августа около −17%: лимиты с 14 сентября. Мораль общая: смотри живой usage, не заголовок алерта. Мораль частная: вендоры разные, трюк одного не копируй в другой.
Как не построить на этом процесс
Команда, которая услышала «у нуля ещё работает», быстро превращает это в норму: все задачи стартуют вечером в воскресенье, все носятся под /goal, «квота — для слабаков». Так вы ловите сразу три удара: непредсказуемый обрыв посреди патча, нет запаса на прод-инцидент в понедельник, и ложную уверенность, что OpenAI вам должен хвост.
Норма, которую можно писать в внутреннюю памятку без вранья:
- Недельный бюджет планируем так, будто 0% = стоп для новых задач. Всегда.
- Текущий /goal у края не убиваем руками на 1%, если критерий уже стоит и агент в работе. Даем дожать. Коммитим промежуточное.
- Не опираемся на хвост после нуля как на ресурс. Если хвост случился — удача контура, не строка в тарифе.
- Не смешиваем это с Persistent (нет в проде) и с banked reset (это про налить квоту, не про жить без неё).
- Если обрыв всё равно пришёл — не виним /goal. Снимаем дифф, ждём сброс, продолжаем той же формулировкой цели.
Для личной дисциплины тот же список короче: тяжёлое — в начало своего weekly, не в хвост. /goal формулируй до того, как бар красный, не вместо планирования. Красный бар — повод не стартовать новое, не повод театрально убивать старое.
15%, 1% и 0% — три разных решения
Красная полоска не одна точка. Решения разные, и /goal не отменяет эту лестницу.
- Около 15–20%. Ещё не анекдот про ноль. Не стартуй вторую тяжёлую цель. Дожимай текущую. Закоммить промежуточное. Не открывай «раз есть воздух — пусть ещё нагенерит тесты на соседний сервис».
- Около 1%. Здесь как раз бьёт ложный рефлекс «сейчас убьёт, надо рвать». Если /goal уже стоит и агент в файлах — не убивай руками. Если цели нет, и ты только собирался «быстро спросить» — не собирайся. Новый промт на 1% почти всегда хуже, чем пауза до сброса.
- 0% и предупреждение. Смотри, жив ли контур: идут ли чтения файлов, появляются ли диффы, движется ли критерий. Если жив — дай дожать, не открывай новое. Если замер на одном и том же шаге без записи на диск — это уже не «хвост после нуля», это завис. Тогда стоп, сними что есть, жди сброс.
Как отличить «ещё работает» от «крутит пустой цикл». Грубая эвристика, не метрика вендора: раз в несколько минут меняются файлы или хотя бы читается новый путь. Если агент десять минут повторяет одну фразу статуса без диффа — не геройствуй. Анекдот про часы после нуля описывал прогресс, не медитацию на одном тул-колле.
Не оставляй на красной полоске сессию с широкими секретами и внешними approve, «потому что вдруг доживёт до утра». Это не Persistent, и kill switch всё равно твой. Хвост после нуля — про текущую цель в репозитории, не про ночной доступ к продовой консоли.
Связка с остальным стеком
Если у тебя в один день и Codex, и Cursor cloud, и Claude Code, разведи команды по именам в голове. Cursor /goal держит критерий, пока cloud agent ходит по PR. Codex /goal в этой истории — про то, что сессия у квоты может не сдохнуть в момент алерта. Claude Code weekly с 14 сентября станет ниже, чем ты привык за лето на +50%. Три разных ручки. Одна привычка общая: критерий готовности пиши явно, пока ещё есть воздух.
Локальный контур (Ollama в Desktop, более лёгкая модель на рутину) по-прежнему запасной бак на мелочи, не «обход 0%». Обход лимита подписки здесь не разбираем и не намекаем. Если нужен другой компьютер агента — это уже продукты вроде cloud agents, не магия красной полоски.
Коротко
Когда weekly Codex около нуля, не рви руками текущую цель на 1%. /goal может продолжать работу после предупреждения 0% — так в пользовательском отчёте, часами, с чтением файлов и правками. Это анекдот про жизнь текущей задачи, не тариф, не Persistent и не banked reset. Новые задачи от нуля не открывай. Недельный бюджет планируй так, будто хвоста нет. Если хвост пришёл — дожми критерий и закоммить, не празднуй безлимит. Соседние разборы: Persistent mode, 20M и banked reset, Cursor /goal и подписки. Витрина — vibe-studio.uk.
