Настройка Claude Code — полный гайд по settings.json

Всё о настройке Claude Code через settings.json: скоупы, permissions, модели, плагины, sandbox и переменные окружения в одном гайде.

Настройка Claude Code — полный гайд по settings.json
TL;DR: settings.json — главный файл конфигурации Claude Code. Через него настраивается всё: разрешения, модели, sandbox, hooks, плагины, переменные окружения. Файл может быть глобальным, проектным или локальным — настройки наследуются и перекрывают друг друга.

Claude Code из коробки работает нормально. Но «нормально» — это как IDE без настроенных шорткатов. Можно жить, но неудобно. Настройка settings.json занимает 10 минут и экономит часы в долгосрочной перспективе.

Где лежат настройки

У Claude Code четыре уровня настроек, от самого приоритетного к наименее:

Уровень Файл Для кого
Managed /Library/Application Support/ClaudeCode/managed-settings.json Все пользователи на машине (ставит IT-отдел)
Local .claude/settings.local.json Ты, только в этом проекте
Project .claude/settings.json Вся команда (коммитится в git)
User ~/.claude/settings.json Ты, во всех проектах

Managed перебивает всё остальное — это для корпоративных политик. Local перебивает Project и User. Project перебивает User.

На практике чаще всего нужны два: User (личные предпочтения) и Project (командные настройки).

Как открыть настройки

Три способа:

  1. Команда /config в Claude Code — откроет интерактивный интерфейс с вкладками
  2. Ручное редактирование файла ~/.claude/settings.json для глобальных настроек
  3. Ручное редактирование .claude/settings.json в проекте для проектных

У файла есть JSON-схема — если добавить "$schema": "https://json.schemastore.org/claude-code-settings.json" в начало, то VS Code и Cursor покажут автокомплит и валидацию.

Стартовая конфигурация

Вот settings.json, с которого я рекомендую начать. Он покрывает 80% потребностей:

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run *)",
      "Bash(pytest *)",
      "Bash(ruff *)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  "language": "russian"
}

language: "russian" — Claude будет отвечать на русском по умолчанию.

Что можно настроить

Пройдусь по основным секциям.

Модель и скорость

{
  "model": "claude-sonnet-4-5-20250929",
  "alwaysThinkingEnabled": true
}

По умолчанию Claude Code использует Opus 4.6. Можно переключить на Sonnet — дешевле и быстрее, но менее умный. alwaysThinkingEnabled включает расширенное мышление — модель тратит больше токенов на размышления перед ответом.

Для быстрых задач (линтинг, простые правки) Sonnet хватает. Для сложного рефакторинга или архитектурных решений — Opus.

Sandbox

{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true,
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}

Sandbox изолирует bash-команды. Включи autoAllowBashIfSandboxed — и Claude перестанет спрашивать разрешение на каждую команду, потому что они всё равно в изоляции. Подробнее — в статье про разрешения.

Hooks

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "ruff format \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
          }
        ]
      }
    ]
  }
}

Автоматические действия до и после инструментов Claude. Подробнее — в статье про hooks.

Attribution — подпись в коммитах

По умолчанию Claude Code добавляет в git-коммиты строку «Co-Authored-By: Claude». Можно настроить или отключить:

{
  "attribution": {
    "commit": "",
    "pr": ""
  }
}

Пустые строки отключают подпись полностью.

Интерфейс

{
  "showTurnDuration": true,
  "spinnerTipsEnabled": false,
  "prefersReducedMotion": true
}

showTurnDuration показывает, сколько времени Claude думал. Полезно для оценки стоимости запроса. spinnerTipsEnabled: false убирает подсказки в спиннере.

Автообновления

{
  "autoUpdatesChannel": "stable"
}

Два канала: latest (свежайшая версия, может быть нестабильной) и stable (версия примерно на неделю старше, без критичных багов). Для продакшн-работы рекомендую stable.

Переменные окружения через settings

Вместо того чтобы выставлять переменные в терминале, можно прописать их в settings:

{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "BASH_DEFAULT_TIMEOUT_MS": "60000"
  }
}

Это удобно для командных настроек — добавил в проектный settings.json, и у всех одинаковые параметры.

Часто задаваемые вопросы

Как сбросить все настройки? Удали файл ~/.claude/settings.json. Claude Code пересоздаст его с дефолтами при следующем запуске. Claude Code хранит до пяти резервных копий настроек с таймстампами — можно откатиться.

Можно ли настроить Claude Code через UI? Да, команда /config открывает интерфейс с вкладками. Но не все настройки там доступны — для тонкой настройки всё равно придётся редактировать JSON.

Project settings конфликтуют с моими user settings — что делать? Project settings приоритетнее. Если нужно перебить что-то лично для себя — создай .claude/settings.local.json. Он приоритетнее project settings, но не коммитится в git.

Что ещё почитать