Глубокое погружение

Разрешения Claude Code: какие инструменты спрашивают заранее и как внести их в allow list

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

Claude Code Bash command approval for git add src/app/globals.css offering Yes, Yes and do not ask again for git add commands in the project directory, and No with feedback
Промпт подтверждения Claude Code для git add: выбор второго варианта создаёт 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. 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.

    Anthropic Claude Code settings documentation listing every built-in tool with a Permission Required column that marks Bash, Edit, MultiEdit and Write as Yes while Read, Grep, LS and TodoWrite are No
    Bash и Edit требуют разрешения, Read — нет.Смотреть с 1:19
  2. 2

    Чтение прошло молча, правка остановилась

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

    Claude Code terminal inside VS Code where a Read of layout.tsx completed silently and the Update call right below it paused on a Do you want to make this edit to layout.tsx prompt
    Read завершился молча; Update ждёт ответа.Смотреть с 0:46

Подтверждаем правки по одной

Одно небольшое изменение в одном CSS-файле дало три отдельных запроса.

  1. 3

    Просим то, что обязательно потребует правки

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

    Claude Code prompt that @-mentions src/app/globals.css to add a highlight theme variable in pastel yellow, answered by a Read of 66 lines and a Pontificating status line
    @-упоминание даёт файл; чтение ничего не стоит.Смотреть с 2:02
  2. 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, чтобы не пропускать остальную цепочку.

    Claude Code edit permission dialog for globals.css offering Yes, Yes and do not ask again this session with the alt+m shortcut, and No with an explanation, beside a diff adding --highlight: #fef3c7
    Да, да на всю сессию или нет с указанием, что менять.Смотреть с 2:23
  3. 5

    Один файл — второе подтверждение

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

    Second Claude Code approval request for the same globals.css file, showing the light-mode highlight already applied and the dark-mode variable still waiting for permission
    Новый кусок в том же файле — новый запрос.Смотреть с 2:38
  4. 6

    Три подтверждения ради одной мелкой правки

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

    Claude Code terminal after three separate approvals on one file, listing the added --color-highlight token mapping and summarising the pastel yellow values for light and dark mode
    Три «да» на одну CSS-переменную.Смотреть с 2:56

Разрешаем Bash-команду для проекта

Второй вариант в промпте Bash сам записывает settings.local.json.

  1. 7

    Bash осматривает репозиторий без спроса

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

    Claude Code Bash tool running git status, git diff and git log one after another with no approval prompt after a request to make a commit, each result collapsed behind ctrl+r to expand
    status, diff и log проходят насквозь.Смотреть с 3:13
  2. 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). Обратите внимание, насколько конкретен второй вариант — и имя команды, и папка проекта вписаны прямо в текст.

    Claude Code Bash command approval for git add src/app/globals.css whose second option reads Yes, and do not ask again for git add commands in the project directory
    «Не спрашивать снова про git add в этой папке проекта».Смотреть с 3:26
  3. 9

    Правило начинает действовать сразу

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

    Claude Code terminal where the just-allowed git add command has already run and only the following git commit still needs a Do you want to proceed answer
    git add разрешён; git commit всё ещё спрашивает.Смотреть с 3:34
  4. 10

    Куда именно записалось разрешение

    Выбор «не спрашивать снова» создаёт в корне проекта файл .claude/settings.local.json — его видно в проводнике рядом с изменённым globals.css. Никаких заготовок и предварительной настройки: файл появляется в тот момент, когда вы даёте постоянного разрешение, и редактор сразу открывает его.

    VS Code explorer showing the .claude folder Claude Code created at the project root containing settings.local.json, next to a globals.css marked as modified
    .claude/settings.local.json создаёт сам Claude Code.Смотреть с 3:40
  5. 11

    Массив allow по ключам

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

    settings.local.json in Claude Code with a permissions object whose allow array holds the rule Bash(git add:*), shown alongside empty deny and ask arrays
    В permissions.allow лежит Bash(git add:*).Смотреть с 4:10

Режим accept edits

Отключаем запросы на всю сессию, потом возвращаем обратно.

  1. 12

    Отключаем запросы на всю сессию

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

    Claude Code input area displaying the highlighted accept edits on indicator with alt+m to cycle, meaning further file edits in this session run without permission prompts
    «accept edits on (alt+m to cycle)» под полем ввода.Смотреть с 4:22
  2. 13

    Прокрутить обратно к вопросам

    Нажмите alt+m ещё раз — индикатор из поля ввода исчезнет, и это знак, что правки снова подтверждаются по одной. На allow list это не влияет: постоянное правило Bash(git add:*) в settings.local.json остаётся на месте и будет действовать в следующей сессии.

    Claude Code prompt box with the accept edits indicator gone after cycling the mode again, so file edits return to per-change approval
    Индикатор пропал — запросы вернулись.Смотреть с 4:42

Вопросы и ответы