Настройки Claude Code9 минобновлено Максим Самусь

Claude Code - настройка с нуля

Вся система, из которой эти статьи, лежит в ClaudeBase - 990 ₽ в месяц. Файлы устанавливаются в проект по инструкции.

Что понадобится

  • Установленный Claude Code. Проверяется командой claude --version - в ответ приходит номер версии.
  • Папка проекта, с которым будешь работать. Почти вся настройка живёт файлами внутри неё.
  • Полчаса один раз. Дальше настройка только дополняется по ходу дела.

Что такое сам Claude Code - в словаре. Если ещё выбираешь инструмент - сравнение с Cursor.

Всё, что ниже, проверено на живой установке версии 2.1.259.

Главное, что надо понять до первой команды

Настройка Claude Code - это не одно окно с галочками. Это четыре разные вещи, и путать их дорого:

  1. Правила проекта - что агент должен знать про твой код и твои порядки.
  2. Память - что он помнит после того, как сессия закрылась.
  3. Разрешения - что ему можно без вопроса, а что нельзя никогда.
  4. Скиллы - готовые навыки, которые он подхватывает по имени.

Порядок именно такой, и он не случайный. Правила без разрешений дают бесконечное «можно?» на каждый шаг. Разрешения без правил дают быстро сделанную ерунду. Скиллы ставятся последними: пока первых трёх нет, они просто занимают место.

Второе, что стоит понять сразу: почти вся настройка - это текстовые файлы на диске, а не меню. Панели внутри сессии - /memory, /permissions, /hooks - правят эти же файлы. Знаешь, где файл лежит, настроишь что угодно, хоть блокнотом.

Шаг 1. Правила проекта - файл CLAUDE.md {#shag-1}

Самый важный файл и самый простой. Обычный текст в разметке markdown, лежит в корне проекта. Агент читает его в начале каждой сессии - это его инструктаж.

Заготовку он соберёт сам по твоему коду:

/init

Открыть и поправить, не выходя из сессии:

/memory

Что туда писать - три вещи, остальное потом:

  • чем проверять работу: команда тестов, команда сборки;
  • куда не лезть: папки и файлы, которые трогать нельзя;
  • как у вас принято: имена, стиль, порядок работы с ветками.

Файл работает на трёх уровнях, и они складываются:

Где лежит На что действует
CLAUDE.md в корне проекта только этот проект, едет вместе с ним в репозиторий
CLAUDE.md в домашней папке .claude все проекты на этой машине - твои личные привычки
CLAUDE.md в подпапке проекта подхватывается, только когда агент открывает файлы из этой подпапки

Приём, который экономит место: строка, которая начинается со знака @ и пути, подтягивает содержимое другого файла целиком. У меня в домашнем CLAUDE.md стоит такая строка на карточку бизнеса - и карточка попадает в контекст любой сессии любого проекта, а сам свод правил не пухнет.

Главная ошибка на этом шаге - писать в CLAUDE.md то, что агент и так видит в коде. Он умеет читать. Пиши то, чего в коде нет: почему так решили, что уже пробовали и не сработало, чего делать нельзя ни при каких условиях.

Шаг 2. Память между сессиями {#shag-2}

Тут людей путает похожесть слов. CLAUDE.md - это правила, они не меняются сами. Память - это накопленное: решения, находки, грабли.

Разница простая: правила ты пишешь сам, память пишется сама.

Каталог, куда она пишется, задаётся в настройках ключом autoMemoryDirectory. Внутри - индексный файл MEMORY.md, который подгружается в каждую сессию, и папки по проектам с подробностями. То есть в контекст всегда попадает короткий список «что где искать», а не вся история разом.

Второй механизм - откат. Двойное нажатие Esc возвращает разговор и файлы к более раннему моменту, та же панель открывается командой /rewind. Это не про хранение, а про «ушли не туда, вернись назад»: история git при этом остаётся чистой.

Третье, о чём стоит знать заранее: окно контекста конечно. Когда оно кончается, разговор сжимается. Сжать вручную - команда /compact, размер окна, после которого сжатие включается само, задаётся ключом autoCompactWindow.

Практика простая: закрывая большой кусок работы, попроси записать выводы. Иначе следующая сессия начнётся с нуля и ты будешь пересказывать одно и то же по третьему разу.

Шаг 3. Разрешения - что можно без вопроса {#shag-3}

Пока разрешения не настроены, агент спрашивает почти на каждое действие. Через час это выматывает, и человек начинает жать «да» не глядя - вот это и есть настоящая опасность, а не сами вопросы.

Панель:

/permissions

Она заранее разрешает и заранее запрещает три вещи: команды в терминале, правки файлов и инструменты MCP. Под капотом пишет в settings.json списки правил: allow - можно без вопроса, deny - нельзя никогда, ask - спрашивать всегда. Два главных выглядят так:

{
  "permissions": {
    "allow": ["Bash(git status*)", "Bash(npm *)", "Read", "Edit"],
    "deny": ["Bash(rm -rf*)", "Read(**/.env)", "Read(**/secrets/**)"]
  }
}

Читается так: в скобках инструмент, внутри образец, звёздочка значит «и дальше что угодно». Запрет сильнее разрешения - если строка попала в deny, никакой allow её не перебьёт.

Файлов настроек четыре, и они складываются по возрастанию силы:

Файл Кого касается
settings.json в домашней папке .claude твои личные настройки во всех проектах
.claude/settings.json в проекте общие для команды, кладутся в репозиторий
.claude/settings.local.json твои личные в этом проекте, в репозиторий не идут
managed-settings.json правила организации, поверх всего остального

Что внести в deny в первый же день: удаление папок целиком, чтение файлов с ключами (.env, папки вида secrets), любые команды «скачай и сразу выполни». Это те случаи, где ошибка не откатывается.

Режим, в котором сессия работает по умолчанию, тоже настраивается - командой /config. Отдельно стоит знать про режим плана: в нём агент сначала показывает, что собирается сделать, и только потом делает. Для первых недель это лучший вариант.

Полный обход проверок в Claude Code есть, и он специально назван словом «опасно». Включать его имеет смысл там, где ломать нечего.

Шаг 4. Скиллы - готовые навыки {#shag-4}

Скилл - это папка с файлом SKILL.md, в котором лежит инструкция: когда браться и что делать по шагам. Подробнее - что такое скилл.

Куда класть:

.claude/skills/deploy/SKILL.md      - только в этом проекте
~/.claude/skills/deploy/SKILL.md    - во всех проектах

Положил - и в сессии появляется команда /deploy. Посмотреть, что уже стоит:

/skills

Внутри SKILL.md короткая шапка. Обязательных полей в ней нет, имя команды берётся из названия папки, но одну строку писать надо:

---
description: Когда просят выкатить на прод - собрать, прогнать тесты, выложить
---

description - самое важное поле во всей затее. По нему агент решает, браться за скилл или нет. Написал расплывчато - скилл либо не сработает никогда, либо будет лезть туда, куда не просят.

И цена вопроса, о которой мало кто думает. Описание каждого скилла висит в контексте каждого хода, а сам файл читается только когда скилл запускается. Значит, десяток скиллов не стоит почти ничего, а несколько сотен уже заметно съедают место под саму задачу. У меня на машине их пять с лишним сотен - это перебор, за который платишь контекстом каждый ход. Ставь то, чем правда пользуешься.

Шаг 5. Проверить, что всё подхватилось {#shag-5}

Здоровье установки:

claude doctor

Команда печатает версию, способ установки, платформу и состояние автообновления. Внутри сессии есть более подробная проверка - /doctor.

Дальше проверка по-человечески: открой сессию в проекте и попроси пересказать правила своими словами. Пересказал - CLAUDE.md прочитан. Не пересказал - файл лежит не в корне или назван иначе.

Когда четырёх штук мало: хуки и MCP

Хуки - твои собственные скрипты, которые запускаются на событиях: перед вызовом инструмента, после ответа, при старте и завершении сессии. Посмотреть, что и когда срабатывает, - командой /hooks. Пишутся они в settings.json:

{
  "hooks": {
    "Stop": [
      { "hooks": [ { "type": "command", "command": "bash ~/scripts/posle-otveta.sh" } ] }
    ]
  }
}

Имена событий, которые работают у меня прямо сейчас: PreToolUse, UserPromptSubmit, Stop, SubagentStop, PreCompact, SessionEnd, PermissionRequest.

MCP - способ дать агенту новые инструменты: почту, базу, браузер. Подключается из сессии командой /mcp или из терминала:

claude mcp add moy-server -- npx paket-servera

Что это вообще такое - в словаре.

Куда смотреть, если что-то не так

Что видишь Что это значит
агент не знает правил проекта CLAUDE.md лежит не в корне или назван иначе
спрашивает разрешение на каждый шаг список allow пустой, начни с /permissions
правка настроек ни на что не повлияла тебя перебивает файл сильнее: проектный или организации
скилл не запускается сам по смыслу слабое description в шапке SKILL.md
после настройки всё поехало запусти сессию с ключом --safe-mode: он отключает все надстройки
контекст кончается быстрее прежнего много скиллов и раздутый CLAUDE.md, режь оба

Пять ошибок, на которых спотыкаются

  1. Складывать в CLAUDE.md всё подряд. Файл читается каждую сессию целиком: чем он толще, тем меньше места остаётся под саму работу.
  2. Настраивать разрешения по одному в диалоге. Через час устанешь и начнёшь жать «да» не читая. Пять минут в /permissions в начале дня дешевле.
  3. Не заполнять deny. allow экономит время, deny спасает файлы. Второе важнее.
  4. Ставить скиллы пачками «на будущее». Каждый висит описанием в контексте, а пользуешься ты тремя.
  5. Класть личное в общий файл. Привычки - в домашнюю папку, командное - в .claude/settings.json проекта, своё в чужом проекте - в .claude/settings.local.json.

Что дальше

Всё, что я собрал по настройке для своих проектов, лежит в ClaudeBase: файлы добавляются в проект по инструкции, и агент читает их в рабочем контексте.

Спрашивают

Пять вопросов по теме

С чего начинать, если проект уже большой и запутанный?

С команды /init - агент прочитает код и соберёт заготовку правил сам. Дальше вычеркни из неё всё, что и так видно в коде, и допиши то, чего в коде нет: почему так решили и что уже пробовали.

Где физически лежат все настройки Claude Code?

В четырёх файлах settings.json: личный в домашней папке, проектный и локальный в папке .claude внутри проекта, плюс управляемый организацией. Правила проекта - отдельно, в файлах CLAUDE.md.

Чем файл правил отличается от памяти между сессиями?

Правила ты пишешь сам, и они не меняются, пока не поправишь. Память копится сама по ходу работы и подгружается коротким индексом. Первое - инструктаж, второе - накопленный опыт.

После настройки агент стал вести себя странно, что проверить?

Запусти сессию с ключом safe-mode - он временно отключает все твои надстройки, оставляя чистый инструмент. Заработало - причина в твоих файлах, и дальше возвращаешь их по одному.

Как развести настройки команды и свои личные?

Общее для команды идёт в .claude/settings.json проекта и коммитится. Личное во всех проектах - в домашнюю папку. Личное именно в этом проекте - в .claude/settings.local.json, его в репозиторий не кладут.

Источники

Максим Самусь · проверено на своих проектах