Полный справочник 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-автоматизации.
Если попробуете настройки — напишите, что сработало, что нет. Буду рад фидбеку.
Ссылки
А какие настройки используете вы? Делитесь в комментариях — интересно узнать, что ещё можно оптимизировать.
