⚡ Продвинутый · Конфигурация

Настройка Claude Code

Установка, конфигурация settings.json, permissions, CLAUDE.md шаблон и оптимизация токенов.

3 уровня конфига 3 модели hooks · permissions

#Установка

# Установка глобально через npm npm install -g @anthropic-ai/claude-code # Проверка версии claude --version # Запуск в папке проекта cd E:\Clients\myproject claude

#Три уровня конфигурации

Claude Code читает настройки иерархично — от глобальных к локальным. Более конкретный уровень переопределяет общий.

1
Глобальный ~/.claude/settings.json
Общие настройки для всех проектов: модель по умолчанию, базовые permissions, env-переменные.
Windows: C:\Users\Имя\.claude\settings.json
2
Монорепо / корневой ./CLAUDE.md
Общие правила репозитория: стек, стандарты, workflow. Наследуется всеми подпапками.
3
Проект / подпапка ./packages/api/CLAUDE.md
Специфичные правила подпроекта. Переопределяют и дополняют верхние уровни.

#settings.json — глобальный конфиг

Частая ошибка новичков
settings.json — стандартный JSON, не допускает trailing commas. Одна лишняя запятая — и CC при запуске выдаст ошибку парсинга, а все настройки игнорируются. Используйте валидатор: node -e "require('./settings.json')" перед сохранением.
// ~/.claude/settings.json (или C:\Users\..\.claude\settings.json) { "model": "sonnet", // Default модель — Sonnet (дешевле Opus в ~1.7×) "alwaysThinkingEnabled": true, // Extended thinking по умолчанию "env": { "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "400000", "DISABLE_TELEMETRY": "1", "COST_ALERT_THRESHOLD": "5" }, "permissions": { "allow": [ "Read(*)", "Glob(*)", "Grep(*)", "Edit(*)", "Write(*)", "MultiEdit(*)", "Bash(git status*)", "Bash(git log*)", "Bash(git diff*)", "Bash(git add*)", "Bash(git commit*)", "Bash(php*)", "Bash(composer*)", "Bash(python*)", "Bash(ruff*)", "Bash(mypy*)", "Bash(pnpm*)", "Bash(npx*)", "mcp__docker__*", "mcp__postgres-pro__query" ], "deny": [ "Bash(git push --force*)", "Bash(git push -f*)", "Bash(git reset --hard*)", "Bash(git checkout --*)", "Bash(*--no-verify*)", "Bash(*DROP TABLE*)", "Bash(*TRUNCATE*)", "Bash(psql*)", "Bash(pg_dump*)", "Bash(mysqldump*)", "Bash(php artisan migrate:fresh*)", "Bash(php artisan db:wipe*)" ] }, "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "node .claude/helpers/dangerous-command-guard.cjs" }, { "type": "command", "command": "node .claude/helpers/bash-mcp-guard.cjs" }, { "type": "command", "command": "node .claude/helpers/secret-scanner.cjs" } ]}, { "matcher": "Edit|Write|MultiEdit", "hooks": [ { "type": "command", "command": "node .claude/helpers/critical-files-guard.cjs" } ]} ], "PostToolUse": [ { "matcher": "Edit|Write|MultiEdit", "hooks": [ { "type": "command", "command": "node .claude/helpers/auto-format.cjs" } ]} ], "Stop": [ { "matcher": ".*", "hooks": [ { "type": "command", "command": "node .claude/helpers/cost-tracker.cjs" } ]} ] } }

#CLAUDE.md — шаблон проекта

Ограничение
CLAUDE.md читается целиком при каждом запуске. Держать до 150 строк. Длинные файлы могут частично игнорироваться. Детали → в examples/ и docs/.
# CLAUDE.md — шаблон (скопировать и адаптировать) # Правило: < 150 строк! ## Проект **Название:** `my-project` **Цель:** Краткое описание (1-2 строки) **Прод:** https://site.ru **Контейнеры:** my-project-backend-1, my-project-db-1 ## Стэк - PHP 8.3 / Laravel 11 (или другой стэк) - PostgreSQL 16, Redis 7 - Docker Compose, Caddy ## Модель - **Default:** Sonnet 5 - **Opus 4.8:** только /brainstorm и /write-plan - **Haiku 4.5:** rename, format ## Workflow новой фичи 1. /brainstorm → spec → /write-plan → plan 2. git worktree → claude → /execute-plan 3. /request-code-review → PR → merge ## Стандарты кода - **PHP:** PSR-12 + Pint. Всегда declare(strict_types=1) - **Vue/TS:** ESLint flat + Prettier. Только Composition API ## Критические правила - **БД:** только mcp__postgres__query (read-only) - **Git:** запрещены --force, --no-verify, reset --hard - **При буксовании:** /clear + переформулируй ## Запрещённые паттерны - $request->all() без $fillable - Eloquent в Controller - any в TypeScript без обоснования

#Модели и стоимость

Opus
$5input /1M
$25output /1M
Только для /brainstorm и /write-plan. Сложная архитектура, тонкие рассуждения.
Sonnet Default
$3input /1M
$15output /1M
Ежедневная работа. Баланс цена/качество — 90%+ задач решает он.
Haiku
$1input /1M
$5output /1M
Простые задачи: rename, формат, batch-операции. Очень быстро.
// Переключение модели в сессии: /model sonnet /model opus /model haiku
Стратегия
Sonnet — ежедневная работа. Opus — только /brainstorm и /write-plan для крупных задач. Haiku — batch-переименования, форматирование. Экономия до 20× при правильном выборе.