Разрешения Claude Code: режимы и allowlist инструментов
У Claude Code четыре режима разрешений. По умолчанию он спрашивает перед каждым действием, режим acceptEdits применяет правки файлов сам, режим plan только читает и планирует, а bypassPermissions отключает все проверки. Поверх режимов работает allowlist в settings.json, который разрешает конкретные команды без переспроса.
Четыре режима
| Режим | Что делает |
|---|---|
| default | спрашивает перед каждым действием |
| acceptEdits | сам применяет правки файлов |
| plan | только читает и планирует |
| bypassPermissions | без проверок, опасно |
Режим plan для разведки
Перед большим изменением полезно включить plan. Агент прочитает код, предложит план, но ничего не тронет. Вы оцениваете план, правите его в разговоре, и только потом переключаетесь в режим, где разрешены правки.
Allowlist в settings.json
Чтобы не подтверждать одни и те же безопасные команды руками, их вносят в allowlist. Опасные команды наоборот заносят в deny, чтобы агент до них не дотянулся.
{
"permissions": {
"allow": [
"Bash(npm run test:*)",
"Bash(npm run lint)",
"Read(./src/**)"
],
"deny": [
"Bash(rm:*)",
"Bash(git push:*)"
]
}
}
Что держать в deny
Деструктивные команды вроде rm, push в основную ветку, деплои в продакшен, всё, что нельзя отменить. deny срабатывает раньше allow, поэтому он надёжно перекрывает случайные запросы агента.
Частые вопросы
Какие режимы разрешений есть в Claude Code?
Четыре: default спрашивает каждое действие, acceptEdits сам применяет правки, plan только читает, bypassPermissions отключает проверки.
Как разрешить агенту гонять тесты без переспроса?
Добавьте команду в allow в settings.json, например Bash(npm run test:*). Опасные команды занесите в deny.