Remove the "Лог файл" (Log file) column from the report generation as it's no longer needed. This simplifies the report structure and removes unused functionality.
13 lines
27 KiB
Plaintext
13 lines
27 KiB
Plaintext
Полный справочник 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) /etc/claude-code/managed-settings.json Корпоративные политики 🟠 Высокий Local (личный) .claude/settings.local.json Персональные настройки (не в git) 🟡 Средний Project (команда) .claude/settings.json Настройки проекта (в git) 🟢 Низший User (глобальный) ~/.claude/settings.json Дефолты для всех проектов Типичный паттерн: .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 + по требованию. Значение Поведение auto Активируется при >10% контекста заняты MCP auto:N Активируется при >N% контекста true Всегда включен false Выключен Результат: ДО: 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" } Объяснить код с Что делает: Выбирает канал обновлений. Значение Поведение latest Последняя версия (default) — новые фичи, возможные баги stable Версия недельной давности — проверено, стабильно Моя рекомендация: stable для продакшн проектов, latest для экспериментов. permissions.defaultMode { "permissions": { "defaultMode": "acceptEdits" } } Объяснить код с Что делает: Режим разрешений при старте сессии. Значение Поведение default Спрашивает разрешения на всё acceptEdits Автоматически принимает редактирования файлов bypassPermissions Пропускает ВСЕ запросы (опасно!) 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. Доступные события: Событие Когда срабатывает SessionStart Старт сессии SessionEnd Конец сессии Stop / SubagentStop Остановка основного агента / субагента PreToolUse / PostToolUse До/после использования инструмента PreCompact Перед компактификацией контекста UserPromptSubmit Отправка промпта пользователем Setup При claude --init, --init-only, --maintenance (v2.1.x) Пример: Прогрев кэша при старте { "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 } Объяснить код с Настройка По умолчанию Что отключает showTurnDuration true "Cooked for 1m 6s" spinnerTipsEnabled true Tips в спиннере terminalProgressBarEnabled 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" } } Объяснить код с Переменная По умолчанию Что контролирует BASH_DEFAULT_TIMEOUT_MS 120000 (2 мин) Таймаут bash по умолчанию BASH_MAX_TIMEOUT_MS 600000 (10 мин) Максимальный таймаут bash MCP_TIMEOUT 30000 Таймаут подключения к MCP MCP_TOOL_TIMEOUT 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" } } Объяснить код с Переменная Что отключает DISABLE_TELEMETRY Телеметрия DISABLE_ERROR_REPORTING Отправка ошибок DISABLE_AUTOUPDATER Автообновления DISABLE_COST_WARNINGS Предупреждения о стоимости DISABLE_NON_ESSENTIAL_MODEL_CALLS Неосновные вызовы API DISABLE_PROMPT_CACHING Кэширование промптов Для: Параноиков, 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-автоматизации. Если попробуете настройки — напишите, что сработало, что нет. Буду рад фидбеку. Ссылки Официальная документация Claude Code Settings MCP конфигурация GitHub CHANGELOG А какие настройки используете вы? Делитесь в комментариях — интересно узнать, что ещё можно оптимизировать.
|
||
==============
|
||
Этот текст представляет собой руководство по настройке Claude Code, предназначенное для разработчиков. Основная идея — предоставить структурированный справочник с ранжированием настроек по полезности, начиная с критически важных и заканчивая специфическими. Ключевые настройки включают: хранение планов в git, автоматическую загрузку MCP инструментов, управление разрешениями, выбор модели (Sonnet для экономии токенов), использование расширенного мышления, поддержку русского языка, настройку каналов обновлений, и настройку хуков для автоматизации. Также упоминаются API ключи, proxy, "песочницу" для безопасности и возможность скрывать информацию о пользователе. Предоставлены примеры конфигурации settings.json и объяснения к коду, которые помогают понять назначение каждой настройки и её влияние на производительность и безопасность. Особое внимание уделяется экономии токенов и эффективному использованию MCP инструментов. Предоставлены контакты для обратной связи и ссылки на репозиторий с open-source инструментами. |