Deepseek ArtifactsDeepseek Artifacts
Гайд по настройкам

Настройки 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. 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 global config map card listing settings.json, CLAUDE.md, projects, skills, agents, plugins and the .claude.json state file inside the ~/.claude directory
    Глобальный уровень одним взглядом: все файлы, которые Claude Code читает из ~/.claude при старте сессии.Смотреть на 2:28
  2. 2

    Откройте или создайте ~/.claude/settings.json

    На Mac и Linux файл лежит в ~/.claude/settings.json; на Windows — %USERPROFILE%\.claude\settings.json. Если его нет — создайте: Claude Code подхватит его со следующей сессии. Хотите перенести всю папку конфигурации — задайте CLAUDE_CONFIG_DIR.

    Claude Code settings.json card showing the ~/.claude/settings.json path on Mac and Linux and the Windows USERPROFILE location for themes, model choice and permissions
    settings.json управляет темами, выбором модели, плагинами, переменными окружения и разрешениями во всех проектах вашей машины.Смотреть на 0:20
  3. 3

    Зафиксируйте модель и уровень effort

    Задайте "model" конкретной моделью или значением "opusplan" (планирует Opus, исполняет Sonnet) — это станет дефолтом для каждой новой сессии, тот же выбор, что делает /model. Добавьте "effortLevel", чтобы ограничить объём размышлений по умолчанию, а переопределения по моделям оставьте modelSettings.

  4. 4

    Разрешите команды, которым доверяете

    Внутри блока permissions список "allow" собирает правила инструментов, которые минуют запрос подтверждения: "Bash(npm run lint)", "Bash(npm run test *)", "Read(~/.zshrc)". Правило — это шаблон со своей областью действия; перед wildcard * нужен пробел ("Bash(git push:*)"), иначе правило проглотит более длинные имена команд.

    Claude Code settings.local.json permissions allow list open in VS Code showing Bash git commands and WebFetch domain allow entries
    Реальный allow-лист из settings.local.json: каждая строка здесь — запрос подтверждения, который больше не появится.Смотреть на 0:50

Часть 2 — Разрешения, env и переопределения

  1. 5

    Защитите секреты правилами deny

    Правила deny оцениваются первыми, и никакой уровень не может их перекрыть. Начните с "Read(./.env)" и "Read(./.env.*)", чтобы API-ключи не попадали в контекст, и "Bash(git push:*)", чтобы публикация в удалённый репозиторий оставалась человеческим решением. Серую зону оставьте правилам ask.

  2. 6

    Локальные переопределения — в settings.local.json

    Когда Claude Code записывает разрешение за вас, оно попадает в .claude/settings.local.json — и этот же файл он автоматически добавляет в gitignore. Храните там личные пути, экспериментальные флаги и всё, что не хотите навязывать коллегам. Общие осознанные правила — в .claude/settings.json.

  3. 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.

  4. 8

    Не путайте ~/.claude.json с настройками

    ~/.claude.json — это состояние, а не конфигурация: OAuth-токены, регистрации MCP-серверов, решения о доверии по проектам и глобальные переключатели живут там. Намерения записывайте в settings.json, а .claude.json оставьте Claude Code — и сделайте бэкапы обоих: cleanupPeriodDays тоже определяет срок жизни истории переписки.

    Terminal listing of the ~/.claude folder in Claude Code showing statsig feature flags, the plugins directory, shell snapshots and the .claude.json global state file
    Внутри ~/.claude: фича-флаги, плагины, снапшоты шелла и файл состояния .claude.json, который легко принять за файл настроек.Смотреть на 2:00

Часть 3 — Сохранять порядок со временем

  1. 9

    Знайте, что ещё живёт в ~/.claude

    CLAUDE.md — ваш глобальный файл инструкций, читается в начале каждой сессии. projects/ хранит историю диалогов и автоматическую память по репозиториям, skills/ — workflow в SKILL.md по запросу, agents/ — определения субагентов, plugins/ — установленные плагины, statsig/ — кэш фича-флагов. settings.json дирижирует всеми.

    Claude Code CLAUDE.md global instruction file card with personal preferences, code style rules and testing patterns loaded at the start of every session
    CLAUDE.md — тот самый файл-сосед, который принимают за настройки: он несёт предпочтения и соглашения, а не ключи конфигурации.Смотреть на 0:45
  2. 10

    Попросите Claude проверить allow-лист

    Allow-листы растут по одному запросу за раз, пока никто уже не помнит, что в них. Откройте Claude Code и попросите разобрать .claude/settings.local.json на предмет избыточных, ненужных и опасных записей — Claude знает, какие инструменты у него встроены, а какие правила пересекаются.

    Claude Code prompt asking Claude to review the permissions allow list in settings.local.json for redundant and overly permissive entries
    Промпт аудита: пересмотреть allow-лист, пометить избыточное, дублирующее встроенные инструменты и откровенно опасное.Смотреть на 1:40
  3. 11

    Читайте вердикт как ревьюер

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

    Claude Code analysis table flagging unnecessary Bash ls, grep and find permission entries that duplicate built-in tools in settings.local.json
    Вердикт: 41 запись, разложенные на ненужные, избыточные и опасные — с заменой для каждой строки.Смотреть на 3:05
  4. 12

    Примените чистку и повторяйте ежемесячно

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

    Claude Code summary of permission changes removing curl, explicit home directory paths and one-off shell script entries from the settings allow list
    Чистка применена: 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, что файл загружается, и применяйте изменения по одному ключу — бисекция полезнее пристального взгляда.

FAQ по настройкам Claude Code

Похожие гайды