Продвинутый

Как использовать CLAUDE.md для оптимизации Claude Code

Алексей Кузнецов
Алексей Кузнецов
Системный администратор10 июня 2026 г.11 мин чтения

Подробное руководство по подключению файла CLAUDE.md из репозитория multica‑ai/andrej‑karpathy‑skills к Claude Code: локальная установка, проектные и глобаль...

Как использовать 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:

bash
which claude-code
# → /home/youruser/venv/claude/.venv/bin/claude-code

Если путь отличается, добавьте его в ~/.bashrc (или ~/.zshrc):

bash
export PATH="$HOME/venv/claude/.venv/bin:$PATH"

Проверка версии и базового запуска

Утилита поддерживает вывод версии и небольшую «пробную» сессию без проекта. Это удобно, чтобы убедиться, что всё работает, прежде чем копировать CLAUDE.md в рабочий репозиторий.

bash
# проверяем установленную версию
claude-code --version
# пример вывода: claude-code 0.9.3

Запуск без параметров открывает интерактивный REPL, в котором можно задать простой запрос. Для быстрой проверки используем флаг --no-project, чтобы утилита не искала файлы CLAUDE.md в текущем каталоге.

bash
claude-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

Если вывод появился, значит:

  1. claude-code успешно связался с API Claude.
  2. Ваш API‑токен (если он нужен) корректно подхвачен из переменной CLAUDE_API_KEY или из ~/.config/claude/config.toml.

Быстрая проверка токена

bash
export 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
bash
sudo 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/

Если проект уже находится под контролем версии, добавьте файл в индекс и зафиксируйте:

bash
cd ~/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», чтобы увидеть, откуда он загрузил инструкцию:

bash
cd ~/projects/my‑app
claude-code --verbose "Напиши функцию, считающую факториал"

В выводе вы увидите строку вроде:

[INFO] Loading instruction file: /home/alexey/projects/my-app/CLAUDE.md

Если такой строки нет, проверьте:

  1. Текущее расположение – файл должен находиться в текущем каталоге или выше.
  2. Права доступаchmod 644 CLAUDE.md обычно достаточно.
  3. Корректность имени – только 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. Автоматическая проверка работы

Самый надёжный способ убедиться, что инструкция применяется – написать небольшой «тест‑промпт» и посмотреть, выполнены ли ограничения.

bash
claude-code "Создай функцию, которая возвращает квадрат числа, без использования **math**"

Ожидаемый ответ:

python
def square(x: int) -> int:
    """Возвращает квадрат числа."""
    return x * x

Обратите внимание на наличие типизации (int) – её требовала наша инструкция. Если типизация отсутствует, проверьте, что файл CLAUDE.md действительно читается (см. пункт 1).


Эти два шага – клонирование + копирование и проверка автоматического подхвата – образуют базовый процесс интеграции CLAUDE.md в любой проект. После них Claude Code работает предсказуемо, а вы получаете контроль над тем, какие правила применяются к генерируемому коду.

Глобальная настройка через домашнюю директорию

Создание каталога ~/.claude и размещение CLAUDE.md

Для глобальной настройки CLAUDE.md нужно создать директорию в домашней папке и поместить туда файл. Это позволит Claude Code использовать правила из CLAUDE.md для всех проектов.

Шаги:

  1. Создайте директорию ~/.claude:

    bash
    mkdir -p ~/.claude  
    

    Примечание: mkdir -p создаст родительские директории, если их нет. Это удобно, если вы еще не настроили .claude.

  2. Скопируйте файл CLAUDE.md из репозитория multica-ai/andrej-karpathy-skills в эту директорию:

    bash
    cp /путь/к/andrej-karpathy-skills/CLAUDE.md ~/.claude/  
    

    Если файл еще не скачан, сначала выполните:

    bash
    git clone https://github.com/multica-ai/andrej-karpathy-skills.git  
    
  3. Убедитесь, что файл имеет права на чтение:

    bash
    chmod 644 ~/.claude/CLAUDE.md  
    

Пример содержимого CLAUDE.md:

markdown
# Правила для Claude Code  

## Описание проекта  
Это скрипт для генерации веб-приложений на Flask.  

## Ожидаемые входные данные  
- Имя проекта (например, `myapp`)  
- Технологии: Python 3.11, Flask, SQLAlchemy  

## Запрещенные действия  
- Не используйте `print()` для вывода промежуточных результатов.  
- Все ошибки должны логироваться через `logging`.  

Источник:


Проверка применения правил к новым проектам

После настройки глобального CLAUDE.md нужно убедиться, что Claude Code действительно использует его. Это можно проверить при запуске любого нового проекта.

Пример проверки:

  1. Создайте новый проект:

    bash
    cd /путь/к/новому/проекту  
    
  2. Запустите Claude Code с указанием пути к CLAUDE.md:

    bash
    claude-code --claude-config ~/.claude/CLAUDE.md  
    

    Если вы не указываете --claude-config, Claude Code автоматически ищет файл в ~/.claude.

  3. Проверьте, что правила из CLAUDE.md применяются. Например, если в файле запрещено использовать print(), убедитесь, что Claude Code не генерирует код с этой командой.

Как интерпретировать вывод:

  • Если Claude Code ссылается на CLAUDE.md в логах, настройки работают.
  • Если нет ссылки, возможно, файл не найден. Проверьте путь в команде или права доступа.

Совет из практики:

  • Я часто тестирую настройки, меняя параметры в CLAUDE.md и запуская простой проект. Например, если я добавлю правило "использовать только async-методы", то проверяю, что Claude Code действительно генерирует код с async def.

Источник:

Практические примеры применения

Запуск интерактивной сессии с предустановленными правилами

Файл CLAUDE.md служит "руководством" для Claude Code, определяя, как ИИ должен взаимодействовать с вашим проектом. Например, в нем можно указать стиль кода, структуру репозитория или правила тестирования. Это как рецепт, который ИИ "читает" перед выполнением задачи.

Пример содержимого CLAUDE.md:

markdown
# Правила для проекта  
1. Все функции должны быть документированы в виде комментариев.  
2. Используйте только ES6-синтаксис.  
3. Перед коммитом запускайте тесты с помощью `npm test`.  

Чтобы подключить этот файл, просто положите его в корень проекта. При запуске сессии Claude Code автоматически прочитает его и начнет следовать правилам.

Команда для запуска сессии:

bash
claude-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 будет выполнять эти команды автоматически, а вы будете получать результаты в интерфейсе. Если тесты пройдены, ИИ предложит коммит. Если нет — попросит уточнения.

Команда для проверки работы:

bash
claude-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 для документации. Однако это требует ручного управления и может усложнить процесс.

Поделиться:TelegramX / TwitterVK