Мадияр Хамзанов
Article

Хватит жать Allow: настройте разрешения Claude Code

Как убрать шум, но сохранить контроль: acceptEdits, точечные allow/ask/deny и безопасные границы для агента.

Claude CodeProductivityDevTools9 мин
Мадияр Хамзанов
Мадияр Хамзанов
Обновлено 27 июля 2026
TL;DR

Permission fatigue реальна: если механически нажимать Allow, подтверждение перестаёт быть защитой. Но ответ — не полный доступ на рабочей машине. Для обычной разработки я использую acceptEdits, точечные правила allow / ask / deny и отдельное подтверждение сетевых, пакетных и git-операций. bypassPermissions допустим только в одноразовом контейнере или VM без секретов, важных данных и доступа к production. Это прямо следует из официальной документации Claude Code.

1. Привычка вайбкодера

Картина одна и та же. Человек открывает Claude Code, пишет промпт, Claude хочет запустить ls. Появляется промпт. Allow. Хочет прочитать package.json. Allow. Хочет создать файл. Allow. Запустить pnpm install. Allow. Сделать коммит. Allow. И так — десятки раз за один таск.

В сообществе это называют «permission fatigue» — это задокументированная проблема, о которой пишут десятки разработчиков и целые статьи на Medium и Stackademic. Сложная фича — это легко 50+ промптов, каждый из которых ломает концентрацию и не даёт войти во flow.

2. 99% — это не подсказка, это шум

Я веду маленький лог своих сессий. Из последних ~1 200 промптов, которые мне показал Claude Code, я нажал «Deny» ровно 12 раз. Это 1%. Остальные 99% — Allow или «Allow + don't ask again». Это личная выборка, а не универсальная статистика безопасности.

~1 200
промптов в личной выборке
12
осознанных отказов в выборке
1%
отказов — не показатель безопасности
Разрешения

Распределение исходов промптов

По наблюдениям автора, ~1 200 промптов

Сигнал/шум. Если 99% событий имеют один и тот же исход — это не сигнал, а шум. Вы прокачали в себе рефлекс «Allow», и этот рефлекс срабатывает быстрее, чем вы вообще успеваете прочитать команду. Прерывание есть — защиты нет.

3. Почему это вообще не работает как защита

Главный аргумент сторонников промптов: «А вдруг агент сделает что-то страшное?». Звучит логично. Но если разобрать механику — это иллюзия безопасности.

  • Вы уже переключили контекст. Пока вы читаете команду в промпте, фокус с задачи уже потерян. Психологи называют это switching cost. Каждое переключение — это десятки секунд на восстановление.
  • Вы не читаете команды. Через час сессии глаз не различает, что там — безобидный grep или зловещий rm -rf. Симон Уиллисон в эссе «Living dangerously with Claude» честно пишет: люди уже не вчитываются.
  • Если бы вы прочитали — вы бы всё равно нажали Allow. Потому что вы сами попросили агента это сделать. Вы апрувите свой же план.
Промпты — это не защита от плохих команд. Это театр безопасности, который ломает мне фокус 200 раз в день.
Автор

4. Default mode vs настроенные правила

У Claude Code есть пять режимов разрешений (официальная документация). Для рабочей машины разумный базовый вариант — default или acceptEdits с точечными правилами. bypassPermissions оставляйте только для изолированной sandbox-среды без секретов и ценных данных.

ПараметрDefault modeНастроенная политика
Скорость работыМного рутинных запросовМеньше шума после настройки
Когнитивная нагрузкаЧастые мелкие решенияФокус на рискованных действиях
Прерываний за часЗависит от задачиСнижается после настройки
Реальная защита от ошибокЗависит от внимательностиdeny + ask для рискованных действий
Стоимость откатаgit revert / restoregit revert / restore
Подходит для CI / agents в фоненетТолько в изолированной среде
Потери времени

Минут впустую за один рабочий день

По наблюдениям автора, ~6 часов активной работы с Claude Code

5. Безопасный settings.json

Кладёте в ~/.claude/settings.json (глобально на всю машину) или в .claude/settings.json в корне проекта (только для конкретного репозитория). Полная спецификация полей — в официальной доке Anthropic.

settings.json
1{2  "permissions": {3    "allow": [4      "Read(*)",5      "Glob(*)",6      "Grep(*)",7      "Edit(*)",8      "Write(*)",9      "Bash(pnpm lint:*)",10      "Bash(pnpm test:*)",11      "Bash(git diff:*)",12      "Bash(git status:*)"13    ],14    "ask": [15      "Bash(pnpm install:*)",16      "Bash(git push:*)",17      "WebFetch(*)"18    ],19    "deny": [20      "Read(.env*)",21      "Bash(rm:*)",22      "Bash(git reset --hard:*)"23    ]24  },25  "defaultMode": "acceptEdits"26}

Здесь чтение, правки и локальные проверки разрешены; установка зависимостей, сеть и push требуют подтверждения; секреты и разрушительные команды запрещены. Подстройте пути и команды под свой проект — не копируйте глобальный whitelist вслепую.

Известный баг. На некоторых версиях клиент всё равно может спрашивать про правки в ~/.claude/settings.json — это обсуждаемое поведение в issue #37029 (защита самого конфига). Жмите Allow один раз — больше не увидите.

6. CLAUDE.md: задайте границы агента

Файл CLAUDE.md в корне проекта задаёт рабочие правила и контекст. Это стандартный механизм «системного промпта на проект».

CLAUDE.md
1## Scope2- Work only inside this repository3- Never read .env files, credentials, keychains, or user profiles4- Never push, publish, deploy, delete data, or run destructive commands without approval5 6## Workflow7- Inspect first and explain the plan8- Make one small logical diff at a time9- Run typecheck, lint, and relevant tests10- Show the diff and remaining risks11- Stop when new credentials, external writes, or broader scope are required

Такой файл убирает лишние уточнения внутри безопасной области, но сохраняет остановку там, где действительно нужны новые права или решение человека.

7. А если он что-то сломает?

Сломает. Иногда. Но реальная защита — не клик «No», а:

  • Git-история и резервные копии. Сначала смотрите diff, откатывайте конкретные файлы и используйте revert для уже сохранённых изменений. Git не защищает несохранённые файлы, базы данных, секреты или внешние системы.
  • Изолированное окружение. Anthropic в best practices рекомендует контейнер или VM для полного bypass. Обычная git-директория не является sandbox: процесс всё ещё может видеть домашний каталог, сеть и внешние сервисы.
  • Code review. Доверяете агенту как джуну, читаете диф после, мерджите через PR. Это масштабируется. Permission prompts — нет.

Да, в декабре 2025 был резонансный кейс, когда Claude развернул rm -rf вне границ и снёс домашнюю директорию. Но если вы запускаете агента в чистом git-репозитории, а не в ~ с keychain и десятилетием паролей — этот кейс с вами не произойдёт. Бэкапы важнее промптов.

8. Заключение

Правильная ментальная модель: агент — быстрый исполнитель с ограниченной зоной ответственности. Дайте ему достаточно прав для локальной задачи, но отделите секреты, production и необратимые действия.

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

Возьмите settings.json и CLAUDE.md выше как шаблон, сузьте команды под свой проект и регулярно пересматривайте разрешения.