Управление контекстом в Claude Code

Актуально на апрель 2026.


Главный принцип

Контекстное окно — твой самый важный ресурс.

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

Размер контекста зависит от модели. У некоторых моделей есть расширенный контекст (включая 1M варианты), но единственное число которое имеет смысл: то что в твоей сессии. Проверяй через /context.


Что загружается автоматически при старте

Ещё до первого сообщения часть окна уже занята:

Что
System prompt + built-in tools
Твой CLAUDE.md и импорты
Auto memory (если включен)
Метаданные списка skills
Tool definitions MCP серверов (если включены)

Вот почему две сессии с одинаковым промптом могут вести себя по-разному. Разные MCP серверы, разные memory файлы, разные импорты. Если нужен реальный breakdown, запускай /context. Если нужно понять какие memory файлы подхватились, запускай /memory.


Мониторинг

Когда Claude начинает ощущаться “каким-то не таким”, я почти всегда смотрю именно сюда:

/context    # разбивка по категориям: что сколько занимает
/memory     # какие CLAUDE.md и auto memory файлы загружены

Строка статуса в нижней части показывает % заполнения в реальном времени.


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

/clear

Полный сброс. Начинаешь с нуля. CLAUDE.md перезагружается, история разговора исчезает.

Когда: переключаешься на другую задачу, накопилось много нерелевантного контекста.

/compact [инструкция]

Claude суммаризирует разговор, заменяет историю кратким резюме. Детали можно указать:

/compact focus on the authentication changes we made
/compact keep the list of modified files and test commands

Когда: контекст заполняется но задача не закончена.

/btw вопрос

Быстрый side question без добавления в основной разговор.

/btw what type does this function return?
/btw is there a built-in for this in Python?

Когда: нужно быстро уточнить деталь и не засорять основной тред.

/rewind (или двойной Esc)

Открывает меню восстановления к предыдущему чекпоинту. Можно восстановить: разговор, код, или оба.

Когда: Claude пошёл не туда, хочешь откатиться и попробовать иначе.


Autocompact

Auto-compaction это страховка, а не основная стратегия.

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

Если хочешь, чтобы это происходило раньше, в Claude Code задокументирована такая env var:

// ~/.claude/settings.json
{ "env": { "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "75" } }

Она задаёт порог как процент доступного контекста. Поведение по умолчанию примерно 95%. Чем ниже значение, тем раньше происходит compaction. Это применяется и к основному разговору, и к subagents.

Если ты работаешь на extended-context модели и хочешь считать compaction от меньшего эффективного окна, в Claude Code также задокументирована CLAUDE_CODE_AUTO_COMPACT_WINDOW.


Что переживает /compact: Claude заново перечитывает CLAUDE.md с диска, но ad-hoc инструкции, которые существовали только в разговоре, могут потеряться. Если что-то важно, перенеси это в CLAUDE.md.


Что жрёт контекст больше всего

1. MCP tool definitions

Каждый подключённый MCP сервер добавляет descriptions всех своих tools при старте.

  • 1 tool ≈ 550-1400 токенов
  • MCP сервер с десятками tools → десятки тысяч токенов сразу

Митигация: подключай только нужные серверы, остальные отключай через /mcp.

2. Чтение больших файлов

Каждый файл который Claude читает — полностью в контексте.

Митигация: используй subagents для исследования и указывай конкретный файл, а не что-то вроде “посмотри как у нас устроен auth”.

3. Длинные разговоры

Накопленная история сообщений.

Митигация: /clear между задачами, /compact внутри задачи.


Лучшие практики

Большинство проблем с контекстом на самом деле оказываются проблемами воркфлоу.

Давай Claude способ проверить результат

Это самое важное. Claude работает значительно лучше когда может сам проверить работу:

# Плохо
"implement email validation"

# Хорошо
"write validateEmail function. test cases: user@example.com → true,
invalid → false, user@.com → false. run tests after implementing."

Без критериев проверки Claude может сделать что-то внешне правильное, но не работающее.

Explore → Plan → Code → Commit

Разделяй исследование и реализацию. Сессия, которая много читает, обычно не та же самая сессия, которой стоит доверять финальное изменение.

  1. Plan mode — Claude читает файлы, строит план, ничего не меняет
  2. Одобряешь план
  3. Normal mode — реализует по плану
  4. Коммит
# Включить plan mode при запуске
claude --permission-mode plan
# или Shift+Tab внутри сессии

Конкретные промпты экономят контекст

Чем конкретнее промпт — тем меньше итераций и меньше контекста тратится:

# Плохо — вызывает много уточняющих вопросов
"add a calendar widget"

# Хорошо — всё понятно сразу
"look at HotDogWidget.php to understand widget patterns.
implement a calendar widget in the same style with month
selection and year pagination. no new libraries."

Субагенты для исследования

Исследование кодовой базы читает много файлов — всё это засоряет основной контекст:

# Плохо — Claude сам читает всё в основном контексте
"investigate how our auth system handles token refresh"

# Хорошо — subagent работает в своём контексте
"use a subagent to investigate how our auth system handles
token refresh and whether we have OAuth utilities to reuse"

Subagent возвращает краткое резюме — основной контекст остаётся чистым.

/clear между несвязанными задачами

# Закончил с auth → начинаешь работу с UI
/clear

# Теперь чистый контекст без остатков от auth задачи

После двух неудачных поправок — сбрасывай и начинай заново

Если поправлял Claude дважды и он всё равно делает неправильно — контекст загрязнён неудачными подходами. /clear и пиши лучший начальный промпт с тем что узнал.

Используй @ для референса файлов

@src/api/auth.ts посмотри как работает этот файл

Вместо того чтобы описывать где что находится — дай прямую ссылку.

Pipe данных напрямую

cat error.log | claude -p "что здесь происходит?"
gh pr diff | claude -p "summarize this PR"

Workflow для разных размеров задач

Это самая простая ментальная модель, которую я знаю:

Маленькая задача (typo, rename, quick fix)

→ Прямо пиши что нужно, без planning
→ Claude делает
→ Проверяешь

Средняя задача (новый endpoint, feature)

→ Plan mode: "прочитай src/api/ и спланируй как добавить X"
→ Одобряешь план
→ Normal mode: "реализуй"
→ Запускаешь тесты
→ Commit

Большая задача (рефакторинг, migration)

→ Отдельная сессия для исследования с subagents
→ Пишешь spec в файл
→ Новая чистая сессия для реализации
→ Worktrees для параллельных частей

Антипаттерны

“Кухонная раковина” сессия — начал с одного, потом спросил несвязанное, потом вернулся. Контекст полон нерелевантного. → Фикс: /clear между несвязанными задачами.

Бесконечные поправки — Claude делает неправильно, поправляешь, всё равно неправильно. Контекст загрязнён неудачными подходами. → Фикс: после двух поправок → /clear и лучший промпт.

Бесконечное исследование — попросил “исследуй X” без границ, Claude читает сотни файлов. → Фикс: сужай скоуп или используй subagents.

Доверяй но не проверяй — Claude сделал что-то правдоподобное, ты отправил в прод. → Фикс: всегда давай Claude способ проверить (тесты, скриншоты, скрипты).

Если сессия начинает ощущаться мутной, скорее всего она уже мутная. Сбрасывай раньше, чем подсказывает интуиция.


Чекпоинты и resume

Claude автоматически создаёт чекпоинты перед каждым изменением. Это не замена git, но позволяет откатиться:

Esc + Esc  # или /rewind — открыть меню чекпоинтов

Сессии сохраняются локально:

claude --continue         # продолжить последнюю сессию в этой директории
claude --resume           # выбрать из последних сессий
claude --resume auth-refactor
/rename             # дать сессии имя ("oauth-migration")

Параллельные сессии для масштабирования

Когда нужно больше:

# Несколько worktrees — несколько независимых Claude
git worktree add ../proj-auth feature/auth
git worktree add ../proj-ui feature/ui

cd ../proj-auth && claude &
cd ../proj-ui && claude &

Writer/Reviewer pattern:

  • Сессия A: реализует feature
  • Сессия B: ревьюит с чистым контекстом (не предвзята к коду который только что написала)

Fan-out для batch операций:

for file in $(cat files.txt); do
  claude -p "migrate $file from React to Vue" \
    --allowedTools "Edit" "Bash(git commit:*)"
done

Быстрая шпаргалка команд

КомандаКогда
/contextПосмотреть что сколько занимает
/clearНовая задача или загрязнённый контекст
/compactЗадача продолжается, нужно освободить место
/compact focus on XКомпакция с сохранением конкретных деталей
/btw вопросБыстрый side question вне основного треда
/rewind или Esc+EscОткат к предыдущему состоянию
EscОстановить Claude на ходу
/mcpОтключить неиспользуемые MCP серверы
--permission-mode planРежим только чтения перед реализацией
claude --continueПродолжить прошлую сессию