Настройка Claude Code: спиннер-пасхалки, скрытые параметры settings.json и CLAUDE.md, о которых не пишут в документации
Пока Claude Code думает над вашим запросом, в терминале мелькают слова. Не «Thinking» и не «Processing», а Noodling. Honking. Clauding. Smooshing.
Я залип на этом минут на десять, полез в исходники — и обнаружил целую систему кастомизации, о которой почти не пишут. 56 слов-спиннеров, кастомные стили вывода, statusline как в tmux, правила по папкам, и конфиг, в котором можно менять вообще всё — от модели до поведения автокомпакта. Собрал всё в одном месте.
56 слов спиннера: система Tengu
Внутри Anthropic систему спиннер-глаголов называют Tengu — в честь японского духа-трикстера. Каждый раз, когда Claude Code думает, он показывает случайное слово из списка. Вот мои любимые:
-
Cerebrating — от cerebrum (кора мозга). Буквально «мозговая деятельность»
-
Cogitating — латынь, cogito ergo sum
-
Ruminating — жевать мысли, как корова жвачку
-
Noodling — ковыряться в идее. По-русски ближе всего «залипать»
-
Smooshing — сминать и склеивать
-
Finagling — выкручиваться, химичить
-
Schlepping — тащить (из идиша)
-
Honking — гусиный гудок
-
Clauding — клодить. Пасхалка-самоотсылка
-
Vibing — вайбить
И это кастомизируется. В ~/.claude/settings.json есть поле spinnerVerbs:
{
"spinnerVerbs": [
"Кодирую",
"Думаю",
"Ломаю прод",
"Деплою в пятницу",
"Читаю ваш код (ужас)"
]
}
Полный список дефолтных слов: gist от mandarBadve
Мелочь? Да. Но по таким деталям видно, что команда делает продукт с любовью, а не просто фичи по спринтам.
Файловая структура Claude Code — что где лежит
Прежде чем лезть в настройки, стоит понять структуру:
~/.claude/ # глобальные настройки
├── CLAUDE.md # ваши личные инструкции
├── settings.json # глобальный конфиг
└── skills/ # скиллы для всех проектов
your-project/
├── CLAUDE.md # инструкции для проекта
└── .claude/
├── settings.json # конфиг проекта (в git)
├── settings.local.json # личные настройки (не в git)
├── rules/ # правила по папкам
│ ├── api-rules.md
│ └── testing-rules.md
├── skills/ # скиллы проекта
├── agents/ # кастомные субагенты
└── .mcp.json # MCP-серверы
Ключевое: CLAUDE.md — это «что Claude должен знать», settings.json — «что Claude может делать». Если вы пишете JSON-конфиг в CLAUDE.md — он должен быть в settings.json. Если пишете правила на человеческом языке в settings.json — они должны быть в CLAUDE.md.
CLAUDE.md — память Claude между сессиями
Claude Code читает CLAUDE.md автоматически при каждом запуске. Не нужно копировать, не нужно ссылаться — он просто знает всё, что там написано.
Что туда стоит класть:
# Проект: мой-сервис
## Стек
- Backend: Django 5.1, PostgreSQL, Redis
- Frontend: React 19, TypeScript, Tailwind
- Деплой: Docker Compose на VPS
## Правила
- Всегда пиши тесты к новому коду
- Используй ruff вместо black для форматирования
- Не трогай файлы в /legacy — там драконы
- Коммиты на русском языке
## Архитектура
- API в /api/v2/, старый /api/v1/ не трогать
- Авторизация через JWT, не через сессии
- Все переменные окружения в .env, не хардкодь
## При компактинге сохраняй
- Текущие редактируемые файлы
- Сообщения об ошибках тестов
- Архитектурные решения из этой сессии
Последний пункт — неочевидный, но важный. Когда контекст заполняется и Claude делает /compact (сжатие истории), он может потерять важную информацию. Инструкция «при компактинге сохраняй» говорит ему, что оставить.
settings.json — реально полезные настройки
Модель и уровень усилий
{
"model": "claude-sonnet-4-6",
"effortLevel": "high",
"alwaysThinkingEnabled": true
}
effortLevel: low (быстрые ответы), medium (стандарт), high (глубокое reasoning). Также переключается командой /effort прямо в сессии.
Автокомпакт — когда сжимать контекст
{
"env": {
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "75"
}
}
По умолчанию Claude сжимает контекст когда он заполнен на ~80%. Для задач, где нужен большой контекст — ставьте 85%. Для коротких задач — 60-65%, чтобы экономить токены.
Разрешения — самая важная часть
{
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test *)",
"Bash(npm run build)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Bash(rm -rf *)",
"Bash(git push --force *)"
]
}
}
Команды в allow выполняются без подтверждения. В deny — полностью заблокированы. Всё остальное — спрашивает. Это убирает главное раздражение: бесконечные «Allow this command? y/n».
Важно: deny для .env файлов — обязательно. Без этого Claude может прочитать ваши API-ключи и включить их в ответ.
Хуки — автоматические действия
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "npx prettier --write "$CLAUDE_TOOL_INPUT_FILE_PATH""
}
]
}
]
}
}
После каждой записи/редактирования файла — автоматический prettier. Код всегда отформатирован, без ручных команд.
Output Styles — стили вывода
Мало кто знает, но Claude Code поддерживает три стиля вывода, переключаемых через /config:
-
Default — лаконичный, только суть
-
Explanatory — добавляет обоснование решений, почему выбран такой подход
-
Learning — режим парного программирования, с маркерами
TODO(human)и объяснениями
Для обучения Learning — находка. Claude объясняет каждый шаг и отмечает места, где нужно ваше решение.
Можно создавать свои стили в .claude/styles/.
Statusline — dashboard в терминале
Statusline — скрипт, который показывает информацию внизу терминала после каждого хода Claude. Настраивается через /statusline или вручную.
Что можно показывать: текущая директория, git-ветка, процент заполнения контекста (с цветовой кодировкой: зелёный < 50%, жёлтый 50-80%, красный > 80%), стоимость сессии.
/cost — показывает, сколько денег вы потратили за сессию (для API-ключей). /stats — для подписчиков Max/Pro.
LSP — навигация по коду
Скрытая фича, которая включается через переменную окружения:
{
"env": {
"ENABLE_LSP_TOOL": "1"
}
}
После включения Claude Code подключается к языковому серверу (tsserver, pylsp, gopls, rust-analyzer) и получает навигацию по коду: go to definition, find references, автокомплит. Результат — Claude лучше понимает структуру проекта и точнее редактирует код.
Нужен установленный LSP-сервер для вашего языка. Для TypeScript — tsserver (ставится вместе с TypeScript). Для Python — pylsp.
Shift+Tab — переключение режимов
Три режима, переключаемые через Shift+Tab:
-
Default — стандартный режим, спрашивает подтверждение
-
acceptEdits — автоматически применяет правки, но спрашивает про команды
-
Plan Mode — только планирует, ничего не выполняет
Plan Mode — недооценённый режим для сложных задач. Claude анализирует задачу и пишет план, но ничего не трогает. Вы читаете план, корректируете, и только потом даёте зелёный свет.
Итого: минимальный конфиг для старта
Если не хотите разбираться во всех параметрах — вот конфиг, который закрывает 90% потребностей. Положите в ~/.claude/settings.json:
{
"model": "claude-sonnet-4-6",
"effortLevel": "medium",
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
},
"env": {
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "75"
}
}
И создайте CLAUDE.md в корне проекта с описанием стека, правил и архитектуры. Этих двух файлов достаточно, чтобы Claude Code перестал быть «просто терминальным ChatGPT» и стал инструментом, который знает ваш проект.
Какие настройки Claude Code используете вы? И поменяли ли spinnerVerbs — если да, на что?
Автор: nlaik

