Claude Code постійно питає дозвіл? Рішення без --dangerously-skip-permissions

Підтверджувати npm test у сороковий раз — це просто шум. У Claude Code є все, щоб приглушити нудні запити й залишити небезпечні. Просто це розкидано по трьох файлах і шести режимах.

Автор: Aslan, команда Pet Island · Оновлено 26 жовт. 2026 р. · 5 хв читання

КОРОТКО

Додайте команди, які ви завжди схвалюєте, у 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:

~/.claude/settings.jsonКопіювати
{
"permissions": {
"allow": ["Bash(npm run *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)"],
"defaultMode": "acceptEdits"
}
}
  • 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. Підлаштуйте команди під свій стек:

~/.claude/settings.jsonКопіювати
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(npx tsc *)",
"Bash(git status)",
"Bash(git diff *)",
"Bash(git log *)"
],
"ask": [
"Bash(git push *)",
"Bash(npm publish *)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)"
]
}
}
  1. Почніть зі списку allow із команд лише для читання і тестів.
  2. Усе, що виходить за межі вашої машини (push, publish, deploy), помістіть в ask.
  3. Доступ до секретів забороніть повністю.
  4. Працюйте в режимі auto або acceptEdits, а для вивчення коду перемикайтеся в режим plan.
  5. Раз на кілька днів відкривайте .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 р.. Агенти швидко змінюються; якщо щось уже не збігається, пріоритет має офіційна сторінка.

ЧИТАЙТЕ ТАКОЖ

Відповідайте будь-якому агенту просто з верхньої частини екрана.

Windows і Mac · 7 днів безплатно, потім $8.99 одноразово · $1 з кожного продажу йде на корм безпритульним тваринам

Спробувати Pet Island безплатно