Настройка Claude Code — полный гайд по settings.json
Всё о настройке Claude Code через settings.json: скоупы, permissions, модели, плагины, sandbox и переменные окружения в одном гайде.
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 (командные настройки).
Как открыть настройки
Три способа:
- Команда
/configв Claude Code — откроет интерактивный интерфейс с вкладками - Ручное редактирование файла
~/.claude/settings.jsonдля глобальных настроек - Ручное редактирование
.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.
Что ещё почитать
- CLAUDE.md — как писать инструкции для Claude Code — настройка контекста проекта через markdown-файл
- Разрешения в Claude Code — allow, deny и sandbox — детальная настройка permissions
- Claude Code Hooks — автоматизация рабочего процесса — автоматические действия при событиях
- Переменные окружения Claude Code — справочник — все переменные с описанием
- Fast Mode в Claude Code — ускоряем Opus 4.6 — настройка скорости ответов
- Лучшие AI-редакторы кода в 2026 — Claude Code среди конкурентов