Полный справочник settings.json с ранжированием по полезности: от "почему я не знал об этом раньше" до "пригодится раз в год".
6 настроек, которые реально меняют workflow
Tier 1 (обязательно к настройке):
{ "plansDirectory": "./docs/plans", "enableAllProjectMcpServers": true, "permissions": { "allow": ["Bash(npm:*)", "Bash(git:*)", "Edit(src/**)"], "deny": ["Read(.env*)"] }, "env": { "ENABLE_TOOL_SEARCH": "auto:5" } }
Что это даёт:
Планы сохраняются в проекте, а не в
~/.claude/plans(можно коммитить!)MCP серверы включаются автоматически без запросов
npm/git/редактирование src — без подтверждений
.env файлы защищены от чтения
MCP инструменты грузятся лениво → экономия 90% токенов
Актуально для: Claude Code 2.1.12 (январь 2026)
Кто я и почему это важно
Игорь Масленников, в IT с 2013 года, последние 2 года развиваю AI Dev Team в DNA IT. У нас 3 человека + 44 AI-агента выполняют работу ~20 специалистов. Стоимость -80%, время разработки с 2-3 месяцев до 1-2 недель.
Развиваю Claude Code Orchestrator Kit — open-source набор из 44 агентов, 20+ команд, 30+ скиллов для Claude Code.
Проблема: За 2 года работы с Claude Code я понял, что большинство разработчиков используют его "из коробки". Не настраивают permissions, не знают про hooks, не используют MCP Tool Search. А потом жалуются на "тупой AI, который постоянно спрашивает подтверждения".
Решение: Я собрал все настройки из официальной документации, CHANGELOG и своего опыта в один структурированный справочник. С ранжированием по полезности — чтобы вы знали, что настроить в первую очередь.
Как устроен settings.json
Приоритет настроек
Claude Code читает настройки из нескольких файлов. Если одна и та же настройка указана в разных местах, побеждает файл с более высоким приоритетом:
Приоритет | Scope | Файл | Когда использовать |
|---|---|---|---|
🔴 Высший | Managed (IT) |
| Корпоративные политики |
🟠 Высокий | Local (личный) |
| Персональные настройки (не в git) |
🟡 Средний | Project (команда) |
| Настройки проекта (в git) |
🟢 Низший | User (глобальный) |
| Дефолты для всех проектов |
Типичный паттерн:
.claude/settings.json— в git, общие для команды.claude/settings.local.json— в .gitignore, персональные
Tier 1: Критически полезные
Эти настройки реально меняют рабочий процесс. Если вы их не используете — вы теряете время.
plansDirectory
{ "plansDirectory": "./docs/plans" }
Что делает: Куда сохраняются планы при использовании Plan Mode (Shift+Tab → Plan).
По умолчанию: ~/.claude/plans — файлы теряются в домашней директории, нельзя закоммитить.
Почему важно: Планы — это артефакты работы. Я использую их для:
Code review (коллеги видят, что Claude планировал сделать)
Документации (планы становятся частью ADR)
Отката (если что-то пошло не так, смотрю план и понимаю логику)
Моя конфигурация:
{ "plansDirectory": "./docs/plans" }
Теперь все планы в git, рядом с кодом.
env.ENABLE_TOOL_SEARCH
{ "env": { "ENABLE_TOOL_SEARCH": "auto:5" } }
Что делает: Активирует ленивую загрузку MCP инструментов вместо загрузки всех сразу.
Почему важно: У меня 6 MCP серверов (~82,000 токенов). Без Tool Search они все грузятся при старте. С Tool Search — только ~5,700 токенов baseline + по требованию.
Значение | Поведение |
|---|---|
| Активируется при >10% контекста заняты MCP |
| Активируется при >N% контекста |
| Всегда включен |
| Выключен |
Результат:
ДО: 143k использовано → 57k свободно ПОСЛЕ: 67k использовано → 133k свободно Экономия: +76k токенов (+133% к рабочему пространству)
Подробнее писал в статье про MCP Tool Search.
permissions.allow / deny
{ "permissions": { "allow": [ "Bash(npm run:*)", "Bash(pnpm:*)", "Bash(git:*)", "Edit(src/**)" ], "deny": [ "Read(.env*)", "Bash(rm -rf:*)" ] } }
Что делает: Автоматически разрешает (allow) или запрещает (deny) операции без запроса.
Почему важно: Без этого Claude каждый раз спрашивает:
Claude wants to run: npm run build Allow? [Y/n]
Умножьте на 50 раз в день — и вы поймёте, зачем нужен allow list.
Паттерны:
Bash(npm:*)— любые npm командыBash(git:*)— любые git командыEdit(src/**)— редактирование файлов в src/Read(.env*)— чтение .env файлов (запретить!)mcp__supabase__*— все инструменты supabase MCP (v2.1.x)
Моя конфигурация:
{ "permissions": { "allow": [ "Bash(pnpm:*)", "Bash(npm:*)", "Bash(git:*)", "Bash(bd:*)" ], "deny": [ "Read(.env*)", "Read(**/credentials*)", "Bash(rm -rf:*)" ] } }
bd — это мой алиас для скриптов автоматизации.
enableAllProjectMcpServers
{ "enableAllProjectMcpServers": true }
Что делает: Автоматически разрешает все MCP серверы из .mcp.json.
По умолчанию: Claude спрашивает разрешение на каждый сервер при старте:
Enable MCP server 'supabase'? [Y/n] Enable MCP server 'playwright'? [Y/n] Enable MCP server 'context7'? [Y/n] ...
С enableAllProjectMcpServers:
Loading MCP servers: context7, supabase, playwright, shadcn ✓
Важно: Включайте только если доверяете MCP серверам в проекте. Для open-source проектов с чужими .mcp.json — лучше оставить false.
model
{ "model": "claude-sonnet-4-20250514" }
Что делает: Переопределяет модель по умолчанию.
Когда использовать:
Фиксируете версию модели для воспроизводимости
Используете Sonnet для рутинных задач (дешевле)
Тестируете новую модель
Доступные модели (январь 2026):
claude-opus-4-5-20251101— самая мощнаяclaude-sonnet-4-20250514— баланс скорость/качествоclaude-haiku-4-20250514— быстрая и дешёвая
alwaysThinkingEnabled
{ "alwaysThinkingEnabled": true }
Что делает: Включает Extended Thinking по умолчанию для всех сессий.
Что такое Extended Thinking: Claude "думает вслух" перед ответом. Занимает больше токенов, но улучшает качество сложных задач (архитектура, дебаг, рефакторинг).
Когда включать:
Работаете над сложной архитектурой
Отлаживаете неочевидные баги
Нужен глубокий анализ кода
Когда НЕ включать:
Рутинные задачи (создание файлов, простые фиксы)
Ограниченный бюджет токенов
Tier 2: Очень полезные
Эти настройки не критичны, но заметно улучшают опыт работы.
language
{ "language": "russian" }
Что делает: Claude отвечает на указанном языке.
Почему важно: Без этого Claude отвечает на английском. Приходится писать "отвечай на русском" в каждом промпте.
Поддерживаемые языки: Практически любой. Claude определяет по названию: russian, german, spanish, chinese, etc.
autoUpdatesChannel
{ "autoUpdatesChannel": "stable" }
Что делает: Выбирает канал обновлений.
Значение | Поведение |
|---|---|
| Последняя версия (default) — новые фичи, возможные баги |
| Версия недельной давности — проверено, стабильно |
Моя рекомендация: stable для продакшн проектов, latest для экспериментов.
permissions.defaultMode
{ "permissions": { "defaultMode": "acceptEdits" } }
Что делает: Режим разрешений при старте сессии.
Значение | Поведение |
|---|---|
| Спрашивает разрешения на всё |
| Автоматически принимает редактирования файлов |
| Пропускает ВСЕ запросы (опасно!) |
acceptEdits — хороший баланс: Claude может редактировать код без подтверждений, но bash команды всё ещё требуют approval.
permissions.additionalDirectories
{ "permissions": { "additionalDirectories": ["/home/me/shared-libs", "/home/me/docs"] } }
Что делает: Даёт Claude доступ к директориям вне текущего проекта.
Когда нужно:
Монорепозиторий с shared библиотеками
Документация в отдельной папке
Конфиги в ~/.config/
hooks
{ "hooks": { "SessionStart": [ { "matcher": "", "hooks": [{ "type": "command", "command": "npm run prepare" }] } ], "Stop": [ { "matcher": "", "hooks": [{ "type": "command", "command": "npm run cleanup" }] } ] } }
Что делает: Выполняет команды на события Claude Code.
Доступные события:
Событие | Когда срабатывает |
|---|---|
| Старт сессии |
| Конец сессии |
| Остановка основного агента / субагента |
| До/после использования инструмента |
| Перед компактификацией контекста |
| Отправка промпта пользователем |
| При |
Пример: Прогрев кэша при старте
{ "hooks": { "SessionStart": [ { "matcher": "", "hooks": [{ "type": "command", "command": "bd prime", "once": true }] } ] } }
once: true — выполнить только один раз за сессию (v2.1.x).
enabledMcpjsonServers
{ "enabledMcpjsonServers": ["context7", "supabase", "playwright"] }
Что делает: Выборочно включает только указанные MCP серверы из .mcp.json.
Когда использовать: В .mcp.json 10 серверов, но для текущей задачи нужны только 3.
Альтернатива: Использовать enableAllProjectMcpServers: true + полагаться на Tool Search (ленивая загрузка).
Tier 3: Полезные
Настройки для специфических сценариев. Не обязательны, но пригодятся.
attribution.commit / attribution.pr
{ "attribution": { "commit": "Co-Authored-By: Claude <noreply@anthropic.com>", "pr": "" } }
Что делает: Настраивает атрибуцию в коммитах и PR.
Пустая строка = отключить:
{ "attribution": { "commit": "", "pr": "" } }
Я оставляю co-authored-by — честность перед коллегами.
cleanupPeriodDays
{ "cleanupPeriodDays": 7 }
Что делает: Через сколько дней удалять неактивные сессии.
По умолчанию: 30 дней. Если работаете интенсивно — можно уменьшить до 7-14.
sandbox
{ "sandbox": { "enabled": true, "autoAllowBashIfSandboxed": true } }
Что делает: Песочница для bash команд (macOS/Linux).
autoAllowBashIfSandboxed: true — если песочница включена, bash команды выполняются без подтверждений. Логика: песочница ограничивает ущерб, поэтому можно доверять.
env.CLAUDE_AUTOCOMPACT_PCT_OVERRIDE
{ "env": { "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80" } }
Что делает: При каком % заполнения контекста запускать auto-compaction.
По умолчанию: ~90%. При 80% — compaction запустится раньше, потеряете меньше контекста при переполнении.
env.MAX_THINKING_TOKENS
{ "env": { "MAX_THINKING_TOKENS": "50000" } }
Что делает: Бюджет токенов для Extended Thinking.
Когда увеличивать: Сложные задачи требуют больше "размышлений". Но помните — это стоит денег.
env.CLAUDE_CODE_MAX_OUTPUT_TOKENS
{ "env": { "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "32000" } }
Что делает: Максимум токенов на один ответ Claude.
По умолчанию: Зависит от модели. Максимум: 64000.
Когда увеличивать: Генерация больших файлов, длинных документов.
env.CLAUDE_CODE_SUBAGENT_MODEL
{ "env": { "CLAUDE_CODE_SUBAGENT_MODEL": "claude-sonnet-4-20250514" } }
Что делает: Модель для субагентов (Task tool).
Паттерн: Основной агент на Opus (качество), субагенты на Sonnet (экономия).
Tier 4: Ситуационно полезные
Эти настройки нужны в редких случаях, но когда нужны — очень нужны.
respectGitignore
{ "respectGitignore": false }
Что делает: Учитывать ли .gitignore в @ file picker.
По умолчанию: true. Файлы из .gitignore не показываются в автокомплите.
Когда отключать: Нужен доступ к файлам в .gitignore (логи, кэш, временные файлы).
Визуальные настройки
{ "showTurnDuration": false, "spinnerTipsEnabled": false, "terminalProgressBarEnabled": false }
Настройка | По умолчанию | Что отключает |
|---|---|---|
| true | "Cooked for 1m 6s" |
| true | Tips в спиннере |
| true | Progress bar |
Отключаю spinnerTipsEnabled — раздражает.
statusLine
{ "statusLine": { "type": "command", "command": "/path/to/status-script.sh" } }
Что делает: Кастомная строка статуса.
Пример скрипта:
#!/bin/bash echo "$(git branch --show-current) | $(date +%H:%M)"
Таймауты
{ "env": { "BASH_DEFAULT_TIMEOUT_MS": "300000", "BASH_MAX_TIMEOUT_MS": "600000", "MCP_TIMEOUT": "60000", "MCP_TOOL_TIMEOUT": "120000" } }
Переменная | По умолчанию | Что контролирует |
|---|---|---|
| 120000 (2 мин) | Таймаут bash по умолчанию |
| 600000 (10 мин) | Максимальный таймаут bash |
| 30000 | Таймаут подключения к MCP |
| 60000 | Таймаут выполнения MCP tool |
Когда увеличивать:
Долгие сборки (npm run build на большом проекте)
Тяжёлые MCP операции (playwright тесты)
env.MAX_MCP_OUTPUT_TOKENS
{ "env": { "MAX_MCP_OUTPUT_TOKENS": "50000" } }
По умолчанию: 25000. Максимум токенов в ответах MCP.
Когда увеличивать: MCP возвращает большие ответы (playwright screenshots, длинные логи).
Tier 5: Enterprise / Специфические
Для корпоративных сценариев или очень специфических задач.
API и аутентификация
{ "env": { "ANTHROPIC_API_KEY": "sk-...", "CLAUDE_CODE_USE_BEDROCK": "1", "CLAUDE_CODE_USE_VERTEX": "1" } }
Когда нужно:
Собственный API ключ (вместо подписки)
AWS Bedrock / Google Vertex AI провайдеры
apiKeyHelper
{ "apiKeyHelper": "/path/to/get-api-key.sh" }
Что делает: Скрипт для динамического получения API ключа.
Пример: Интеграция с AWS Secrets Manager, HashiCorp Vault.
Proxy настройки
{ "env": { "HTTP_PROXY": "http://proxy:8080", "HTTPS_PROXY": "http://proxy:8080", "NO_PROXY": "localhost,127.0.0.1" } }
Для корпоративных сетей с прокси.
companyAnnouncements
{ "companyAnnouncements": [ "Не забудьте обновить документацию!", "Код-ревью обязателен для всех PR" ] }
Что делает: Показывает случайное объявление при старте сессии.
Для: IT-отделов, которые хотят напоминать разработчикам о политиках.
Отключение функций
{ "env": { "DISABLE_TELEMETRY": "1", "DISABLE_ERROR_REPORTING": "1", "DISABLE_AUTOUPDATER": "1", "DISABLE_COST_WARNINGS": "1", "DISABLE_NON_ESSENTIAL_MODEL_CALLS": "1", "DISABLE_PROMPT_CACHING": "1" } }
Переменная | Что отключает |
|---|---|
| Телеметрия |
| Отправка ошибок |
| Автообновления |
| Предупреждения о стоимости |
| Неосновные вызовы API |
| Кэширование промптов |
Для: Параноиков, airgapped сред, экономии трафика.
env.CLAUDE_CODE_HIDE_ACCOUNT_INFO
{ "env": { "CLAUDE_CODE_HIDE_ACCOUNT_INFO": "1" } }
Что делает: Скрывает email и организацию в UI.
Для: Стримеров, демонстраций, скриншотов.
Новое в v2.1.x (январь 2026)
Hook event: Setup
{ "hooks": { "Setup": [ { "matcher": "", "hooks": [{ "type": "command", "command": "npm install" }] } ] } }
Запускается при claude --init, --init-only, --maintenance.
Hooks: once: true
{ "hooks": { "SessionStart": [ { "matcher": "", "hooks": [{ "type": "command", "command": "bd prime", "once": true }] } ] } }
Выполнить хук только один раз за сессию.
Wildcard MCP permissions
{ "permissions": { "allow": ["mcp__supabase__*"], "deny": ["mcp__filesystem__*"] } }
Разрешить/запретить все инструменты MCP сервера одной строкой.
CLI: --tools
claude --tools Read,Write,Bash
Ограничить доступные инструменты в сессии.
Полный пример settings.json
{ "plansDirectory": "./docs/plans", "language": "russian", "alwaysThinkingEnabled": false, "enableAllProjectMcpServers": true, "autoUpdatesChannel": "stable", "cleanupPeriodDays": 14, "permissions": { "allow": [ "Bash(pnpm:*)", "Bash(npm:*)", "Bash(git:*)", "Bash(bd:*)", "mcp__context7__*" ], "deny": [ "Read(.env*)", "Read(**/credentials*)", "Bash(rm -rf:*)" ], "defaultMode": "acceptEdits" }, "attribution": { "commit": "Co-Authored-By: Claude <noreply@anthropic.com>", "pr": "" }, "env": { "ENABLE_TOOL_SEARCH": "auto:5", "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "85", "MAX_MCP_OUTPUT_TOKENS": "30000" }, "hooks": { "SessionStart": [ { "matcher": "", "hooks": [{ "type": "command", "command": "bd prime", "once": true }] } ] } }
Статистика: До и После
Метрика | Без настройки | С настройкой |
|---|---|---|
Запросов "Allow?" за сессию | ~50 | 0-5 |
Контекст при старте | 143K (72%) | 67K (34%) |
Планы в git | ❌ | ✅ |
MCP без вопросов | ❌ | ✅ |
.env защищены | ❌ | ✅ |
Где взять
Все конфигурации — в open-source проекте Claude Code Orchestrator Kit:
Репозиторий: github.com/igormaslennikov-io/claude-code-orchestrator-kit
Лицензия: MIT (бесплатно, можно использовать в коммерческих проектах)
Я понимаю, что кто-то скажет: "Это просто пересказ документации" или "Зачем это, если есть официальные доки".
Моё мнение:
Официальная документация — это справочник, а не руководство к действию. Она говорит "что есть", а не "что важно".
Ранжирование по полезности — это моя экспертиза после 2 лет работы с Claude Code и 44 агентов в продакшене.
Примеры из практики — это то, чего не хватает в официальных доках.
Если не согласны — окей. Попробуйте настройки, потом скажите, где я ошибаюсь.
Контакты
Автор: Игорь Масленников
Пишу про AI-агентов, LLM-архитектуру и автоматизацию разработки.
📢 Мой канал в Telegram: @maslennikovigor
💬 Личный контакт: @maslennikovig — для вопросов, идей и обратной связи.
🔧 GitHub: claude-code-orchestrator-kit — open-source инструменты для AI-автоматизации.
Если попробуете настройки — напишите, что сработало, что нет. Буду рад фидбеку.
Ссылки
А какие настройки используете вы? Делитесь в комментариях — интересно узнать, что ещё можно оптимизировать.
