Как написать CLAUDE.md — инструкции для Claude Code

CLAUDE.md — файл инструкций, который Claude Code загружает в начале каждой сессии. Разбираем, что в нём писать и как не переплачивать за контекст.

4 мин · · разработка · IDE

Claude Code каждый раз начинает сессию с чистого контекста и не помнит, какой у вас стек, как запускать тесты и что в проекте трогать нельзя. CLAUDE.md решает эту проблему: это файл с постоянными инструкциями, который агент загружает в начале каждой сессии. Ниже — где он лежит, что в него писать, чего избегать и сколько стоит лишний текст в нём.

Что такое CLAUDE.md и где он лежит

CLAUDE.md — обычный markdown-файл. Claude Code читает его при запуске и держит содержимое в контексте всю сессию. По документации Claude Code есть несколько уровней:

УровеньГде лежитДля чего
Пользовательский~/.claude/CLAUDE.mdВаши личные предпочтения для всех проектов
Проектный./CLAUDE.md или ./.claude/CLAUDE.mdОбщие правила проекта, коммитятся в git для всей команды
Локальный./CLAUDE.local.mdЛичные заметки по проекту, добавьте в .gitignore

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

Быстрый старт — команда /init в сессии: Claude Code изучит репозиторий и предложит черновик CLAUDE.md. Редактировать файлы удобно через /memory, а проверить, что именно загрузилось, — через /context (раздел Memory files).

Что писать в CLAUDE.md

Пишите то, что иначе пришлось бы объяснять агенту заново: команды сборки, соглашения, устройство проекта, правила «всегда делай X». Хороший сигнал добавить строку — агент второй раз совершает одну и ту же ошибку.

Инструкции должны быть проверяемыми: «отступ 2 пробела» вместо «форматируй аккуратно», «запускай npm test перед коммитом» вместо «тестируй изменения».

Стек и команды

bash
## Tech Stack
- Python 3.11, FastAPI, PostgreSQL
- Package manager: poetry

## Build & Test
- Install: `poetry install`
- Run: `poetry run uvicorn src.main:app --reload`
- Test: `poetry run pytest tests/` — must pass before commit
- Lint: `ruff check src/ && mypy src/`

Стиль и структура

bash
## Code Style
- Type hints required for all functions
- Google-style docstrings for public APIs
- Max line length: 100

## Project Structure
- `src/api/routes/` — HTTP handlers
- `src/models/` — SQLAlchemy models
- `migrations/` — Alembic migrations

Запреты и важный контекст

bash
## Rules
- Never edit existing migrations, only add new ones
- Never commit `.env` or credentials
- Multi-tenant app: every query must filter by tenant_id
- DB access is async: use `async_session()`

Учтите: CLAUDE.md — это контекст, а не жёсткие настройки. Если действие нужно запретить гарантированно, в Claude Code для этого есть правила разрешений и хуки.

Чего не писать

  • Секреты. Никаких ключей, паролей и токенов: проектный CLAUDE.md лежит в git, а его текст отправляется модели при каждом запросе.
  • Всю вики проекта. Не копируйте документацию целиком. Укажите путь: «архитектура описана в docs/ARCHITECTURE.md» — агент прочитает файл, когда он понадобится.
  • Длинные примеры кода. Одна-две строки как образец, а не целые скрипты.
  • Историю проекта. Кто и когда начинал проект, агенту для работы не нужно.
  • Противоречия. Если два правила спорят, агент может выбрать любое. Периодически вычищайте устаревшее.

Отдельно про импорты: строка вида @docs/guide.md в CLAUDE.md подключает файл целиком при запуске. Это удобно для организации, но контекст не экономит. Если файл нужен изредка, упоминайте его путь в обратных кавычках без @. Для правил, которые касаются только части кода, в документации Claude Code описана папка .claude/rules/ с привязкой к путям — такие правила подгружаются, только когда агент работает с подходящими файлами. А HTML-комментарии <!-- ... --> вырезаются до отправки модели, ими можно оставлять заметки для людей.

Почему короткий файл дешевле

Содержимое CLAUDE.md входит в контекст каждого обращения к модели, а агент на одну задачу делает много таких обращений. Документация Claude Code советует держать файл в пределах 200 строк: длинный файл занимает контекст и хуже соблюдается.

Пример на ценах Zukko для claude-sonnet-5 ($0,30 за 1M входных токенов), 100 обращений к модели в день:

CLAUDE.md на 5000 токенов: 5000 × 100 × 0.30 / 1M = $0.15 в день ≈ $4.50 в месяц CLAUDE.md на 500 токенов: 500 × 100 × 0.30 / 1M = $0.015 в день ≈ $0.45 в месяц

Разница — около $4 в месяц только на этом файле. У официального API Anthropic повторяющийся контекст частично оплачивается по цене чтения из кэша (около 10% входной цены), а в Zukko кэшированные токены стоят как обычные входные. Поэтому при работе через Zukko размер CLAUDE.md сильнее влияет на счёт, и лаконичность окупается напрямую.

Шаблон для начала

bash
## Project: MyApp
FastAPI backend for an internal CRM.

## Tech Stack
- Python 3.11, FastAPI, PostgreSQL 14, poetry

## Commands
- Install: `poetry install`
- Run: `poetry run uvicorn src.main:app --reload`
- Test: `poetry run pytest` — must pass before commit
- Lint: `ruff check . && mypy src/`

## Code Style
- Type hints required, Google-style docstrings, line length 100

Этого достаточно, чтобы агент перестал гадать о командах и правилах.

Как подключить Claude Code к Zukko

Claude Code работает через Zukko с теми же CLAUDE.md. Достаточно двух переменных в ~/.claude/settings.json в блоке env: ANTHROPIC_BASE_URL = https://api.zukko.pro (без /v1) и ANTHROPIC_AUTH_TOKEN = ваш ключ fetch_.... Ключ создаётся на странице API-ключей, полная настройка — в инструкции по Claude Code.

Частые вопросы

Нужен ли CLAUDE.md, если есть README?

Да, у них разные задачи. README объясняет проект людям, CLAUDE.md даёт агенту короткие правила работы: команды, запреты, соглашения. Можно сослаться на README из CLAUDE.md, но не копировать его.

Кто видит CLAUDE.md?

Проектный CLAUDE.md — обычный файл в репозитории: его видят все, у кого есть доступ к коду, и он отправляется модели как часть контекста. Личные заметки по проекту храните в CLAUDE.local.md и добавьте его в .gitignore.

Можно ли ссылаться на внешние страницы?

Можно, но агенту придётся отдельно загрузить страницу (если вы это разрешите), а это лишний шаг и лишние токены. Надёжнее положить нужную выжимку в локальный файл и указать путь к нему.

Работает ли CLAUDE.md в расширении VS Code?

Да. Расширение использует тот же Claude Code, поэтому CLAUDE.md, ~/.claude/CLAUDE.md и CLAUDE.local.md загружаются так же, как в терминале.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.

CLAUDE.md: как написать инструкции для Claude Code · Zukko