Headroom для Claude Code и Codex: как сжимать контекст и экономить токены
Headroom · контекст AI-агента · Claude Code · Codex

Headroom для Claude Code и Codex: как сжимать контекст и экономить токены AI-агента

Coding-agent быстро накапливает тысячи токенов из grep, логов, результатов тестов, JSON, документации и повторных чтений. Headroom ставится между агентом и LLM, локально оптимизирует входящий контекст и только после этого отправляет запрос модели. Для Claude Code, Codex, Cursor и других инструментов есть готовый режим wrap.

0.37.0 актуальная версия Python-пакета на момент проверки
−21…−57% экономия в четырёх текущих workload-сценариях из README проекта
Apache-2.0 open-source репозиторий, proxy, SDK, MCP и agent wrappers
Суть проекта

Headroom — локальный слой оптимизации контекста перед LLM

Headroom не является языковой моделью и не заменяет Claude Code, Codex или Cursor. Он работает как промежуточный слой: получает сообщения и tool output, определяет тип содержимого, применяет подходящий способ сжатия и передаёт модели более компактный контекст.

AI-агент grep, Read, тесты, логи, JSON, история
→
Headroom анализ, дедупликация, сжатие, cache-aware обработка
→
LLM Claude, OpenAI или другой настроенный backend

Проект предлагает несколько способов интеграции: Python/TypeScript SDK, локальный HTTP proxy, MCP-инструменты и готовые wrappers для coding-agents. Для обычного пользователя Claude Code или Codex самым понятным вариантом является headroom wrap ....

01 Proxy

Существующий инструмент направляется через локальный Headroom proxy без переписывания приложения.

02 Agent wrap

Headroom сам запускает proxy и настраивает сессию Claude Code, Codex, Aider или другого поддерживаемого клиента.

03 SDK

Приложение может вызвать compress() перед обращением к OpenAI, Anthropic или другому API.

04 MCP и memory

Есть отдельные инструменты восстановления исходного контекста, статистики и межсессионной памяти.

Почему это вообще нужно

Основной расход контекста coding-agent часто создаёт не ваш вопрос, а результаты инструментов

Агент читает файлы, запускает тесты, выполняет поиск по репозиторию, получает большие JSON-ответы и постоянно добавляет эти результаты в историю. Даже короткая задача может превратиться в десятки тысяч входных токенов.

Без оптимизации

Каждый tool result идёт в контекст почти целиком

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

С Headroom

Контекст сначала проходит через Content Router

JSON, логи, поиск, текст, diff и другие типы данных могут обрабатываться разными алгоритмами.

Важно: Headroom не должен «пересказывать весь код покороче».

Для coding workload у проекта включены специальные защиты: актуальные file reads не должны подвергаться lossy-сжатию, потому что агенту нужны точные байты для изменения файла.

Типы контента

Где Headroom экономит много, а где почти ничего

Эффект сильно зависит от структуры данных. Однотипные массивы, логи и документация содержат много повторов, а уже плотный исходный код сжимать рискованно.

Тип содержимого Результат benchmark 0.37.0 Практический смысл
JSON search results, 100 элементовоколо 48%Повторяющаяся структура позволяет убрать значительную часть токенов.
JSON search results, 500 элементовоколо 49%Экономия сохраняется и на более крупном массиве.
Structured logs, 500 записейоколо 54%Однотипные записи хорошо подходят для структурного сжатия.
Документация, ~20K tokensоколо 92%Длинный текст в синтетическом сценарии сократился особенно сильно.
Python source, ~200 строк0%В этом тесте SmartCrusher пропустил код без изменений ради корректности.
Нельзя переносить «92%» на обычную сессию Claude Code.

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

Default для coding-agents

Профиль coding специально настроен так, чтобы не ломать работу с кодом и prompt cache

В актуальной конфигурации Headroom профиль coding используется по умолчанию для agent wrapping. Его цель — не максимальная компрессия любой ценой, а экономия без постоянного разрушения prefix cache и без lossy-сжатия актуальных чтений файлов.

1Cache mode

Сжимается главным образом новый delta-контекст, а уже стабильный префикс стараются не менять.

2System prompt сохраняется

Горячая часть контекста не переписывается без необходимости, что помогает provider prefix caching.

3File reads защищены

В coding profile чтение файла не должно lossy-сжиматься: агенту могут понадобиться точные строки для patch.

4Lossless-first

Сначала применяются безопасные структурные способы, а lossy fallback используется там, где это допускает профиль.

Заявленная цель coding profile: примерно 50% savings, но это не SLA.

Документация прямо называет показатель emergent: фактический результат зависит от конкретного содержимого.

Reversible compression

CCR: если агенту понадобилась удалённая деталь, исходник можно запросить обратно

Один из механизмов Headroom называется Compress-Cache-Retrieve. При сжатии исходные данные сохраняются локально, а в контекст можно добавить возможность восстановить оригинал через headroom_retrieve.

Большой tool outputоригинальные данные
→
Compress + Cacheкомпактный контекст + локальный оригинал
→
Retrieve при необходимостимодель запрашивает полный фрагмент

В proxy штатным persistent backend для CCR является SQLite. Есть и memory backend. Поэтому reversible здесь означает, что удалённое из текущего prompt содержимое не обязано быть потеряно навсегда.

CCR не делает любую lossy-компрессию автоматически безошибочной.

Модель должна понять, что ей не хватает деталей, и воспользоваться механизмом восстановления. Отдельные режимы также могут отключать CCR или использовать lossless-only поведение.

Проверяем цифры

Актуальный README уже не обещает одинаковые 90% на каждом workload

В текущем README проекта опубликована воспроизводимая таблица с четырьмя workload-сценариями. Это полезнее одной общей цифры: видно, насколько результат зависит от структуры данных.

21%code search
57%SRE debugging
42%codebase exploration
30%GitHub issue triage
СценарийДоПослеЭкономия
Code search, 100 results17 19913 59721%
SRE incident debugging55 95724 34057%
Codebase exploration58 80133 89542%
GitHub issue triage46 06732 42930%

Отдельный latency benchmark Headroom 0.37.0 показывает суммарное сокращение 126 400 → 55 100 tokens, то есть около 56%, на наборе JSON, логов, документации и Python-кода. Но это синтетический смешанный набор, а не одна реальная coding-session.

Первоисточники: README · benchmarks.mdx
Это benchmark самого проекта, не независимое исследование.

В текущей документации methodology стала аккуратнее: например, для SQuAD LLM-graded QA прямо указано, что committed result artifact отсутствует и универсальная цифра не публикуется.

Установка

Как запустить Headroom с Claude Code или Codex

Для CLI проект рекомендует Python-пакет. NPM-пакет даёт TypeScript SDK, но не команду headroom. Headroom требует Python 3.10+, а в quickstart для uv сейчас используется Python 3.13.

1. Установка CLI

Через uv

uv tool install --python 3.13 "headroom-ai[all]"
headroom --version
2. Claude Code

Запустить через wrapper

headroom wrap claude

Headroom запускает локальный proxy и стартует Claude Code через него.

3. OpenAI Codex

Аналогичный wrapper

headroom wrap codex

Аргументы Codex можно передавать дальше после --.

4. Cursor

Запустить proxy и получить настройки

headroom wrap cursor

Cursor не запускается автоматически: команда выводит base URL, который нужно указать в настройках модели.

5. Проверка

Doctor и статистика

headroom doctor
headroom perf

Так можно проверить routing и увидеть фактическую экономию на своих запросах.

6. Обычный proxy

Без agent wrapper

headroom proxy --port 8787

Подходит для приложений и клиентов, которые умеют работать с собственным base URL.

После установки лучше измерять не «процент из README», а свой workload.

Headroom имеет собственные команды статистики и savings, поэтому эффект можно проверить на реальных сессиях.

Savings profiles

Coding, balanced, agent-90 и general — разные задачи требуют разной агрессивности

Balanced≈ 70%

Token mode с более заметной компрессией и защитой нескольких последних turns.

Agent-9090% target

Агрессивный режим с ML-based Kompress и keep-ratio 0.10. Не основной выбор для кода.

General≈ 60%

Общий режим для не-кодовых разговоров и контекста.

HEADROOM_SAVINGS_PROFILE=coding headroom proxy
HEADROOM_SAVINGS_PROFILE=balanced headroom proxy
HEADROOM_SAVINGS_PROFILE=agent-90 headroom proxy
Target profile — не гарантированный результат.

Даже документация называет часть значений emergent. Реальная экономия определяется тем, что именно читает агент.

Локально — но с важной оговоркой

Headroom локально сжимает контекст, но это не превращает облачный Claude или OpenAI в локальный ИИ

README проекта указывает, что само сжатие выполняется на вашей машине и содержимое не отправляется отдельному внешнему сервису для компрессии. Это плюс с точки зрения архитектуры.

Что остаётся локально

Компрессия, локальный proxy, CCR store и часть служебной обработки Headroom.

Что всё равно может уйти в облако

Оптимизированный prompt отправляется тому LLM-провайдеру, который настроен в Claude Code, Codex или вашем приложении.

Поэтому Headroom нельзя описывать как средство полной локальности или как замену Ollama/llama.cpp. Он оптимизирует путь к выбранной модели. Если backend облачный, обработка самой LLM остаётся облачной.

Ограничения

Когда Headroom почти не поможет или потребует осторожной настройки

01Плотный активный код

Из-за safety-защит он часто проходит без заметного сжатия, и это сделано намеренно.

02Короткий контекст

Если tool output и так маленький, экономить практически нечего.

03Уже сжатые данные

Чем меньше повторов и boilerplate, тем меньше эффект.

04Aggressive ML compression

Kompress требует дополнительных зависимостей и может добавлять latency.

05Double compression

Если сам агент уже агрессивно суммаризирует контекст, второй слой нужно тестировать отдельно.

06Не все показатели универсальны

Benchmark проекта нельзя автоматически переносить на другой агент, модель и репозиторий.

Самый здравый сценарий — сначала coding profile, затем измерения.

Не стоит начинать с agent-90 только ради красивой цифры экономии.

Связанные инструменты

Headroom и Ponytail решают разные уровни одной проблемы

Ponytail

Уменьшает то, что агент строит

YAGNI, reuse, stdlib и native capabilities вместо лишних abstractions и зависимостей.

Headroom

Уменьшает то, что агент читает

Сжимает tool output, логи, JSON, старые результаты и часть контекста до отправки модели.

Эти проекты не являются прямыми конкурентами. Теоретически их можно использовать вместе: Ponytail ограничивает переусложнение реализации, а Headroom контролирует рост контекстного окна и расход входных токенов.

Первоисточники

Исходники, benchmark и документация Headroom

Материал проверен 21 сентября 2026 года.

Headroom быстро развивается. Перед копированием команд проверьте актуальный README и headroom <cmd> --help.

Вывод

Headroom имеет смысл там, где агент действительно тонет в tool output

Для короткой сессии с парой файлов дополнительный proxy может не дать заметного выигрыша. Но при больших grep-выводах, логах, JSON, длительных multi-turn сессиях и частом использовании инструментов идея локальной оптимизации контекста выглядит практически полезной.

Самое важное — не ориентироваться на максимальные проценты. Текущий README проекта сам показывает диапазон 21–57% на четырёх workload-сценариях, а benchmark исходного кода демонстрирует 0% для одного из code-сценариев. Headroom лучше воспринимать как инженерный инструмент, который надо измерять на своей нагрузке, а не как универсальную кнопку «минус 90% токенов».

FAQ

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

Что такое Headroom простыми словами?

Локальный слой между AI-клиентом и моделью, который пытается уменьшить лишний контекст до отправки LLM.

Headroom работает с Claude Code?

Да. Для этого есть команда headroom wrap claude и coding profile, рассчитанный на coding-agent workloads.

Можно ли использовать Headroom с OpenAI Codex?

Да. В CLI предусмотрен headroom wrap codex.

Он действительно экономит 90% токенов?

Иногда на очень повторяющемся содержимом. На текущих workload-примерах README экономия составляет примерно 21–57%, а на плотном коде может быть близка к нулю.

Headroom отправляет мои файлы на свой сервер?

Проект заявляет локальную компрессию. Но итоговый оптимизированный запрос всё равно отправляется выбранному LLM-провайдеру, если сама модель облачная.

Что такое CCR?

Compress-Cache-Retrieve: оригинал сохраняется локально, а модель может запросить полный фрагмент, если сжатой версии недостаточно.

Headroom заменяет Ponytail?

Нет. Ponytail уменьшает лишнюю реализацию, Headroom уменьшает лишний контекст. Это разные уровни оптимизации.

С какого режима начать?

Для Claude Code, Codex и Cursor логичнее начинать со стандартного coding profile и измерять реальную экономию.

ИИ и автоматизация

Нужно разобраться с локальным ИИ, AI-агентом или рабочим окружением?

Можно прислать конфигурацию ПК, используемые модели и задачу. Разберём, что имеет смысл запускать локально, где нужен облачный backend и какие инструменты действительно дают пользу.