Память и CLAUDE.md
Руководство по памяти
Память позволяет Claude сохранять контекст между сессиями и диалогами. Она существует в двух формах: автоматический синтез в claude.ai и файл CLAUDE.md на файловой системе в Claude Code.
Обзор
Память в Claude Code обеспечивает постоянный контекст, сохраняющийся между сессиями и диалогами. В отличие от временного контекстного окна, файлы памяти позволяют:
- Распространять стандарты проекта в команде
- Хранить личные предпочтения по разработке
- Задавать правила и настройки для конкретных каталогов
- Импортировать внешнюю документацию
- Хранить память под контролем версий вместе с проектом
Система памяти работает на нескольких уровнях - от глобальных личных настроек до отдельных подкаталогов, что даёт точный контроль над тем, что Claude запоминает и как применяет эти знания.
Краткий справочник команд памяти
| Command | Purpose | Usage | When to Use |
|---|---|---|---|
/init | Initialize project memory | /init | Starting new project, first-time CLAUDE.md setup |
/memory | Edit memory files in editor | /memory | Extensive updates, reorganization, reviewing content |
# prefix | - | Use /memory or ask conversationally instead | |
@path/to/file | Import external content | @README.md or @docs/api.md | Referencing existing documentation in CLAUDE.md |
Быстрый старт: инициализация памяти
Команда /init
Команда /init - самый быстрый способ настроить память проекта в Claude Code. Она создаёт файл CLAUDE.md с базовой документацией проекта.
Использование:
Что делает:
- Создаёт новый файл CLAUDE.md в вашем проекте (обычно по пути
./CLAUDE.mdили./.claude/CLAUDE.md) - Задаёт соглашения и правила проекта
- Закладывает основу для сохранения контекста между сессиями
- Предоставляет шаблон для документирования стандартов вашего проекта
Расширенный интерактивный режим: задайте CLAUDE_CODE_NEW_INIT=1, чтобы включить многоэтапный интерактивный сценарий, который пошагово проведёт вас через настройку проекта:
Когда использовать /init:
- Старт нового проекта с Claude Code
- Внедрение командных стандартов и соглашений по написанию кода
- Создание документации по структуре кодовой базы
- Настройка иерархии памяти для совместной разработки
Пример рабочего процесса:
Быстрое обновление памяти
Примечание: сокращение
#для добавления записей в память по ходу диалога больше не поддерживается. Используйте/memory, чтобы редактировать файлы памяти напрямую, либо просто попросите Claude что-то запомнить (например, «запомни, что мы всегда используем TypeScript strict mode»).
Рекомендуемые способы добавить информацию в память:
Вариант 1: команда /memory
Открывает файлы памяти в системном редакторе для прямого редактирования.
Вариант 2: запрос в диалоге
Claude обновит соответствующий файл CLAUDE.md согласно вашему запросу.
Историческая справка (больше не поддерживается):
Ранее сокращение с префиксом # позволяло добавлять правила прямо на месте:
Если вы использовали этот паттерн, перейдите на команду /memory или запросы в диалоге.
Команда /memory
Команда /memory предоставляет прямой доступ к редактированию файлов памяти CLAUDE.md прямо из сессии Claude Code. Она открывает файлы памяти в системном редакторе для полноценного редактирования. При открытии файла в GUI-редакторе сессия больше не блокируется на время работы с файлом, так что можно продолжать работу параллельно (v2.1.216); терминальные редакторы вроде Vim по-прежнему занимают терминал до выхода из них.
Использование:
Что делает команда:
- Открывает файлы памяти в редакторе, заданном в системе по умолчанию
- Позволяет вносить масштабные дополнения, изменения и проводить реорганизацию
- Даёт прямой доступ ко всем файлам памяти в иерархии
- Позволяет управлять постоянным контекстом между сессиями
Когда использовать /memory:
- Просмотр текущего содержимого памяти
- Масштабное обновление стандартов проекта
- Реорганизация структуры памяти
- Добавление подробной документации или рекомендаций
- Поддержка и обновление памяти по мере развития проекта
Сравнение: /memory и /init
| Aspect | /memory | /init |
|---|---|---|
| Purpose | Edit existing memory files | Initialize new CLAUDE.md |
| When to use | Update/modify project context | Begin new projects |
| Action | Opens editor for changes | Generates starter template |
| Workflow | Ongoing maintenance | One-time setup |
| Пример рабочего процесса: |
Использование импортов памяти:
Файлы CLAUDE.md поддерживают синтаксис @path/to/file для подключения внешнего содержимого:
Возможности импорта:
- Поддерживаются как относительные, так и абсолютные пути (например,
@docs/api.mdили@~/.claude/my-project-instructions.md) - Поддерживается рекурсивный импорт с максимальной глубиной 4 уровня
- При первом импорте из внешнего расположения запрашивается подтверждение - в целях безопасности
- Директивы импорта не обрабатываются внутри inline-кода и блоков кода в Markdown (поэтому их можно безопасно приводить в примерах)
- Помогает избежать дублирования за счёт ссылок на существующую документацию
- Автоматически подключает указанное содержимое в контекст Claude
Архитектура памяти
Память в Claude Code построена по иерархическому принципу, где разные области видимости решают разные задачи. В отличие от 24-часового цикла синтеза в Claude Web/Desktop (см. Память в Claude Web/Desktop ниже), в Claude Code есть две системы памяти: обе загружаются в начале каждой сессии и обновляются непрерывно, а не по таймеру:
graph TB A["Session Start"] B["CLAUDE.md Files<br/>(you write)"] C["Auto Memory<br/>(Claude writes)"] D["Claude Session"] E["Your Correction /<br/>Preference"] B -->|loaded in full| A C -->|MEMORY.md loaded| A A --> D D -->|"Remember that..."| E E -->|writes during session| C D -->|"add this to CLAUDE.md"| BИерархия памяти в Claude Code
У Claude Code есть две взаимодополняющие системы памяти, и обе загружаются в начале каждого разговора: файлы CLAUDE.md (инструкции, которые пишете вы) и auto memory (заметки, которые Claude ведёт сам). Файлы CLAUDE.md склеиваются в контексте, а не переопределяют друг друга - это не жёсткая цепочка приоритетов, в которой более высокий уровень вытесняет более низкий. Файлы .claude/rules/*.md - это отдельный, но смежный механизм для инструкций, привязанных к теме или пути.
Расположения файлов CLAUDE.md в порядке загрузки (от самой широкой области действия к самой узкой):
| Scope | Location | Purpose |
|---|---|---|
| Managed policy | macOS: /Library/Application Support/ClaudeCode/CLAUDE.md<br>Linux/WSL: /etc/claude-code/CLAUDE.md<br>Windows: C:\Program Files\ClaudeCode\CLAUDE.md | Organization-wide instructions managed by IT/DevOps. Cannot be excluded by individual settings. |
| User instructions | ~/.claude/CLAUDE.md | Personal preferences for all projects |
| Project instructions | ./CLAUDE.md or ./.claude/CLAUDE.md | Team-shared instructions, version controlled |
| Local instructions | ./CLAUDE.local.md | Personal project-specific preferences; add to .gitignore |
В дереве каталогов Claude Code поднимается вверх от вашего рабочего каталога: foo/CLAUDE.md загружается раньше foo/bar/CLAUDE.md, если вы запускаете из foo/bar/, так что инструкции, расположенные ближе к точке запуска, читаются последними - это не «наивысший приоритет» в смысле переопределения, а просто самые свежие записи в контексте. Внутри каждого каталога CLAUDE.local.md дописывается после CLAUDE.md. Файлы CLAUDE.md и CLAUDE.local.md в подкаталогах ниже вашего рабочего каталога загружаются по требованию, когда Claude читает файлы из этих подкаталогов, а не при запуске. |
Организации также могут размещать управляемое содержимое CLAUDE.md прямо в managed-settings.json через ключ claudeMd, не разворачивая отдельный файл. Это учитывается только в managed/policy settings - задание claudeMd в пользовательских или проектных настройках не даёт никакого эффекта.
.claude/rules/*.md - модульные тематические инструкции, при необходимости привязываемые к путям файлов через поле paths во frontmatter. Правила без поля paths загружаются безусловно с тем же приоритетом, что и .claude/CLAUDE.md; правила с привязкой к путям загружаются по требованию, когда Claude читает подходящий под шаблон файл. Правила уровня пользователя (~/.claude/rules/) загружаются раньше проектных.
Auto memory (~/.claude/projects/<project>/memory/) - это отдельная система: собственные заметки Claude, а не содержимое CLAUDE.md, и они не входят в описанный выше порядок конкатенации. См. раздел Auto Memory ниже.
Примечание:
CLAUDE.local.mdполностью поддерживается и описан в официальной документации. Он позволяет хранить личные настройки для конкретного проекта, которые не коммитятся в систему контроля версий. ДобавьтеCLAUDE.local.mdв свой.gitignore.
Как работает обнаружение memory:
graph TD A["Managed Policy<br/>/Library/.../ClaudeCode/CLAUDE.md"] -->|loads first| B["User Instructions<br/>~/.claude/CLAUDE.md"] B --> C["Project Instructions<br/>./CLAUDE.md or ./.claude/CLAUDE.md"] C --> D["Local Instructions<br/>./CLAUDE.local.md"] C -->|imports| H["@docs/architecture.md"] H -->|imports| I["@docs/api-standards.md"] style A fill:#fce4ec,stroke:#333,color:#333 style B fill:#f3e5f5,stroke:#333,color:#333 style C fill:#e1f5fe,stroke:#333,color:#333 style D fill:#e8f5e9,stroke:#333,color:#333 style H fill:#e1f5fe,stroke:#333,color:#333 style I fill:#e1f5fe,stroke:#333,color:#333Все показанные файлы объединяются в один общий контекст, а не выбираются через override - более поздние блоки просто идут дальше по контексту, а не «вместо» более ранних.
Исключение файлов CLAUDE.md с помощью claudeMdExcludes
В крупных монорепозиториях часть файлов CLAUDE.md может быть нерелевантна текущей задаче. Настройка claudeMdExcludes позволяет исключить конкретные файлы CLAUDE.md, чтобы они не загружались в контекст:
Шаблоны сопоставляются с путями относительно корня проекта. Это особенно полезно в следующих случаях:
- Монорепозитории с множеством подпроектов, из которых актуальны лишь некоторые
- Репозитории, содержащие вендорные или сторонние файлы CLAUDE.md
- Уменьшение шума в контекстном окне Claude за счёт исключения устаревших или не относящихся к делу инструкций
Иерархия файлов настроек
Настройки Claude Code (включая autoMemoryDirectory, claudeMdExcludes и другие параметры) разрешаются по приоритету - в отличие от рассмотренных выше файлов CLAUDE.md, настройки действительно переопределяют друг друга, а не объединяются. Если одна и та же настройка задана в нескольких областях, побеждает значение с более высокого уровня:
| Level | Location | Scope |
|---|---|---|
| 1 (Highest) | Managed - managed-settings.json, plist/registry, or server-managed | Organization-wide enforcement; cannot be overridden |
| 2 | Command line arguments | Temporary session overrides |
| 3 | .claude/settings.local.json | Local overrides (git-ignored) |
| 4 | .claude/settings.json | Project-level (committed to git) |
| 5 (Lowest) | ~/.claude/settings.json | User preferences |
Managed-настройки также поддерживают drop-in каталог managed-settings.d/ рядом с managed-settings.json: сначала подключается базовый файл, затем поверх него в алфавитном порядке применяются файлы *.json из drop-in каталога (скаляры переопределяются, массивы объединяются с удалением дубликатов, объекты сливаются рекурсивно). Это позволяет разным командам разворачивать независимые фрагменты политик, не редактируя общий файл. Обратите внимание, что это механизм settings.json, а не CLAUDE.md - на расположения файлов CLAUDE.md, описанные выше, он не распространяется. |
Правила разрешений (allow/ask/deny) ведут себя иначе, чем остальные настройки: они объединяются между областями действия, а не переопределяются более высоким уровнем.
Платформозависимая конфигурация (v2.1.51+):
Настройки также можно задавать через:
- macOS: property list (plist) файлы
- Windows: реестр Windows
Эти нативные для платформ механизмы считываются наряду с JSON-файлами настроек и подчиняются тем же правилам приоритета.
Примечание (v2.1.119): изменения через
/configтеперь сохраняются в~/.claude/settings.json. Значения, записанные через/config, участвуют в описанной выше цепочке приоритетов policy/local/project - они больше не ограничены текущей сессией. Используйте/configдля интерактивного редактирования, а для скриптовой или управляемой конфигурации правьте файлыsettings.jsonнапрямую.
Настройки хранения и очистки
| Setting | Type | Default | Description |
|---|---|---|---|
cleanupPeriodDays | integer (days) | 30 | Retention window for on-disk artifacts. As of v2.1.117, it applies to all four of: checkpoints (~/.claude/checkpoints/), tasks (~/.claude/tasks/), shell-snapshots (~/.claude/shell-snapshots/), and backups (~/.claude/backups/). Files older than the window are pruned at startup. |
Настройки атрибуции, авторства и URL пул-реквеста
| Setting | Type | Description |
|---|---|---|
attribution.commit | boolean | Adds the Co-Authored-By: Claude trailer to commits Claude creates. Replaces the deprecated includeCoAuthoredBy flag. |
attribution.pr | boolean | Adds Claude attribution to pull request descriptions. Replaces the deprecated includeCoAuthoredBy flag for PRs. |
attribution.sessionUrl | boolean | Omit the claude.ai session link from commits and PRs created in web and Remote Control sessions (v2.1.183+). |
voice.enabled | boolean | Enables push-to-talk voice dictation (/voice). Replaces the deprecated voiceEnabled flag. |
prUrlTemplate | string | New in v2.1.119. Custom URL template for the footer PR badge; useful for GitLab, Bitbucket, or internal code-review platforms. Supports {{owner}}, {{repo}}, and {{number}} placeholders. |
Устаревшие имена настроек
Перечисленные ниже устаревшие ключи настроек всё ещё работают, но их использование не рекомендуется. Используйте указанные выше замены.
| Deprecated key | Replacement | Notes |
|---|---|---|
includeCoAuthoredBy | attribution.commit / attribution.pr | The old single flag is split into separate commit and PR switches. Users on older installs can keep the legacy key; new projects should use the nested form. |
voiceEnabled | voice.enabled | Grouped under the voice namespace alongside future voice-related options. |
Модульная система правил
Организуйте правила по путям с помощью структуры каталогов .claude/rules/. Правила можно задавать как на уровне проекта, так и на уровне пользователя:
Правила загружаются рекурсивно из директории rules/, включая все вложенные поддиректории. Правила уровня пользователя из ~/.claude/rules/ загружаются раньше правил уровня проекта, что позволяет задавать персональные настройки по умолчанию, которые проект может переопределить.
Правила для конкретных путей через YAML frontmatter
Задавайте правила, которые применяются только к определённым путям файлов:
Примеры glob-паттернов:
**/*.ts- все файлы TypeScriptsrc/**/*- все файлы внутри src/src/**/*.{ts,tsx}- несколько расширений{src,lib}/**/*.ts, tests/**/*.test.ts- несколько паттернов одновременно
Подкаталоги и симлинки
Правила в .claude/rules/ поддерживают два способа организации:
- Подкаталоги: правила обнаруживаются рекурсивно, поэтому их можно раскладывать по тематическим папкам (например,
rules/api/,rules/testing/,rules/security/). - Симлинки: поддерживаются симлинки для совместного использования правил в нескольких проектах. Например, можно создать симлинк на общий файл правил из центрального хранилища в каталог
.claude/rules/каждого проекта.
Таблица расположений памяти
Файлы CLAUDE.md и правила склеиваются в контексте, а не выбираются по принципу строгого переопределения - «порядок загрузки» ниже означает где именно в контексте они появляются, а не какой из них имеет приоритет. Auto memory - это отдельный механизм со своим местом хранения.
| Location | Type | Load order | Shared | Access | Best For |
|---|---|---|---|---|---|
/Library/Application Support/ClaudeCode/CLAUDE.md (macOS) | Managed Policy | 1st (loads first) | Organization | System | Company-wide policies |
/etc/claude-code/CLAUDE.md (Linux/WSL) | Managed Policy | 1st (loads first) | Organization | System | Organization standards |
C:\Program Files\ClaudeCode\CLAUDE.md (Windows) | Managed Policy | 1st (loads first) | Organization | System | Corporate guidelines |
~/.claude/rules/*.md | User Rules | 2nd | Individual | Filesystem | Personal rules (all projects) |
~/.claude/CLAUDE.md | User Memory | 3rd | Individual | Filesystem | Personal preferences (all projects) |
./.claude/rules/*.md | Project Rules | 4th | Team | Git | Path-specific, modular rules |
./CLAUDE.md or ./.claude/CLAUDE.md | Project Memory | 5th | Team | Git | Team standards, shared architecture |
./CLAUDE.local.md | Project Local | 6th (loads last) | Individual | Git (ignored) | Personal project-specific preferences |
~/.claude/projects/<project>/memory/ | Auto Memory | N/A - separate mechanism | Individual | Filesystem | Claude's automatic notes and learnings |
Жизненный цикл обновления памяти
Вот как обновления памяти распространяются между сессиями Claude Code:
sequenceDiagram participant User participant Claude as Claude Code participant Editor as File System participant Memory as CLAUDE.md User->>Claude: "Remember: use async/await" Claude->>User: "Which memory file?" User->>Claude: "Project memory" Claude->>Editor: Open ~/.claude/settings.json Claude->>Memory: Write to ./CLAUDE.md Memory-->>Claude: File saved Claude->>Claude: Load updated memory Claude-->>User: "Memory saved!"Автоматическая память
Автоматическая память - это постоянный каталог, в который Claude автоматически записывает выводы, паттерны и наблюдения по мере работы над вашим проектом. В отличие от файлов CLAUDE.md, которые вы ведёте вручную, автоматическая память заполняется самим Claude в ходе сессий.
Как работает автоматическая память
- Расположение:
~/.claude/projects/<project>/memory/ - Точка входа:
MEMORY.md- основной файл в каталоге автоматической памяти - Тематические файлы: дополнительные файлы по конкретным темам (например,
debugging.md,api-conventions.md) - Логика загрузки: при старте сессии в контекст загружаются первые 200 строк
MEMORY.md(или первые 25 КБ - в зависимости от того, что наступит раньше). Тематические файлы загружаются по мере необходимости, а не при запуске. - Чтение/запись: Claude читает и обновляет файлы памяти в ходе сессии, обнаруживая паттерны и специфичные для проекта знания
- Frontmatter: в файлах, начинающихся с YAML-frontmatter, появляется поле
modified- временна́я метка в формате ISO 8601, которую Claude Code обновляет при каждой записи файла (v2.1.214)
Архитектура автоматической памяти
graph TD A["Claude Session Starts"] --> B["Load MEMORY.md<br/>(first 200 lines / 25KB)"] B --> C["Session Active"] C --> D["Claude discovers<br/>patterns & insights"] D --> E{"Write to<br/>auto memory"} E -->|General notes| F["MEMORY.md"] E -->|Topic-specific| G["debugging.md"] E -->|Topic-specific| H["api-conventions.md"] C --> I["On-demand load<br/>topic files"] I --> C style A fill:#e1f5fe,stroke:#333,color:#333 style B fill:#e1f5fe,stroke:#333,color:#333 style C fill:#e8f5e9,stroke:#333,color:#333 style D fill:#f3e5f5,stroke:#333,color:#333 style E fill:#fff3e0,stroke:#333,color:#333 style F fill:#fce4ec,stroke:#333,color:#333 style G fill:#fce4ec,stroke:#333,color:#333 style H fill:#fce4ec,stroke:#333,color:#333 style I fill:#f3e5f5,stroke:#333,color:#333Структура каталога Auto Memory
Требования к версии
Для работы автопамяти необходим Claude Code v2.1.59 или новее. Если у вас установлена более ранняя версия, сначала обновите её:
Включение и отключение автоматической памяти
Автоматическая память включена по умолчанию. Управляет ею параметр autoMemoryEnabled (по умолчанию true); при значении false Claude не читает из каталога автоматической памяти и не пишет в него. Также её можно переключать командой /memory прямо во время сессии.
Чтобы отключить эту функцию через переменную окружения, задайте CLAUDE_CODE_DISABLE_AUTO_MEMORY=1. Значение 0, наоборот, принудительно включает auto memory, даже если режим --bare или параметр autoMemoryEnabled: false в обычной ситуации отключили бы её.
Пользовательский каталог для Auto Memory
По умолчанию auto memory хранится в ~/.claude/projects/<project>/memory/. Изменить это расположение можно с помощью настройки autoMemoryDirectory (доступна начиная с v2.1.74):
Примечание:
autoMemoryDirectoryможно задать только в пользовательских настройках (~/.claude/settings.json) или локальных настройках (.claude/settings.local.json), но не в настройках проекта или управляемой политики.
Это удобно, когда нужно:
- Хранить auto memory в общем или синхронизируемом расположении
- Отделить auto memory от стандартной директории конфигурации Claude
- Использовать путь, специфичный для проекта, вне стандартной иерархии
Общий доступ для worktree и репозитория
Все worktree и поддиректории в пределах одного git-репозитория используют общую директорию auto memory. Это значит, что при переключении между worktree или работе в разных поддиректориях одного репозитория чтение и запись будут выполняться в одни и те же файлы памяти.
Память субагентов
Субагенты (запускаемые через такие инструменты, как Task, или через параллельное выполнение) могут иметь собственный контекст памяти. Чтобы указать, какие области памяти загружать, используйте поле memory во frontmatter определения субагента:
Это позволяет субагентам работать в сфокусированном контексте, не наследуя всю иерархию памяти.
Примечание: Субагенты также могут вести собственную auto memory. Подробнее см. в официальной документации по памяти субагентов.
Управление auto memory
Поведением auto memory можно управлять через переменную окружения CLAUDE_CODE_DISABLE_AUTO_MEMORY:
| Value | Behavior |
|---|---|
0 | Force auto memory on |
1 | Force auto memory off |
| (unset) | Default behavior (auto memory enabled) |
Дополнительные каталоги через --add-dir
Флаг --add-dir позволяет Claude Code загружать файлы CLAUDE.md из дополнительных каталогов помимо текущего рабочего. Это удобно для монорепозиториев или проектов с несколькими подпроектами, когда требуется контекст из других каталогов.
Чтобы включить эту возможность, задайте переменную окружения:
Затем запустите Claude Code с флагом:
Claude загрузит CLAUDE.md из указанного дополнительного каталога вместе с файлами памяти из текущего рабочего каталога.
Практические примеры
Пример 1: Структура памяти проекта
Файл: ./CLAUDE.md
Пример 2: Память для конкретного каталога
Файл: ./src/api/CLAUDE.md
Пример 3: Персональная память
Файл: ~/.claude/CLAUDE.md
Мой тест Прошу Claude сохранить новое правило
Claude не сохранил правило, так как у меня нигде не было файла Claude.md. Тогда я попросил Claude подтвердить расположение.

Пример 4: обновление памяти во время сессии
Вы можете добавлять новые правила в память прямо во время активной сессии Claude Code, просто попросив об этом в диалоге:
Либо используйте /memory, чтобы редактировать файлы памяти напрямую - это удобно для масштабных обновлений или реорганизации.
Советы по добавлению записей в память
- Формулируйте правила конкретно и в виде выполнимых указаний
- Группируйте связанные правила под общим заголовком раздела
- Обновляйте существующие разделы, а не дублируйте содержимое
- Выбирайте подходящую область памяти (проектную или личную)
Сравнение возможностей памяти
| Feature | Claude Web/Desktop | Claude Code (CLAUDE.md) |
|---|---|---|
| Auto-synthesis | ✅ Every 24h | ✅ Auto memory |
| Cross-project | ✅ Shared | ❌ Project-specific |
| Team access | ✅ Shared projects | ✅ Git-tracked |
| Searchable | ✅ Built-in | ✅ Through /memory |
| Editable | ✅ In-chat | ✅ Direct file edit |
| Import/Export | ✅ Yes | ✅ Copy/paste |
| Persistent | ✅ 24h+ | ✅ Indefinite |
Память в Claude Web/Desktop
Хронология синтеза памяти
graph LR A["Day 1: User<br/>Conversations"] -->|24 hours| B["Day 2: Memory<br/>Synthesis"] B -->|Automatic| C["Memory Updated<br/>Summarized"] C -->|Loaded in| D["Day 2-N:<br/>New Conversations"] D -->|Add to| E["Memory"] E -->|24 hours later| F["Memory Refreshed"]Пример сводки памяти:
Лучшие практики
Что делать - что включать
-
Будьте конкретны и подробны: используйте чёткие, детальные инструкции вместо размытых рекомендаций
- ✅ Хорошо: «Используйте отступ в 2 пробела для всех файлов JavaScript»
- ❌ Избегайте: «Следуйте лучшим практикам»
-
Соблюдайте структуру: организуйте файлы памяти с помощью понятных markdown-разделов и заголовков
-
Используйте подходящие уровни иерархии:
- Managed policy: политики уровня компании, стандарты безопасности, требования compliance
- Память проекта: командные стандарты, архитектура, соглашения по оформлению кода (коммитятся в git)
- Память пользователя: личные предпочтения, стиль общения, выбор инструментов
- Память директории: правила и переопределения, специфичные для конкретного модуля
-
Используйте импорты: применяйте синтаксис
@path/to/file, чтобы ссылаться на существующую документацию- Поддерживается максимальная глубина 4 уровня для рекурсивных импортов
- Позволяет избежать дублирования между файлами памяти
- Пример:
See @README.md for project overview
-
Документируйте часто используемые команды: записывайте команды, которые вы применяете регулярно, - это экономит время
-
Держите память проекта под контролем версий: коммитьте файлы CLAUDE.md уровня проекта в git на пользу всей команде
-
Периодически пересматривайте: регулярно обновляйте память по мере развития проекта и изменения требований
-
Приводите конкретные примеры: включайте фрагменты кода и конкретные сценарии
Чего не делать - чего избегать
-
Не храните секреты: никогда не включайте API-ключи, пароли, токены или учётные данные
-
Не включайте чувствительные данные: никаких PII, приватной информации или коммерческих тайн
-
Не дублируйте содержимое: вместо этого используйте импорты (
@path) для ссылок на существующую документацию -
Не будьте расплывчаты: избегайте общих формулировок вроде «следуйте лучшим практикам» или «пишите хороший код»
-
Не делайте файл слишком длинным: ориентируйтесь на менее 200 строк в CLAUDE.md. Более длинные файлы всё равно загружаются целиком, но следование инструкциям падает - см. Как сохранять CLAUDE.md компактным ниже
-
Не переусердствуйте с организацией: используйте иерархию продуманно; не плодите избыточные переопределения по подкаталогам
-
Не забывайте обновлять: устаревшая память приводит к путанице и следованию неактуальным практикам
-
Не превышайте лимиты вложенности: импорты памяти поддерживают максимум 4 уровня вложенности
Как сохранять CLAUDE.md компактным
Текущая рекомендация Anthropic прямо противоположна принципу «положите всё в CLAUDE.md». Файл загружается в каждую сессию, поэтому каждая добавленная строка конкурирует за внимание модели в задачах, к которым она не имеет никакого отношения.
Практическое правило: держите CLAUDE.md в пределах 200 строк. Более длинные файлы всё равно загружаются целиком, но по мере роста файла качество следования инструкциям снижается.
Когда файл начинает разрастаться, выносите содержимое наружу, а не сокращайте текст:
| Content | Where it belongs | Why |
|---|---|---|
| Multi-step procedures | A skill | Loads on demand, only when relevant |
| Directory- or file-type-specific rules | .claude/rules/*.md with paths: frontmatter | Scoped by glob; loads only when you touch matching files |
| Reference material and long examples | A skill's references/ directory | Read only when the skill needs it |
| Things Claude should remember about you | Auto memory (on by default) | Written and loaded automatically |
Примечание: импорты
@pathпомогают структурировать большой CLAUDE.md, но не экономят контекст - импортируемые файлы всё равно подтягиваются при загрузке. Реально сокращает объём загружаемого именно разбиение на правила, привязанные к путям.
/doctor (v2.1.206+) анализирует вашу конфигурацию и предлагает, что урезать, когда CLAUDE.md разросся настолько, что перестал приносить пользу.
Не пишите напоминания о проверках
Прежние рекомендации поощряли фразы вроде «всегда запускай тесты, прежде чем сказать, что всё готово» или «перепроверь свою работу». На Claude Opus 5 и Fable 5 это теперь приводит к чрезмерным проверкам - Claude заново перепроверяет и без того корректную работу, впустую тратя ходы и токены.
В поколении Claude 5 Anthropic удалила более 80% собственного системного промпта Claude Code без какой-либо измеримой деградации. Тот же принцип применим и к вашему CLAUDE.md: лучше сформулировать цель и дать Claude действовать по своему усмотрению, чем перечислять проверки, которые он обязан выполнить.
Удалите напоминания о проверках из существующих файлов CLAUDE.md, рассчитанных на Opus 5 или Fable 5. Оставляйте только действительно неочевидные требования проекта - «integration tests need Docker running» - это информация, а не напоминание.
Советы по управлению памятью
Выбирайте подходящий уровень памяти:
| Use Case | Memory Level | Rationale |
|---|---|---|
| Company security policy | Managed Policy | Applies to all projects organization-wide |
| Team code style guide | Project | Shared with team via git |
| Your preferred editor shortcuts | User | Personal preference, not shared |
| API module standards | Directory | Specific to that module only |
| Быстрый порядок обновления: |
- Для одиночных правил: используйте
/memory, чтобы открыть редактор, либо просто попросите в чате - Для нескольких изменений: используйте
/memory, чтобы открыть редактор - Для первоначальной настройки: используйте
/init, чтобы создать шаблон
Рекомендации по импорту:
Инструкция по установке
Настройка памяти проекта
Способ 1: команда /init (рекомендуется)
Самый быстрый способ настроить память проекта:
-
Перейдите в каталог проекта:
-
Выполните команду init в Claude Code:
-
Claude создаст файл CLAUDE.md и заполнит его шаблонной структурой
-
Отредактируйте сгенерированный файл под нужды вашего проекта
-
Закоммитьте изменения в git:
Способ 2: создание вручную
Если вы предпочитаете ручную настройку:
-
Создайте CLAUDE.md в корне проекта:
-
Добавьте стандарты проекта:
-
Закоммитьте изменения в git:
Настройка персональной памяти
-
Создайте каталог ~/.claude:
-
Создайте персональный CLAUDE.md:
-
Опишите свои предпочтения:
Настройка памяти для отдельного каталога
-
Создайте память для конкретного каталога:
-
Задайте правила для этого каталога:
-
Закоммитьте в систему контроля версий:
Проверка настройки
-
Проверьте, что файлы памяти на месте:
-
Claude Code автоматически загрузит эти файлы при старте сессии
-
Проверьте работу, запустив новую сессию Claude Code в проекте
Официальная документация
Актуальную информацию смотрите в официальной документации Claude Code:
- Документация по памяти - полный справочник по системе памяти
- Справочник slash-команд - все встроенные команды, включая
/initи/memory - Справочник CLI - документация по интерфейсу командной строки
Ключевые технические детали из официальной документации
Загрузка памяти:
- Все файлы памяти загружаются автоматически при запуске Claude Code
- Claude поднимается вверх от текущего рабочего каталога в поисках файлов CLAUDE.md
- Файлы во вложенных каталогах обнаруживаются и подгружаются по мере обращения к этим каталогам
Синтаксис импортов:
- Для подключения внешнего содержимого используйте
@path/to/file(например,@~/.claude/my-project-instructions.md) - Поддерживаются как относительные, так и абсолютные пути (относительные разрешаются относительно файла с импортом, а не текущего рабочего каталога)
- Поддерживаются рекурсивные импорты с максимальной глубиной до 4 уровней
- При первом внешнем импорте появляется диалог подтверждения
- Импорты не обрабатываются внутри inline-кода и блоков кода Markdown
- Содержимое по ссылке автоматически включается в контекст Claude
Порядок загрузки CLAUDE.md (файлы объединяются в общий контекст, а не жёстко переопределяют друг друга - см. раздел Иерархия памяти в Claude Code выше):
- Managed Policy (загружается первой)
- Правила уровня пользователя (
~/.claude/rules/) - Пользовательская память
- Правила проекта (
.claude/rules/) - Память проекта
- Локальная память проекта (загружается последней)
Auto Memory - это отдельный механизм (~/.claude/projects/<project>/memory/), не входящий в описанный порядок конкатенации.
Ссылки на связанные концепции
Точки интеграции
- Протокол MCP - доступ к актуальным данным в дополнение к памяти
- Slash-команды - быстрые команды в рамках сессии
- Skills - автоматизированные сценарии с учётом памяти
Смежные возможности Claude
- Claude Web Memory - автоматический синтез
- Официальная документация по памяти - документация Anthropic
Последнее обновление: 4 августа 2026 г. Версия Claude Code: 2.1.220 Источники:
- https://code.claude.com/docs/en/memory Совместимые модели: Claude Fable 5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.8, Claude Haiku 4.5