Запуск Claude Code «из коробки» без предварительной настройки обычно приводит к двум крайностям: либо агент каждые двадцать секунд дергает вас подтверждениями на вызов элементарного
git status, либо молча засасывает в контекст гигабайты из vendor или node_modules, сжигая недельный баланс токенов за полдня.Чтобы инструмент работал как автономный ассистент, а не раздражающий фактор, его конфигурацию важно сразу разложить по полочкам. Разбираем актуальную архитектуру настроек Claude Code, ключевые параметры
settings.json и правила отсечения лишнего контекста.Архитектура настроек: три уровня изоляции
Claude Code использует предсказуемую иерархию конфигурации по принципу каскада (каждый следующий уровень переопределяет предыдущий):
-
Глобальный уровень (
~/.claude/settings.json)Применяется ко всем сессиям на вашей машине. Сюда выносятся базовые системные предпочтения: глобальная модель по умолчанию, темы оформления, поведение телеметрии и базовые лимиты затрат. -
Командный уровень проекта (
.claude/settings.jsonв корне репозитория)Хранится в Git вместе с проектом. Здесь описывается конвенция команды: какие команды разрешено выполнять без запроса подтверждения (автозапуск тестов, линтеры), какие деструктивные действия заблокированы намертво, и какие системные пути исключены из анализа. -
Локальный оверрайд (
.claude/settings.local.json)Файл строго для.gitignore. Нужен для переопределения проектных параметров под ваше персональное рабочее окружение (например, кастомный путь к PHP/Node в кастомном каталоге, специфические флаги контейнеров или локальные прокси).
Практический шаблон .claude/settings.json
Рабочий пример конфигурации для современного проекта, защищающий от типичных факапов:
JSON
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"model": "claude-3-7-sonnet",
"maxTokens": 4096,
"permissions": {
"allow": [
"git status",
"git diff",
"git log",
"composer test",
"npm run test",
"php artisan test"
],
"deny": [
"git push --force*",
"rm -rf *",
"drop database*",
"truncate *"
]
},
"ignorePatterns": [
"vendor/**",
"node_modules/**",
"storage/logs/**",
".git/**",
"*.lock",
"dist/**",
"coverage/**"
],
"costLimits": {
"warnAtUsd": 3.0,
"stopAtUsd": 10.0
}
}
Разбор критических секций
1. Политика выполнения команд (permissions)
По умолчанию агент обязан спрашивать подтверждение перед любым вызовом утилиты в вашей оболочке.
-
В массив
allowдобавляйте утилиты только на чтение и запуск тестов. Когда агент правит логику и сразу прогоняет Pest/PHPUnit без вашего ручного «Yes», процесс ускоряется в разы. -
В массив
denyобязательно зашивайте маски деструктивных команд. Даже если модель словит галлюцинацию или решит «радикально почистить окружение», выполнение будет аппаратно прервано на уровне CLI.
2. Фильтрация контекста (ignorePatterns и .claudeignore)
Самая частая причина утечки токенов — агент пытается «проиндексировать» весь проект целиком.
Помимо
settings.json, в корне репозитория обязательно создайте файл .claudeignore (работает по синтаксису .gitignore):Plaintext
# Изолируем тяжелые зависимости
/vendor/
/node_modules/
# Логи и временные дампы
/storage/logs/
/storage/framework/cache/
*.log
# Лок-файлы (агенту не нужно вычитывать миллионы строк хешей)
composer.lock
package-lock.json
pnpm-lock.yaml
# Кеши тестов и артефакты сборки
/.phpunit.cache/
/coverage/
/dist/
/build/
Если агенту действительно понадобится проверить сигнатуру стороннего класса из вендора, он сможет запросить конкретный файл точечно, но не будет загружать сотни мегабайт стороннего кода в системный промпт.
3. Контроль расходов (costLimits)
Параметры
warnAtUsd и stopAtUsd страхуют от зацикливания агента. Если при рефакторинге сложной цепочки скриптов агент уйдет в бесконечный цикл правок и перезапуска упавших тестов, сессия автоматически встанет на паузу по достижении лимита, а не высосет весь доступный депозит на аккаунте.Управление настройками прямо из терминальной сессии
Не обязательно каждый раз открывать конфигурационные файлы в редакторе — базовые параметры и аудит состояния доступны через встроенные slash-команды Claude Code:
-
/config— интерактивный просмотр активных параметров с подсветкой того, из какого именно файла (глобального или проектного) приехало конкретное значение. -
/cost— детальная сводка по сессии: объем входных/выходных токенов, использование кэша контекста (Prompt Caching) и итоговая стоимость работы в долларах. -
/compact— принудительное сжатие текущего контекста диалога. Вызывайте, когда задача близится к финалу, но агент начал заметно медленнее отвечать из-за раздутой истории правок. -
/bugили/doctor— быстрая проверка сетевой связности с API Anthropic, статуса авторизации и корректности прав на файлы настроек.
Итог
Правильная организация конфигов Claude Code строится вокруг трех вещей: безопасный
allow-список для автоматизации тестов, жесткий .claudeignore для изоляции тяжелых директорий от расхода токенов и отдельный .claude/settings.local.json под локальные капризы разработчика. Один раз настроив этот каркас в шаблоне репозитория, вы избавляете себя от микроменеджмента терминала на всех последующих задачах.