Багодельня
Справочник Claude Code

settings.json и разрешения

Конфигурация Claude Code: уровни settings.json, разрешения (allow/deny) и режимы — что агенту можно делать без спроса, а что нет.

Если CLAUDE.md — это инструкции («как работать»), то settings.json — это конфигурация («что включено и что разрешено»). Память агент читает как текст; настройки — это машинные параметры: модель, переменные окружения, хуки, права.

Уровни настроек

Как и память, настройки бывают разного охвата, и они наслаиваются друг на друга:

ФайлДля когоВ гите?
~/.claude/settings.jsonты, во всех проектахнет
.claude/settings.jsonвся командада
.claude/settings.local.jsonты, в этом проектенет (gitignore)

Если параметр задан на нескольких уровнях, более узкий перебивает более широкий (local → project → user). Плюс корпоративные «управляемые» настройки, которые перебивают всё, — их раздаёт администратор, и переопределить их нельзя.

Разрешения — самое важное

Агент умеет запускать команды, читать и менять файлы, ходить в сеть. Чтобы он не натворил лишнего, есть permissions — правила allow / deny:

{
  "permissions": {
    "allow": ["Bash(npm run test:*)", "Read(./src/**)"],
    "deny": ["Bash(rm:*)", "Read(./.env)"]
  }
}
  • allow — выполнять без вопросов (например, прогон тестов).
  • deny — запрещено наглухо (удаление, чтение секретов).
  • Что не подошло ни под одно правило — агент спросит разрешение.

Не уноси в allow всё подряд ради тишины. Разрешения — это страховка: лучше лишний раз подтвердить, чем разрешить rm -rf глобально.

Режимы разрешений

Помимо точечных правил есть режим на всю сессию — общая «строгость»:

  • ask — спрашивает перед каждым нестандартным действием (по умолчанию).
  • plan — только думает и предлагает план, ничего не меняет (см. Режимы).
  • acceptEdits — правки файлов без подтверждения, но команды всё ещё спрашивает.
  • bypassPermissions — без тормозов. Только когда точно понимаешь, что делаешь.

Полный список полей, синтаксис правил и приоритеты — в официальной документации по настройкам.

Проверь себя

  1. 1. Чем settings.json отличается от CLAUDE.md?

  2. 2. Действие не попало ни в allow, ни в deny. Что сделает агент?

  3. 3. Один параметр задан и в user, и в project, и в local. Какой победит?

On this page