Claude Code постійно питає дозвіл? Рішення без --dangerously-skip-permissions
Підтверджувати npm test у сороковий раз — це просто шум. У Claude Code є все, щоб приглушити нудні запити й залишити небезпечні. Просто це розкидано по трьох файлах і шести режимах.
КОРОТКО
Додайте команди, які ви завжди схвалюєте, у permissions.allow (наприклад, Bash(npm run *)), а ті, що мають завжди зупинятися, в ask або deny, і виберіть режим дозволів під задачу: acceptEdits для активного редагування, auto для рутинної роботи, plan для читання. Правила перевіряються в порядку deny → ask → allow, тому deny неможливо перевизначити. Команда /permissions показує, звідки взялося кожне правило. Залиште --dangerously-skip-permissions для одноразових контейнерів.
Чому Claude Code питає так часто
У режимі за замовчуванням (у CLI він називається Manual) Claude Code запитує дозвіл під час першого використання кожного інструмента і знову питає про кожну shell-команду, яку йому ще не дозволили. Запит дає змогу зупинити помилковий rm чи випадковий git push, тому його варто зберегти. Проблема в тому, що він спрацьовує і на сотню нешкідливих дій, які агент виконує за сесію.
Чи побачите ви запит, визначають три речі: правила у файлах налаштувань, поточний режим дозволів і ваші попередні відповіді «Yes, and don’t ask again». Щоб прибрати шум, треба налаштувати всі три.
Claude Code v2.1.283 і новіші запускають інтерактивні сесії в терміналі та VS Code у режимі auto на всіх тарифах і в усіх провайдерів. У режимі auto фоновий класифікатор звіряє команди й мережеві запити з тим, що ви просили, замість того щоб питати про рутинні дії. Якщо запит досі з’являється на все підряд, подивіться на рядок стану: «⏸ manual mode on» означає, що ви в режимі за замовчуванням.
Правила allow, ask і deny
Правила розміщуються в розділі permissions файлу налаштувань. Цей приклад узято просто з довідника з налаштувань Anthropic:
allow: виконується без запиту.ask: запит з’являється завжди, навіть у режимах, які інакше схвалили б дію.deny: ніколи не виконується.
Головне тут порядок: спершу deny, потім ask, потім allow. Спрацьовує перший збіг, і конкретність правила порядку не змінює. Правило allow не може зробити виняток із правила deny, а якщо інструмент заборонено на будь-якому рівні, жоден інший рівень не може його дозволити. Правила застосовує сам Claude Code, а не модель, тому фраза «never push» у CLAUDE.md працює зовсім не так, як правило deny.
Як написати правило
| Правило | Що під нього підпадає |
|---|---|
Bash(npm run *) | npm run build, npm run test --watch, але не npm install |
Bash(git log *) | Лише git log …. Порівняйте з Bash(git *), яке дозволяє будь-яку команду git. |
Bash(ls:*) | Те саме, що Bash(ls *): :* — це інший спосіб записати кінцевий символ підстановки |
Read(./.env) | Читання цього файлу. Правила Read і Edit використовують шаблони gitignore |
Edit(//Users/alice/notes/**) | Абсолютний шлях. Одинарний / на початку відраховується від файлу налаштувань, тому абсолютним шляхам потрібен // |
WebFetch(domain:example.com) | Лише example.com. Для піддоменів додайте WebFetch(domain:*.example.com) |
mcp__github__* | Усі інструменти MCP-сервера github. Правила з дужками після mcp__ пропускаються |
У Windows правила PowerShell записуються так само, як правила Bash.
Який файл налаштувань використовувати
| Область | Файл | Для чого |
|---|---|---|
| Користувач | ~/.claude/settings.json (Windows: %USERPROFILE%\.claude\settings.json) | Ваші особисті звички в усіх проєктах |
| Проєкт, спільний | .claude/settings.json | Правила для всієї команди (закомітьте файл) |
| Проєкт, локальний | .claude/settings.local.json | Ваші особисті правила для одного репозиторію (не потрапляє в коміти) |
| Керовані | managed-settings.json та інші керовані джерела | Політика компанії; її ніщо не перевизначає |
Пріоритет, від найвищого до найнижчого: керовані, командний рядок, локальні проєкту, спільні проєкту, користувацькі. Списки на кшталт permissions.allow об’єднуються між файлами, а не замінюються. На двох деталях часто спотикаються:
- Файли налаштувань — це строгий JSON: коментар
//або кінцева кома дають синтаксичну помилку, і весь файл ігнорується. - Правила allow зі спільного файлу проєкту починають діяти лише після того, як кожен учасник команди позначить папку як довірену. Правила deny і ask діють одразу.
Більшість змін застосовується до поточної сесії без перезапуску, зокрема permissions і hooks. Щоб побачити, що насправді завантажилося, виконайте /status (рядок Setting sources) або /permissions, де перелічено всі правила й файли, з яких їх узято.
Що насправді зберігає «Yes, and don’t ask again»
Відповідь «don’t ask again» записує правило в .claude/settings.local.json у корені git-репозиторію. Термін його дії залежить від інструмента:
| Інструмент | Запам’ятовується |
|---|---|
| Команди Bash | Назавжди, для репозиторію та команди |
| Редагування файлів | До кінця сесії |
| WebFetch | Назавжди, для репозиторію та домену |
Тож якщо Claude у кожній новій сесії знову просить дозвіл на редагування файлів, так і задумано: схвалення редагувань діє в межах сесії. Натомість використовуйте режим acceptEdits або правило allow Edit(...). А якщо команда й далі питає навіть після «don’t ask again», пошукайте правило ask у файлі проєкту або в керованому файлі. Правило allow у вашому локальному файлі його не переважає.
Режими дозволів і коли який використовувати
| Режим | Що робить | Підходить для |
|---|---|---|
default (Manual) | Питає під час першого використання кожного інструмента | Незнайомі репозиторії, ризикована робота |
acceptEdits | Приймає редагування файлів без запиту | Великі рефакторинги, які ви перевірите в git |
plan | Читає і планує, нічого не змінює | Вивчення кодової бази, проєктування змін |
auto | Без рутинних запитів; класифікатор спершу перевіряє команди й мережеві запити | Щоденна робота |
dontAsk | Не питає | Скрипти й автоматизація |
bypassPermissions | Пропускає запити, зокрема запис у .git і .claude | Лише ізольовані контейнери або ВМ |
Режими перемикаються клавішами Shift+Tab. З auto перше натискання веде в default, далі default → acceptEdits → plan. Початковий режим задається через permissions.defaultMode; зважте, що auto і bypassPermissions діють лише з користувацьких або керованих налаштувань, а не з файлу проєкту.
Деякі дії завжди потребують підтвердження, у будь-якому режимі, зокрема bypass: явні правила ask, запитання, які Claude ставить вам, rm за критичними шляхами та інші. Адміністратори можуть вимкнути ризиковані режими, задавши permissions.disableBypassPermissionsMode або permissions.disableAutoMode значення "disable".
Про прапорець --dangerously-skip-permissions
--dangerously-skip-permissions рівнозначний --permission-mode bypassPermissions. Документація Anthropic каже прямо: використовуйте його лише в ізольованих середовищах, наприклад у контейнерах, ВМ або dev-контейнерах без доступу до інтернету. У Linux і macOS він відмовляється працювати від root, а після того як ви приймете попередження, він задає skipDangerousModePermissionPrompt у ваших користувацьких налаштуваннях.
Якщо насправді ви хочете «перестань питати про нудне», режим auto і кілька правил allow розв’язують задачу, не забираючи важливих запитів.
Пісочниця: менше запитів, але зі страховкою
Claude Code може виконувати shell-команди в пісочниці. За замовчуванням її вимкнено; увімкніть її командою /sandbox або налаштуванням sandbox.enabled: true. Один режим пісочниці схвалює команди в пісочниці автоматично, інший однаково питає. Пісочниця поширюється лише на shell-команди: файлові інструменти, MCP-сервери й хуки працюють поза нею.
Вона працює в macOS, Linux і WSL2. У нативній Windows пісочниця не працює, і команди виконуються без неї. Це ще одна причина тримати там короткий список ask.
Робоча конфігурація
Це розумна відправна точка для проєкту на JavaScript. Підлаштуйте команди під свій стек:
- Почніть зі списку allow із команд лише для читання і тестів.
- Усе, що виходить за межі вашої машини (push, publish, deploy), помістіть в
ask. - Доступ до секретів забороніть повністю.
- Працюйте в режимі auto або acceptEdits, а для вивчення коду перемикайтеся в режим plan.
- Раз на кілька днів відкривайте
.claude/settings.local.jsonі видаляйте зайві правила, додані через «don’t ask again».
Коли запити, що залишилися, з’являються не там
Після налаштування вас мають питати лише про те, що справді потребує рішення. Залишається одна проблема: де з’являється запитання. У вкладці термінала за браузером агент може чекати двадцять хвилин, поки ви помітите.
Pet Island переносить ці запитання на маленький острів у верхній частині екрана. Коли Claude Code потрібен дозвіл, запит з’являється там разом із командою або diff, і ви дозволяєте, забороняєте або дозволяєте назавжди, не перемикаючи вікон. Запитання і плани Claude Code теж працюють з острова, а якщо острів закрито, Claude Code просто знову питає в терміналі.
Поширені запитання
Як зробити, щоб Claude Code не питав дозволу на кожну команду?
Додайте довірені команди в permissions.allow у ~/.claude/settings.json, наприклад "Bash(npm run *)", і використовуйте режим auto або acceptEdits. Ризиковані команди залиште в permissions.ask, щоб вони й далі зупинялися.
Чому Claude Code знову питає про редагування файлів після відповіді «don’t ask again»?
Схвалення редагувань файлів діє лише до кінця сесії. Якщо потрібно, щоб редагування схвалювалися в усіх сесіях, використовуйте режим acceptEdits або правило allow Edit(...).
Чи може правило allow перевизначити правило deny?
Ні. Правила перевіряються в порядку deny, ask, allow, і спрацьовує перший збіг. Інструмент, заборонений на будь-якому рівні, не можна дозволити на іншому.
Чи безпечний --dangerously-skip-permissions?
Anthropic рекомендує його лише для ізольованих середовищ, наприклад контейнерів або ВМ без доступу до інтернету. Він також пропускає запити на запис у .git і .claude.
Куди «Yes, and don’t ask again» зберігає правило?
У .claude/settings.local.json у корені git-репозиторію.
Чи працює пісочниця Claude Code у Windows?
У нативній Windows ні: команди там виконуються без пісочниці. Вона працює в macOS, Linux і WSL2.
Джерела
Усі налаштування й описану поведінку на цій сторінці звірено з цими джерелами 26 жовтня 2026 р.. Агенти швидко змінюються; якщо щось уже не збігається, пріоритет має офіційна сторінка.
- Документація Claude Code: Configure permissions
- Документація Claude Code: Permission modes
- Документація Claude Code: Settings
- Документація Claude Code: Settings reference
- Документація Claude Code: Sandboxing