Тонкая настройка Claude Code и ChatGPT Codex для маркетолога: убрать подтверждения и не сжечь рекламный бюджет
Ты подключил ИИ-агента к рекламным кабинетам, доверил ему рутину — и превратился в кнопку «да». Каждое действие Claude Code или Codex упирается в подтверждение: «Выполнить эту команду? Изменить этот файл?» Ты уже не читаешь — просто жмёшь Enter. А когда отвернулся в браузер, агент тихо закончил работу пять минут назад и ждёт. Простаивает он, простаиваешь ты.
Лечится двумя настройками за десять минут. Ниже — как убрать подтверждения в Claude Code и Codex, как повесить звук на завершение задачи и, главное, как при этом не дать агенту самовольно поменять бюджет в Яндекс Директе. Разберём механизм, а не только тумблеры: где скорость, где риск и где проходит граница.
Это 11 урок бесплатного курса для маркетологов - как работать профессионально с ИИ и увеличить количество клиентов в несколько раз.
Откуда вообще берутся потери времени
Две штуки съедают время незаметно.
Первое — подтверждения. Агент спрашивает разрешение почти на каждый шаг: запустить команду, отредактировать файл, дёрнуть API рекламного кабинета. По умолчанию это правильно. Но когда ты пятый час подряд гоняешь однотипные операции, чтение запросов отключается, и ты механически подтверждаешь. Защита превращается в ритуал театр.
Второе — разрыв внимания. Агент работает сам по несколько минут. Ты переключаешься в браузер, в почту, в созвон. Он заканчивает — и ничего не происходит. Тишина. Ты вспоминаешь про него через пять минут, в худшем случае через полчаса. Это видно невооружённым глазом: окно с агентом простаивает, пока ты простаиваешь рядом.
На пальцах. Прикинем грубо, без претензии на замер: если за рабочую сессию агент просит подтверждение 30–50 раз, и каждое — это пара секунд внимания плюс переключение контекста обратно, набегает не пара минут, а ощутимый кусок дня. Плюс простои по пять минут после каждой длинной задачи. Точную цифру под ваш кейс никто не измерял — но порядок понятен.
Маркетолога это бьёт сильнее, чем разработчика. У нас рутина идёт пачками: не один аккаунт, а десяток, не одно объявление, а сотня, и агент через MCP (об этом ниже) дёргает Яндекс Директ, VK Ads, Метрику по кругу. Каждое касание кабинета — потенциальное подтверждение.
Зачем маркетологу CLI-агент, а не привычный чат
Тут важно не путать двух разных зверей.
Веб-чат — это ChatGPT или Claude в браузере. Пишешь промпт, получаешь текст. Удобно для идей, заголовков, разбора. Но руками в твою рекламу он не лезет.
Claude Code и Codex — это агенты в терминале. Они не просто пишут текст, а выполняют действия: правят файлы, запускают команды, ходят в API. И вот тут появляется MCP (Model Context Protocol) — открытый стандарт, через который агент подключается к внешним инструментам. На пальцах: MCP — это «розетки», в которые агент втыкается, чтобы управлять Яндекс Директом, VK Ads, аналитикой, складом. Не пересказывать тебе, что делать в кабинете, а делать самому.
Отсюда и весь смысл затеи. Агент с доступом к кабинетам — это не советчик, а исполнитель. А исполнителю подтверждать каждый чих — значит не дать ему работать.
Интересно. Кодовое имя у «режима без тормозов» в Codex говорящее: флаг, который выключает разом и подтверждения, и песочницу, официально называется --dangerously-bypass-approvals-and-sandbox, а его короткий алиас — --yolo. Инженеры OpenAI не стали притворяться, что это безопасно. Честнее, чем маркетинговое «умный авто-режим».
Личная врезка, и сразу помечу уровень. Мы год работали на Claude Code, потом перевели управление рекламными кампаниями на Codex — нам он зашёл лучше под нашу задачу. Это опыт, а не бенчмарк: публичных замеров «кто лучше для маркетинговой рутины» мы не приводим, у вас на ваших задачах может выйти иначе. Уровень уверенности — «похоже», не «доказано». Дальше показываю на обоих, выбирайте сами.
Гипотеза: скорость и безопасность — не «или-или»
Главный страх звучит так: «Уберу подтверждения — агент рано или поздно что-нибудь сломает или сольёт бюджет». Страх обоснованный. Но из него обычно делают неверный вывод — «значит, терпим подтверждения вечно».
Гипотеза №1: подтверждения можно снять глобально и при этом не дать агенту тронуть деньги. Не «разреши всё», а «разреши всё, кроме явно опасного».
Проверяем на двух инструментах плюс отдельный слой — точечные стоп-краны на критичные действия. Поехали.
Claude Code: убираем подтверждения (Bypass Permissions)
Bypass Permissions — это режим Claude Code, в котором агент перестаёт спрашивать разрешение и выполняет действия сам. В интерфейсе он же мелькает как «skip permissions» и помечен как опасный — и не зря.
На момент написания (Claude Code v2.1+) у инструмента несколько режимов доступа:
- default — спрашивает при первом использовании каждого инструмента;
- acceptEdits — сам принимает правки файлов и базовые файловые команды;
- plan — только чтение и планирование, без правок;
- bypassPermissions — пропускает вообще все запросы. Это то, что нам нужно.
Включить можно тремя способами.
Флагом при запуске:
claude --dangerously-skip-permissions
Через settings.json (глобально в ~/.claude/ или для проекта в .claude/):
{"permissions":{"defaultMode":"bypassPermissions"}}
Или прямо в сессии — попросить Claude переключиться в bypass-режим, он подскажет, что поправить.
Теперь честно, чем это опасно — без этого абзаца статья была бы вредной:
- режим пропускает все запросы, включая запись в служебные папки .git, .claude и подобные;
- он не блокируется правилами deny. Запретил Bash(rm *) — в bypass-режиме это всё равно выполнится;
- сохраняется ровно один предохранитель: удаление вроде rm -rf / или rm -rf ~ всё-таки переспросит — это аварийный стоп-кран на случай галлюцинации модели;
- Anthropic прямым текстом рекомендует включать его только в изолированном окружении — контейнере или виртуалке, где агент физически не дотянется до лишнего.
Вывод. Bypass Permissions решает проблему подтверждений целиком и сразу. Но включать его вслепую на машине с доступом к боевым кабинетам — значит менять минуты на потенциально слитый бюджет. Поэтому дальше — два защитных слоя.
Claude Code: звук по завершении (hooks)
Вторая потеря — простой после завершения. Лечится звуком.
Hooks — это механизм Claude Code, который запускает твою команду в ответ на событие. Не модель «решает» проиграть звук, а система гарантированно его проигрывает. Детерминированно, в отличие от просьб в промпте.
Нам нужно событие Stop — оно срабатывает, когда Claude закончил отвечать. Не путать с Notification: оно про «агенту нужно твоё внимание прямо сейчас», например, упёрся в запрос. Для «он доделал длинную задачу, позови меня» — это именно Stop.
Конфиг кладётся в settings.json (в ~/.claude/ или .claude/ проекта). Пример для macOS — проигрываем системный звук через afplay:
{"hooks":{"Stop":[{"matcher":"","hooks":[{"type":"command","command":"afplay /System/Library/Sounds/Glass.aiff"}]}]}}
На Linux вместо afplay подойдёт notify-send, на Windows — команда через PowerShell. Файл звука меняй на любой свой.
Вывод. Теперь агент сам «звякает», когда закончил, даже если ты ушёл в браузер. Простой между «он доделал» и «ты вернулся» схлопывается до длины одного «пям-пам».
Защита бюджета: правила проекта в CLAUDE.md и предел доверия
Вот ключевой нюанс, ради которого вся статья. Bypass-режим снял подтверждения глобально. Как вернуть стоп-кран на одно конкретное опасное действие — скажем, на изменение бюджета?
Правила проекта## Деньги- Никогда не меняй бюджет рекламных кампаний без явного подтверждения. - Если пользователь просит изменить бюджет — сначала назови текущий и спроси новый.
И вот тут — честность, которую обычно проглатывают. Правило в CLAUDE.md — это мягкий ограничитель, а не firewall. Это инструкция, которую модель читает и старается выполнять. Насколько часто она реально срабатывает — надёжных замеров у нас нет, поэтому относимся к ней как к мягкому слою, а не как к гарантии: запутавшаяся модель или промпт-инъекция из внешнего источника могут её проигнорировать. Это guidance, не запрет на уровне системы.
Нужен жёсткий замок, а не просьба? Складывай защиту в три слоя:
- CLAUDE.md / AGENTS.md — поведенческое правило «спроси про бюджет» (мягкий слой);
- permission deny-правила в settings.json — заблокировать правку конкретных файлов или команд намертво. Но помни: в чистом bypass-режиме deny не действует, поэтому либо не гоняем голый bypass на боевой машине, либо держим критичное вне досягаемости;
- лимиты в самом рекламном кабинете — дневной бюджет, который агент физически не может превысить, потому что ограничение стоит на стороне Яндекса или VK, а не на стороне модели.
Вывод. Самый надёжный стоп-кран — не в промпте и не в правиле, а в системе, которая не зависит от настроения модели. CLAUDE.md удобен и нужен, но не делайте его единственной преградой между агентом и вашими деньгами.
Codex: то же самое, только другими словами
В Codex логика идентичная, отличаются названия.
Убрать подтверждения — две строки в ~/.codex/config.toml:
approval_policy = "never" sandbox_mode = "danger-full-access"
Первая строка убирает запросы (never — никогда не спрашивать), вторая снимает ограничения песочницы. То же самое одним флагом при запуске:
codex --yolo # то же, но явно: codex -a never -s danger-full-access
Звук по завершении в Codex вешается через настройку notify — она запускает внешнюю программу на событиях агента. Важно: notify работает только в пользовательском конфиге ~/.codex/config.toml, в проектном .codex/ его игнорируют.
notify = ["python3", "/Users/you/.codex/notify.py"]
Codex передаёт скрипту JSON с типом события (сейчас это agent-turn-complete — «ход завершён»). Минимальный notify.py для macOS, который на завершении проигрывает звук:
#!/usr/bin/env python3import json, subprocess, sys defmain()->int:iflen(sys.argv)<2:return1 note = json.loads(sys.argv[1])if note.get("type")!="agent-turn-complete":return0 subprocess.run(["afplay","/System/Library/Sounds/Glass.aiff"], check=False)return0if __name__ =="__main__": sys.exit(main())
Две оговорки, чтобы не словить грабли:
- на корпоративной или управляемой машине админский конфиг может запрещать never и danger-full-access — тогда настройки просто не применятся;
- в расширении для VS Code, по открытым багрепортам, approval_policy = "never" иногда срабатывает не так, как в CLI. Поведение странное — проверяйте в терминале.
Вывод. Гипотеза №1 подтверждается на обоих инструментах: подтверждения снимаются полностью, звук возвращает тебя к завершённой задаче. Разница между Claude Code и Codex здесь — только в словаре.
Claude Code и Codex: таблица соответствий
Итак, чтобы не держать в голове два словаря — вот соответствие настроек один в один.
| Что делаем | Claude Code | Codex |
|—|---|—|
| Убрать все подтверждения | bypassPermissions / флаг --dangerously-skip-permissions | approval_policy = "never" + sandbox_mode = "danger-full-access" / флаг --yolo |
| Звук по завершении | hook на событие Stop + afplay | notify + скрипт notify.py + afplay |
| Правила и стоп-краны | CLAUDE.md + deny-правила в settings.json | AGENTS.md |
| Где лежит конфиг | ~/.claude/settings.json или .claude/ | ~/.codex/config.toml |
| Имя «опасного» режима | Bypass Permissions (Dangerous mode) | danger-full-access / YOLO |
Где это НЕ надо включать
Паттерн, а не приказ: режим без подтверждений хорош ровно там, где цена ошибки контролируема. Не включайте полный bypass:
- на чужой или продакшн-машине, где агент дотянется до боевых данных и секретов;
- при общем доступе к компьютеру — кто угодно запустит агента с полными правами;
- когда у агента есть доступ к реальным деньгам без лимита на стороне кабинета;
- если агент ходит в сеть и читает внешние страницы — это вектор для промпт-инъекции, когда вредная инструкция приезжает извне и выполняется без вопросов.
OpenAI и Anthropic тут сходятся: связку «без подтверждений + без песочницы» обе компании помечают как «повышенный риск, не рекомендуется для обычной работы» и советуют держать её для изолированных контейнеров и виртуалок. Разумный дефолт для боевой машины — оставить лёгкие подтверждения на опасных действиях, а bypass включать в песочнице.
Чек-лист: включить за десять минут
Для Claude Code:
- добавить в .claude/settings.json hook на Stop со звуком;
- решить, где будет жить bypass: либо --dangerously-skip-permissions в песочнице, либо defaultMode в settings;
- прописать в CLAUDE.md правило про бюджет;
- выставить дневной лимит в рекламном кабинете — настоящий стоп-кран.
Для Codex:
- две строки в ~/.codex/config.toml (approval_policy, sandbox_mode) либо запуск через --yolo;
- положить notify.py и прописать notify в пользовательском конфиге;
- правила — в AGENTS.md;
- лимит в кабинете — там же, на стороне платформы.
Коротко
- Две потери времени у агента — подтверждения и простой после завершения. Лечатся настройкой за десять минут.
- Подтверждения снимаются: в Claude Code — Bypass Permissions, в Codex — approval_policy = "never" + danger-full-access.
- Звук по завершении: hook Stop в Claude Code, notify + notify.py в Codex.
- Бюджет защищаем тремя слоями: правило в CLAUDE.md (мягко), deny-правила (жёстче), лимит в кабинете (надёжно).
- Полный bypass — только там, где цена ошибки контролируема. На боевой машине без лимитов — не надо.
FAQ
Что такое режим bypass permissions в Claude Code?
Это режим, в котором Claude Code перестаёт спрашивать разрешение на каждое действие и выполняет всё сам. Включается флагом --dangerously-skip-permissions или параметром defaultMode: bypassPermissions в settings.json. Помечен как опасный, потому что пропускает все запросы и не подчиняется deny-правилам.
Опасно ли отключать подтверждения у ИИ-агента?
Да, если у агента есть доступ к боевым данным, деньгам или сети. Без подтверждений одна галлюцинация или промпт-инъекция выполнится без вопроса. Безопасно — в изолированном окружении (контейнер, виртуалка) и при лимитах на стороне рекламного кабинета.
Codex или Claude Code — что выбрать маркетологу?
Оба умеют одно и то же: убрать подтверждения, играть звук, читать правила проекта. Мы перешли с Claude Code на Codex под свои задачи — но это наш опыт, не универсальный вердикт. Начните с того, что у вас уже подключено к кабинетам через MCP, и сравните на своей рутине.
Как запретить агенту менять рекламный бюджет?
Тремя слоями. Правило в CLAUDE.md/AGENTS.md «не меняй бюджет без подтверждения» — мягкий слой. Permission deny-правило на конкретный файл или команду — жёстче. Дневной лимит в самом кабинете — самый надёжный, потому что не зависит от модели.
Что такое hooks и MCP простыми словами?
Hooks — твои команды, которые Claude Code запускает на событиях, например звук на завершении. MCP — стандарт, через который агент подключается к внешним инструментам: Яндекс Директу, VK Ads, аналитике. Hooks — про реакции, MCP — про доступы.
Это работает из России?
Сами настройки (bypass, hooks, notify, config.toml) от страны не зависят — это локальные файлы. Вопрос только в доступе к самим Claude Code и Codex; способы подключения мы разбирали в отдельных уроках.
ИТОГ.
Скорость и контроль — не противоположности. Подтверждения можно снять глобально, а защиту вернуть точечно: правилом в CLAUDE.md, deny-правилом и — главное — лимитом на стороне кабинета, который не зависит от настроения модели. Тогда агент работает сам, но в очерченных границах, а ты к концу квартала разбираешь результаты, а не последствия.
Чего мы не проверяли и где наша уверенность не максимальная: какой из двух инструментов объективно лучше под маркетинговую рутину — это наш опыт, а не замер; и насколько надёжно CLAUDE.md держит правило в редких сценариях с инъекциями — поэтому и настаиваем на лимите в кабинете как последней преграде.
Уже гоняете Claude Code или Codex на рекламе — расскажите в комментариях, какие стоп-краны ставите вы и ловили ли момент, когда агент пытался сделать лишнее. А в следующих уроках разберём тонкую настройку кампаний в Яндекс Директе и VK через ИИ — там этих граблей ещё больше.
Это 11 урок бесплатного курса для маркетологов - как работать профессионально с ИИ и увеличить количество клиентов в несколько раз