Глубокое погружение
Разрешения Claude Code: какие инструменты спрашивают заранее и как внести их в allow list
Claude Code делает всё через фиксированный набор встроенных инструментов, и часть из них останавливается и спрашивает разрешение. Вот все промпты разрешений из одной живой сессии — по скриншотам, включая тот вариант ответа, который создаёт allow list проекта.

Иллюстрированный разбор из 13 шагов — примерно 5 минут чтения. Каждый шаг ссылается на точный момент исходного видео.
Коротко
Claude Code работает через встроенные инструменты: Read читает файлы, Edit правит один файл, Bash запускает команды — называть их в промпте не нужно. В документации Anthropic у каждого инструмента стоит флаг Permission Required: Read, Grep, LS и TodoWrite работают молча, а Bash, Edit, MultiEdit, Write и сетевые инструменты останавливаются и спрашивают. У промпта редактирования ровно три ответа: Yes, «Yes, и не спрашивать снова в этой сессии» (alt+m) и No с объяснением, что делать иначе. Если разрешить Bash-команду через «не спрашивать снова», правило вида Bash(git add:*) попадёт в permissions.allow файла .claude/settings.local.json — этот файл личный, его не коммитят. Чтобы вовсе не получать запросы до конца сессии, переключитесь в режим accept edits сочетанием alt+m.
Исходное видео
Страница повторяет урок 4 из серии Net Ninja о Claude Code: встроенные инструменты и промпты разрешений показаны на одной живой сессии. Каждый скриншот ссылается на точный момент, где он появляется.
Скриншоты — кадры из видео с указанием автора; текст написан нами. Шаги сверены с видео в сентябре 2026 года.
Какие инструменты у Claude Code есть сразу
Фиксированный набор и колонка в документации, которая говорит, кто спрашивает заранее.
- 1
В списке инструментов Anthropic есть колонка про разрешения
Ещё до первого запроса у Claude Code есть фиксированный набор инструментов: Read открывает файлы, Edit правит один файл, Bash запускает команды, а TodoWrite строит те самые чек-листы, которые Claude ведёт по ходу задачи. В документации по настройке все инструменты перечислены с колонкой Permission Required: у Bash, Edit, MultiEdit, NotebookEdit, Write, WebFetch и WebSearch стоит Yes, у Read, Glob, Grep, LS, NotebookRead, Task и TodoWrite — No. Там же указано, что правила настраиваются через /allowed-tools или в permission settings.

Bash и Edit требуют разрешения, Read — нет.Смотреть с 1:19 - 2
Чтение прошло молча, правка остановилась
Разница видна на одном экране. Claude Code прочитал layout.tsx — 43 строки — ни о чём не спрашивая, а потом вызвал Update на том же файле и сразу остановился с «Do you want to make this edit to layout.tsx?». Слева в редакторе уже открыт diff, так что подтверждаете вы конкретное изменение, которое можно спокойно прочитать до того, как нажмёте Yes.

Read завершился молча; Update ждёт ответа.Смотреть с 0:46
Подтверждаем правки по одной
Одно небольшое изменение в одном CSS-файле дало три отдельных запроса.
- 3
Просим то, что обязательно потребует правки
Демо просит добавить одну переменную темы: «@src/app/globals.css Add another theme variable to the CSS file called highlight, and make it a pastel yellow». Упоминание через @ подтягивает файл в контекст, и Claude Code сначала читает все 66 строк — без единого запроса — а потом начинает думать.

@-упоминание даёт файл; чтение ничего не стоит.Смотреть с 2:02 - 4
Три ответа на запрос о правке
«Do you want to make this edit to globals.css?» предлагает ровно три варианта: 1. Yes, 2. Yes, and don't ask again this session (alt+m) и 3. No, and tell Claude what to do differently (esc). Предлагаемая строка --highlight: #fef3c7 уже видна в редакторе, а в рамке написано, что изменения открыты в Visual Studio Code, с подсказкой «Save file to continue...». Автор здесь выбирает обычное Yes, чтобы не пропускать остальную цепочку.

Да, да на всю сессию или нет с указанием, что менять.Смотреть с 2:23 - 5
Один файл — второе подтверждение
Первое добавление прошло — «Updated src/app/globals.css with 1 addition» — и Claude Code перешёл к другому месту того же файла, поэтому спросил снова. Вот что обычно удивляет: разрешение выдаётся на каждую правку, а не на файл. Светлая переменная уже в коде, тёмная стоит в очереди за промптом.

Новый кусок в том же файле — новый запрос.Смотреть с 2:38 - 6
Три подтверждения ради одной мелкой правки
После третьего «да» добавляется привязка --color-highlight: var(--highlight), и Claude Code подводит итог: пастельно-жёлтый для светлой темы (#fef3c7) и тёмной (#fbbf24) плюс соответствующая привязка в секции темы. Три клика «yes» из-за одной CSS-переменной — ровно то трение, ради устранения которого существует allow list.

Три «да» на одну CSS-переменную.Смотреть с 2:56
Разрешаем Bash-команду для проекта
Второй вариант в промпте Bash сам записывает settings.local.json.
- 7
Bash осматривает репозиторий без спроса
Следующая просьба простая: «can you make a commit». Claude Code трижды подряд вызывает Bash — git status, git diff, git log --oneline -5 — и ни один не останавливается на подтверждение; каждый результат свёрнут до «ctrl+r to expand». Он собирает картину того, что изменилось, прежде чем что-то трогать, и за эти только-читающие вызовы Bash в этой сессии не потрачено ни одного запроса.

status, diff и log проходят насквозь.Смотреть с 3:13 - 8
Именно этот промпт и пишет ваш allow list
Затем он собирается выполнить git add src/app/globals.css — и на этот раз спрашивает. В рамке показана сама команда, однострочное описание от Claude («Stage the globals.css file with highlight theme variable») и три варианта: 1. Yes, 2. Yes, and don't ask again for git add commands in D:\tutorials\sandbox\@claude\shinobi, 3. No, and tell Claude what to do differently (esc). Обратите внимание, насколько конкретен второй вариант — и имя команды, и папка проекта вписаны прямо в текст.

«Не спрашивать снова про git add в этой папке проекта».Смотреть с 3:26 - 9
Правило начинает действовать сразу
Выбор второго варианта тут же запускает команду, и разрешение работает в этой же сессии: git add завершается, оставив только предупреждение Git про CRLF. Следующая в очереди команда, git commit, всё равно спрашивает сама — «Do you want to proceed?». Новое правило покрывает именно git add и больше ничего.

git add разрешён; git commit всё ещё спрашивает.Смотреть с 3:34 - 10
Куда именно записалось разрешение
Выбор «не спрашивать снова» создаёт в корне проекта файл .claude/settings.local.json — его видно в проводнике рядом с изменённым globals.css. Никаких заготовок и предварительной настройки: файл появляется в тот момент, когда вы даёте постоянного разрешение, и редактор сразу открывает его.

.claude/settings.local.json создаёт сам Claude Code.Смотреть с 3:40 - 11
Массив allow по ключам
Файл крошечный: объект permissions с тремя массивами — allow, deny и ask. Записанное Claude Code правило — строка 'Bash(git add:*)': имя инструмента, префикс команды, затем двоеточие и звёздочка, то есть «всё, что идёт дальше». Пустые deny и ask — тот же механизм, развёрнутый в обратную сторону. Записи можно добавлять и вручную: промпт — просто более быстрый способ их напечатать, и автор подчёркивает, что этот список ваш и его можно править.

В permissions.allow лежит Bash(git add:*).Смотреть с 4:10
Режим accept edits
Отключаем запросы на всю сессию, потом возвращаем обратно.
- 12
Отключаем запросы на всю сессию
Третий способ перестать получать вопросы — это режим, а не правило. Нажмите alt+m (в Windows; по словам автора, на Mac это может быть ctrl+m), и под полем ввода загорится индикатор: «accept edits on (alt+m to cycle)». После этого Claude Code правит файлы в этом чате без подтверждений. Режим живёт до конца сессии — в новой он снова начнёт спрашивать, — а слово «cycle» там потому, что alt+m перебирает доступные режимы, а не щёлкает одним выключателем.

«accept edits on (alt+m to cycle)» под полем ввода.Смотреть с 4:22 - 13
Прокрутить обратно к вопросам
Нажмите alt+m ещё раз — индикатор из поля ввода исчезнет, и это знак, что правки снова подтверждаются по одной. На allow list это не влияет: постоянное правило Bash(git add:*) в settings.local.json остаётся на месте и будет действовать в следующей сессии.

Индикатор пропал — запросы вернулись.Смотреть с 4:42