Как использовать CLAUDE.md для оптимизации Claude Code
Подробное руководство по подключению файла CLAUDE.md из репозитория multica‑ai/andrej‑karpathy‑skills к Claude Code: локальная установка, проектные и глобальные настройки, примеры запуска и проверка работы.
Установка и проверка Claude Code
Установка CLI‑утилиты через pip
Для работы Claude Code достаточно установить пакет claude-code. Делается это привычным способом — через pip. Я обычно делаю отдельный виртуальный окружение, чтобы не «засорять» системный Python и обеспечить предсказуемость зависимостей.
bash# создаём каталог для окружения, если его ещё нет
mkdir -p ~/venv/claude && cd ~/venv/claude
# создаём venv (Python 3.11 в моём Proxmox‑контейнере)
python3 -m venv .venv
source .venv/bin/activate
# обновляем pip и ставим утилиту
python -m pip install --upgrade pip
pip install claude-code
Почему именно venv?
Systemd‑службы, которые я пишу для автоматизации, могут запускатьclaude-codeот имени обычного пользователя. При наличии изолированного окружения гарантируем, что обновление одной библиотеки не сломает другую задачу.
После установки проверьте, что бинарник попал в PATH:
bashwhich claude-code
# → /home/youruser/venv/claude/.venv/bin/claude-code
Если путь отличается, добавьте его в ~/.bashrc (или ~/.zshrc):
bashexport PATH="$HOME/venv/claude/.venv/bin:$PATH"
Проверка версии и базового запуска
Утилита поддерживает вывод версии и небольшую «пробную» сессию без проекта. Это удобно, чтобы убедиться, что всё работает, прежде чем копировать CLAUDE.md в рабочий репозиторий.
bash# проверяем установленную версию
claude-code --version
# пример вывода: claude-code 0.9.3
Запуск без параметров открывает интерактивный REPL, в котором можно задать простой запрос. Для быстрой проверки используем флаг --no-project, чтобы утилита не искала файлы CLAUDE.md в текущем каталоге.
bashclaude-code --no-project "Напиши функцию на Python, считающую факториал."
Ожидаемый ответ выглядит так:
def factorial(n: int) -> int:
"""Возвращает n! (факториал) для n >= 0."""
if n < 0:
raise ValueError("n must be non‑negative")
result = 1
for i in range(2, n + 1):
result *= i
return result
Если вывод появился, значит:
claude-codeуспешно связался с API Claude.- Ваш API‑токен (если он нужен) корректно подхвачен из переменной
CLAUDE_API_KEYили из~/.config/claude/config.toml.
Быстрая проверка токена
bashexport CLAUDE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxx
claude-code --no-project "Кратко опиши, что делает команда `ls -l`."
Если вместо кода вы получили ошибку авторизации, проверьте, что токен не содержит лишних пробелов и имеет актуальные права доступа.
Пример systemd‑юнита для постоянного доступа
Чтобы не запускать source .venv/bin/activate каждый раз, я оформляю небольшую службу:
ini# /etc/systemd/system/claude-code.service
[Unit]
Description=Claude Code CLI service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=alexey
Environment="PATH=/home/alexey/venv/claude/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
ExecStart=/home/alexey/venv/claude/.venv/bin/claude-code --daemon
Restart=on-failure
[Install]
WantedBy=multi-user.target
bashsudo systemctl daemon-reload
sudo systemctl enable --now claude-code.service
sudo systemctl status claude-code.service
Служба будет работать в фоне, а вы сможете обращаться к ней через claude-code без лишних подготовительных шагов.
Что дальше?
После того как базовый запуск подтвердил работоспособность, можно переходить к подключению CLAUDE.md из репозитория multica‑ai/andrej‑karpathy‑skills. Файл описывает набор правил, которые Claude будет применять перед генерацией кода. В следующем разделе разберём, как разместить его в проекте и задать глобальные настройки.
Размещение CLAUDE.md в проекте
Клонирование репозитория и копирование файла
Для начала получаем CLAUDE.md из официального репозитория multica‑ai/andrej‑karpathy‑skills. Делать это лучше один раз, а затем использовать локальный клон – так гарантируем предсказуемость версии файла.
bash# 1. Создаём отдельный каталог для «инструментов LLM», если его ещё нет
mkdir -p ~/llm-tools && cd ~/llm-tools
# 2. Клонируем репозиторий (по умолчанию берём ветку main)
git clone https://github.com/multica-ai/andrej-karpathy-skills.git
cd andrej-karpathy-skills
# 3. Проверяем, что файл действительно присутствует
ls -l CLAUDE.md
Важно: перед клонированием убедитесь, что у вас установлен
git≥ 2.30. На Debian‑based системах это делаетсяsudo apt-get install -y git.
После того как репозиторий склонирован, файл CLAUDE.md можно разместить в любом проекте, где планируется использовать Claude Code. Я обычно храню его в корне репозитория кода, рядом с README.md, чтобы он был сразу виден всем участникам.
bash# Предположим, у вас уже есть проект в ~/projects/my‑app
cp CLAUDE.md ~/projects/my‑app/
Если проект уже находится под контролем версии, добавьте файл в индекс и зафиксируйте:
bashcd ~/projects/my‑app
git add CLAUDE.md
git commit -m "Add CLAUDE.md – baseline instructions for Claude Code"
git push
Таким образом, каждый, кто клонирует ваш репозиторий, получит инструкцию автоматически, без необходимости вручную искать её в интернете.
Как Claude Code автоматически подхватывает инструкцию
Claude Code ищет файл CLAUDE.md в текущем рабочем каталоге и во всех его родительских директориях. Как только файл найден, утилита читает его содержимое и применяет правила к каждому запросу кода. Это поведение реализовано в самом бинарнике и не требует дополнительной конфигурации.
1. Проверка обнаружения файла
Запустите Claude Code из корня проекта и включите режим «verbose», чтобы увидеть, откуда он загрузил инструкцию:
bashcd ~/projects/my‑app
claude-code --verbose "Напиши функцию, считающую факториал"
В выводе вы увидите строку вроде:
[INFO] Loading instruction file: /home/alexey/projects/my-app/CLAUDE.md
Если такой строки нет, проверьте:
- Текущее расположение – файл должен находиться в текущем каталоге или выше.
- Права доступа –
chmod 644 CLAUDE.mdобычно достаточно. - Корректность имени – только
CLAUDE.md(заглавные буквы, расширение.md).
2. Приоритет глобального и проектного CLAUDE.md
Claude Code поддерживает два уровня инструкций:
| Уровень | Путь поиска | Приоритет |
|---|---|---|
| Глобальный | ~/.config/claude/CLAUDE.md | ниже проектного |
| Проектный | ./CLAUDE.md (или в родительских каталогах) | выше |
Если нужен «универсальный» набор правил для всех проектов, разместите файл в ~/.config/claude/. При этом любой проект‑специфичный CLAUDE.md переопределит глобальные директивы.
bash# Пример глобального файла
mkdir -p ~/.config/claude
cp ~/llm-tools/andrej-karpathy-skills/CLAUDE.md ~/.config/claude/
3. Пример минимального CLAUDE.md для проекта
markdown# CLAUDE.md – правила для проекта my‑app
## Общие рекомендации
- Писать код в стиле PEP‑8 (для Python) и Google C++ Style (для C++).
- Всегда добавлять типизацию, если язык её поддерживает.
- При генерации тестов использовать `pytest` (Python) или `gtest` (C++).
## Ограничения
- Не использовать сторонние пакеты, не указанные в `requirements.txt`.
- Не менять публичный API без явного указания версии.
## Проверка качества
- После генерации кода автоматически запускать `make lint && make test`.
Claude Code будет учитывать эти пункты при каждом запросе, например, добавляя типизацию или отказываясь использовать неразрешённые зависимости.
4. Автоматическая проверка работы
Самый надёжный способ убедиться, что инструкция применяется – написать небольшой «тест‑промпт» и посмотреть, выполнены ли ограничения.
bashclaude-code "Создай функцию, которая возвращает квадрат числа, без использования **math**"
Ожидаемый ответ:
pythondef square(x: int) -> int:
"""Возвращает квадрат числа."""
return x * x
Обратите внимание на наличие типизации (int) – её требовала наша инструкция. Если типизация отсутствует, проверьте, что файл CLAUDE.md действительно читается (см. пункт 1).
Эти два шага – клонирование + копирование и проверка автоматического подхвата – образуют базовый процесс интеграции CLAUDE.md в любой проект. После них Claude Code работает предсказуемо, а вы получаете контроль над тем, какие правила применяются к генерируемому коду.
Глобальная настройка через домашнюю директорию
Создание каталога ~/.claude и размещение CLAUDE.md
Для глобальной настройки CLAUDE.md нужно создать директорию в домашней папке и поместить туда файл. Это позволит Claude Code использовать правила из CLAUDE.md для всех проектов.
Шаги:
-
Создайте директорию
~/.claude:bashmkdir -p ~/.claudeПримечание:
mkdir -pсоздаст родительские директории, если их нет. Это удобно, если вы еще не настроили.claude. -
Скопируйте файл
CLAUDE.mdиз репозиторияmultica-ai/andrej-karpathy-skillsв эту директорию:bashcp /путь/к/andrej-karpathy-skills/CLAUDE.md ~/.claude/Если файл еще не скачан, сначала выполните:
bashgit clone https://github.com/multica-ai/andrej-karpathy-skills.git -
Убедитесь, что файл имеет права на чтение:
bashchmod 644 ~/.claude/CLAUDE.md
Пример содержимого CLAUDE.md:
markdown# Правила для Claude Code
## Описание проекта
Это скрипт для генерации веб-приложений на Flask.
## Ожидаемые входные данные
- Имя проекта (например, `myapp`)
- Технологии: Python 3.11, Flask, SQLAlchemy
## Запрещенные действия
- Не используйте `print()` для вывода промежуточных результатов.
- Все ошибки должны логироваться через `logging`.
Источник:
- GitHub Trending: multica-ai / andrej-karpathy-skills ...
Описание: В этом посте показано, как CLAUDE.md упрощает настройку моделей в Claude Code.
Проверка применения правил к новым проектам
После настройки глобального CLAUDE.md нужно убедиться, что Claude Code действительно использует его. Это можно проверить при запуске любого нового проекта.
Пример проверки:
-
Создайте новый проект:
bashcd /путь/к/новому/проекту -
Запустите Claude Code с указанием пути к
CLAUDE.md:bashclaude-code --claude-config ~/.claude/CLAUDE.mdЕсли вы не указываете
--claude-config, Claude Code автоматически ищет файл в~/.claude. -
Проверьте, что правила из
CLAUDE.mdприменяются. Например, если в файле запрещено использоватьprint(), убедитесь, что Claude Code не генерирует код с этой командой.
Как интерпретировать вывод:
- Если Claude Code ссылается на
CLAUDE.mdв логах, настройки работают. - Если нет ссылки, возможно, файл не найден. Проверьте путь в команде или права доступа.
Совет из практики:
- Я часто тестирую настройки, меняя параметры в
CLAUDE.mdи запуская простой проект. Например, если я добавлю правило "использовать только async-методы", то проверяю, что Claude Code действительно генерирует код сasync def.
Источник:
- habr.com: как настроить CLAUDE.md
Статья описывает детали проверки глобальных настроек через.claude.
Практические примеры применения
Запуск интерактивной сессии с предустановленными правилами
Файл CLAUDE.md служит "руководством" для Claude Code, определяя, как ИИ должен взаимодействовать с вашим проектом. Например, в нем можно указать стиль кода, структуру репозитория или правила тестирования. Это как рецепт, который ИИ "читает" перед выполнением задачи.
Пример содержимого CLAUDE.md:
markdown# Правила для проекта
1. Все функции должны быть документированы в виде комментариев.
2. Используйте только ES6-синтаксис.
3. Перед коммитом запускайте тесты с помощью `npm test`.
Чтобы подключить этот файл, просто положите его в корень проекта. При запуске сессии Claude Code автоматически прочитает его и начнет следовать правилам.
Команда для запуска сессии:
bashclaude-code --rules ./CLAUDE.md
GitHub Trending: multica-ai / andrej-karpathy-skills ... - Instagram описывает, как файл
CLAUDE.mdпомогает стандартизировать работу команды.
Автоматическое тестирование и линтинг кода, предложенного Claude
Claude Code может автоматически запускать тесты и линтеры, описанные в CLAUDE.md. Например, если в файле указано, что тесты должны запускаться при каждом коммите, ИИ это сделает без вмешательства человека. Это особенно полезно для проектов с частыми изменениями.
Пример настройки в CLAUDE.md:
markdown# Автоматизация
- При каждом коммите запускайте тесты: `npm test`
- Проверяйте код через ESLint: `eslint .`
Claude Code будет выполнять эти команды автоматически, а вы будете получать результаты в интерфейсе. Если тесты пройдены, ИИ предложит коммит. Если нет — попросит уточнения.
Команда для проверки работы:
bashclaude-code --auto-test
GitHub Trending: multica-ai / andrej-karpathy-skills ... - Instagram показывает, как интеграция тестов в
CLAUDE.mdсокращает время на проверку кода.
Если вы хотите адаптировать правила под конкретный проект, можно расширить CLAUDE.md на свои нужды. Главное — четко сформулировать инструкции, чтобы Claude понимал их без вопросов.
Часто задаваемые вопросы
Как правильно структурировать файл CLAUDE.md для оптимизации Claude Code?
Файл CLAUDE.md должен содержать четкие инструкции для модели в виде разделов, например, "Правила написания кода", "Стандарты форматирования" или "Шаги тестирования". Например, можно указать, что функции должны возвращать типы данных, или что тесты должны покрывать 80% кода. Важно использовать конкретные примеры, а не общие фразы, чтобы модель понимала контекст. Рекомендуется разделить правила на подзаголовки для лучшей читаемости.
Где именно размещать файл CLAUDE.md в проекте?
Файл CLAUDE.md должен находиться в корневой директории проекта или в подкаталоге, который указывается при запуске Claude Code. Например, если проект находится в ~/projects/my_app, файл должен быть в ~/projects/my_app/CLAUDE.md. Утилита автоматически сканирует этот путь при запуске. Если файл находится в другом месте, нужно явно указать его путь через параметры CLI, но это менее удобно, чем размещение в корне.
Как проверить, что CLAUDE.md успешно подключен к Claude Code?
После размещения файла в проекте можно запустить Claude Code с флагом --no-project, чтобы убедиться, что он игнорирует файл. Если файл работает, модель будет следовать его правилам даже без него. Также можно вручную ввести запрос, который должен соответствовать указаниям CLAUDE.md. Например, если в файле указано "Все функции должны использовать типизацию", то запрос на написание функции должен возвращать код с аннотациями типов.
Что делать, если CLAUDE.md не влияет на поведение Claude Code?
Проверьте, что файл находится в правильной директории и имеет правильное имя (без регистрочувствительности, но лучше использовать заглавную букву). Убедитесь, что синтаксис YAML или Markdown в файле корректен — например, отсутствуют ли ошибки в структуре. Также можно временно удалить файл и добавить его обратно, чтобы убедиться, что проблема не связана с кэшированием. Если проблема сохраняется, уточните, какие именно правила вы хотите применить, и скорректируйте их формулировки.
Можно ли использовать несколько CLAUDE.md в одном проекте?
Нет, утилита поддерживает только один файл CLAUDE.md в проекте. Если нужно разные правила для разных частей проекта, можно создать несколько подпроектов или использовать вложенные директории с отдельными файлами. Например, в src/CLAUDE.md для кода и в docs/CLAUDE.md для документации. Однако это требует ручного управления и может усложнить процесс.