Настройки Claude Code: полный справочник по settings.json
Все важные ключи settings.json: четыре файла конфигурации и их приоритет, модель и effort, правила allow/deny для разрешений, блок env и реальный процесс чистки settings.local.json — всё сверено с официальной документацией.
Коротко
- Четыре файла, одна иерархия: managed-settings.json сильнее командной строки, она сильнее .claude/settings.local.json, тот сильнее .claude/settings.json, а тот сильнее ~/.claude/settings.json. Списки allow между файлами сливаются, а не перекрывают друг друга.
- settings.json — строгий JSON: ни комментариев, ни висячих запятых. Добавьте строку "$schema": "https://json.schemastore.org/claude-code-settings.json" — и редактор начнёт автодополнять каждый ключ.
- deny всегда побеждает. Правило deny на любом уровне перекрывает все allow — начните с Read(./.env) и Bash(git push:*), и двумя строками вы защитили секреты и удалённый репозиторий.
- settings.local.json — ваша песочница на конкретной машине: он важнее общих настроек проекта и автоматически уходит в gitignore, так что личные пути и эксперименты не утекут в репозиторий.
Claude Code Configuration EP1: The Global Files Decoded (settings.json, CLAUDE.md, skills)
Канал: Terminode AI2:31
Learning In Public: Cleaning Up Claude Code Settings
Канал: Ben Nadel5:26
Settings — official documentation
Официальная документация: code.claude.com/docs
Settings reference — the full key table
Официальная документация: code.claude.com/docs
Environment variables — official reference
Официальная документация: code.claude.com/docs
Факты на этой странице сверены с официальной документацией по настройкам; два видео выше — визуальные источники и источник идеи этого аудита.
Скриншоты принадлежат их авторам и снабжены прямыми ссылками на точные таймкоды. Кадры с лицами не используются.
Настраиваем settings.json в Claude Code, шаг за шагом
Часть 1 — Карта конфигурации
- 1
Разберитесь в четырёх файлах настроек
Claude Code читает настройки из четырёх областей: ~/.claude/settings.json (вы, все проекты), .claude/settings.json (общий с командой, коммитится), .claude/settings.local.json (вы, только этот проект) и managed-settings.json (ваша организация). Всё внутри ~/.claude — CLAUDE.md, projects, skills, agents, plugins — часть той же картины.

Глобальный уровень одним взглядом: все файлы, которые Claude Code читает из ~/.claude при старте сессии.Смотреть на 2:28 - 2
Откройте или создайте ~/.claude/settings.json
На Mac и Linux файл лежит в ~/.claude/settings.json; на Windows — %USERPROFILE%\.claude\settings.json. Если его нет — создайте: Claude Code подхватит его со следующей сессии. Хотите перенести всю папку конфигурации — задайте CLAUDE_CONFIG_DIR.

settings.json управляет темами, выбором модели, плагинами, переменными окружения и разрешениями во всех проектах вашей машины.Смотреть на 0:20 - 3
Зафиксируйте модель и уровень effort
Задайте "model" конкретной моделью или значением "opusplan" (планирует Opus, исполняет Sonnet) — это станет дефолтом для каждой новой сессии, тот же выбор, что делает /model. Добавьте "effortLevel", чтобы ограничить объём размышлений по умолчанию, а переопределения по моделям оставьте modelSettings.
- 4
Разрешите команды, которым доверяете
Внутри блока permissions список "allow" собирает правила инструментов, которые минуют запрос подтверждения: "Bash(npm run lint)", "Bash(npm run test *)", "Read(~/.zshrc)". Правило — это шаблон со своей областью действия; перед wildcard * нужен пробел ("Bash(git push:*)"), иначе правило проглотит более длинные имена команд.

Реальный allow-лист из settings.local.json: каждая строка здесь — запрос подтверждения, который больше не появится.Смотреть на 0:50
Часть 2 — Разрешения, env и переопределения
- 5
Защитите секреты правилами deny
Правила deny оцениваются первыми, и никакой уровень не может их перекрыть. Начните с "Read(./.env)" и "Read(./.env.*)", чтобы API-ключи не попадали в контекст, и "Bash(git push:*)", чтобы публикация в удалённый репозиторий оставалась человеческим решением. Серую зону оставьте правилам ask.
- 6
Локальные переопределения — в settings.local.json
Когда Claude Code записывает разрешение за вас, оно попадает в .claude/settings.local.json — и этот же файл он автоматически добавляет в gitignore. Храните там личные пути, экспериментальные флаги и всё, что не хотите навязывать коллегам. Общие осознанные правила — в .claude/settings.json.
- 7
Секреты и переключатели — в блок env
Объект "env" применяет переменные окружения к каждой сессии: "ANTHROPIC_API_KEY", "DISABLE_TELEMETRY": "1", "DISABLE_NON_ESSENTIAL_MODEL_CALLS": "1" или CLAUDE_CODE_MAX_OUTPUT_TOKENS. Практическое правило из документации: ключи в ALL_CAPS внутри settings.json почти всегда относятся к env.
- 8
Не путайте ~/.claude.json с настройками
~/.claude.json — это состояние, а не конфигурация: OAuth-токены, регистрации MCP-серверов, решения о доверии по проектам и глобальные переключатели живут там. Намерения записывайте в settings.json, а .claude.json оставьте Claude Code — и сделайте бэкапы обоих: cleanupPeriodDays тоже определяет срок жизни истории переписки.

Внутри ~/.claude: фича-флаги, плагины, снапшоты шелла и файл состояния .claude.json, который легко принять за файл настроек.Смотреть на 2:00
Часть 3 — Сохранять порядок со временем
- 9
Знайте, что ещё живёт в ~/.claude
CLAUDE.md — ваш глобальный файл инструкций, читается в начале каждой сессии. projects/ хранит историю диалогов и автоматическую память по репозиториям, skills/ — workflow в SKILL.md по запросу, agents/ — определения субагентов, plugins/ — установленные плагины, statsig/ — кэш фича-флагов. settings.json дирижирует всеми.

CLAUDE.md — тот самый файл-сосед, который принимают за настройки: он несёт предпочтения и соглашения, а не ключи конфигурации.Смотреть на 0:45 - 10
Попросите Claude проверить allow-лист
Allow-листы растут по одному запросу за раз, пока никто уже не помнит, что в них. Откройте Claude Code и попросите разобрать .claude/settings.local.json на предмет избыточных, ненужных и опасных записей — Claude знает, какие инструменты у него встроены, а какие правила пересекаются.

Промпт аудита: пересмотреть allow-лист, пометить избыточное, дублирующее встроенные инструменты и откровенно опасное.Смотреть на 1:40 - 11
Читайте вердикт как ревьюер
В реальном аудите, снятом на скриншотах этой страницы, Claude разобрал 41 запись: ls, grep, find, echo и cd дублируют встроенные инструменты; записи с wildcard уже покрывали явные команды; локальные абсолютные пути не нужны — Claude знает свою рабочую директорию; и только curl был помечен как действительно слишком широкое разрешение.

Вердикт: 41 запись, разложенные на ненужные, избыточные и опасные — с заменой для каждой строки.Смотреть на 3:05 - 12
Примените чистку и повторяйте ежемесячно
Одобрите предложенные правки — и файл усохнет с 41 записи до 15. Сделайте это привычкой: allow-лист, который вы не в силах прочитать, — это поверхность атаки, которую вы не видите. Прогоняйте аудит после больших проектов и предпочитайте узкие правила вроде Bash(git diff:*) универсальным одобрениям.

Чистка применена: curl, явные пути к домашней папке и одноразовые шелл-скрипты убраны из allow-листа.Смотреть на 4:50
settings.json vs CLAUDE.md vs ~/.claude.json vs /config
Четыре места выглядят как «настройки Claude Code» — но они не взаимозаменяемы. Что чем владеет:
- 1settings.json (все уровни) — декларативная конфигурация: model, effort, permissions, env, hooks, statusLine, plugins. Строгий JSON, валидация по схеме, безопасен для коммита (кроме .local).
- 2CLAUDE.md — инструкции и соглашения на естественном языке. Он формирует поведение, а не конфигурацию; контракта ключей нет, и читается он каждую сессию.
- 3~/.claude.json — состояние машины: данные OAuth/сессий, регистрации MCP, доверие по проектам, флаги онбординга. Его пишет Claude Code; вручную его лучше не трогать.
- 4/config — интерактивная панель. Это UI над теми же ключами: большинство тумблеров пишут в ~/.claude/settings.json, некоторые (вроде Show tips) — в settings.local.json, а глобальные опции — в ~/.claude.json.
- 5managed-settings.json — уровень организации. Он перекрывает всё (с редкими исключениями безопасности, где побеждает более строгое значение), поэтому ваш локальный выбор модели может тихо проиграть на рабочей машине.
Эмпирическое правило: поведение — в CLAUDE.md, конфигурация — в settings.json; а если значение будто вас игнорирует, проверьте, не решил ли уже всё ~/.claude.json или управляемый файл.
Настройки не применяются? Скорая помощь
Большинство проблем settings.json сводится к пяти причинам. Проверяйте по порядку:
- 1Синтаксические ошибки JSON. settings.json — строгий JSON: одна висячая запятая или комментарий // — и файл целиком отвергается. Вставьте его в валидатор или добавьте строку $schema, чтобы редактор ловил ошибки на лету.
- 2Более строгое правило выше. Управляемые настройки и чувствительные к безопасности ключи (вроде disableClaudeAiConnectors или useAutoModeDuringPlan) побеждают ваш файл при любых раскладах. Проверьте, не переопределяет ли рабочая машина.
- 3Не тот файл, не та область. Правила из .claude/settings.json действуют только внутри проекта; значения auto и bypassPermissions у defaultMode в проектных файлах игнорируются намеренно.
- 4Значения env не там. Ключи в ALL_CAPS принадлежат блоку env, а не верхнему уровню. Если ANTHROPIC_API_KEY или DISABLE_TELEMETRY будто игнорируются, скорее всего они лежат на уровень выше.
- 5Записи, отвергнутые молча. Запустите claude doctor, чтобы увидеть записи настроек, не прошедшие валидацию, и /status внутри сессии — какие файлы реально загрузились.
Всё ещё застряли? Отмените последнюю правку, убедитесь через /status, что файл загружается, и применяйте изменения по одному ключу — бисекция полезнее пристального взгляда.
