1. Диагноз. Почему вообще понадобился Caveman
Поднял Claude Code. Гоняешь его на проде, в pet-проекте, на ревью. И каждый месяц видишь одно и то же: токены кончаются быстрее чем кофе в понедельник. Знакомо?
Caveman Claude — это skill, который решает ровно эту боль. Один npm-пакет, одна строка установки, и агент перестаёт тратить токены на «Sure, I’d be happy to help you with that». По факту платишь только за код и суть.
Что получишь в итоге:
- Понимание как работает Caveman изнутри — без магии
- Установку за 30 секунд на macOS, Linux и Windows
- Шесть уровней сжатия от lite до wenyan-ultra
- Реальные бенчмарки и где экономия 87%, а где жалкие 22%
- Когда Caveman огонь, а когда лучше выключить и не позориться
Время на всё — минут 15. Из них десять на чтение, пять на установку и тест. Никаких dependencies кроме Node.js и установленного Claude Code либо Cursor.
2. Что такое Caveman и почему «caveman talk» режет токены
Caveman — это viral observation, доведённое до состояния готового инструмента. Идея простая: LLM по умолчанию обучены отвечать вежливо, развёрнуто и с обилием связок. «Конечно, я с радостью помогу. Дело в том, что…». Каждое такое начало — это от 5 до 15 токенов на ровном месте.
Julius Brussee взял эту идею и упаковал в skill для Claude Code. Skill — это markdown-файл с YAML frontmatter, который Claude подтягивает при старте сессии. Внутри него инструкция: говори телеграфно, без артиклей, без вежливости, без хеджирования. Код пиши нормально. Технические термины не трогай.
Принцип на одном примере
Возьми типичный ответ Claude про React.
Обычный режим (69 токенов):
The reason your React component is re-rendering is likely because
you're creating a new object reference on each render cycle.
When you pass an inline object as a prop, React's shallow comparison
sees it as a different object every time, which triggers a re-render.
I'd recommend using useMemo to memoize the object.
Caveman режим (19 токенов):
New object ref each render.
Inline object prop = new ref = re-render.
Wrap in useMemo.
Тот же ответ. Тот же фикс. Минус 50 токенов. Умножь на 100 запросов в день — получишь экономию, на которую можно купить пиво после закрытого инцидента.
Что Caveman убивает, а что трогать запрещено
| Элемент | Что делает Caveman |
|---|---|
| Артикли (a, an, the) | Удаляет полностью |
| Вежливости («Sure, I’d be happy») | Удаляет полностью |
| Хеджирование («it might be») | Удаляет полностью |
| Связки и преамбула | Сжимает до фрагментов |
| Блоки кода | Не трогает, пишет нормально |
| Технические термины | Сохраняет точно (polymorphism = polymorphism) |
| Тексты ошибок | Цитирует точно, без перефраза |
| Git commits, PR-комменты | Пишет в нормальном английском |
Вот тут важно: Caveman режет только output. Reasoning-токены (которые тратятся на «думание» модели) остаются. Автор в README пишет прямо: «Caveman no make brain smaller. Caveman make mouth smaller».
Почему это вообще работает на качество
В марте 2026 вышла работа «Brevity Constraints Reverse Performance Hierarchies in Language Models». Если коротко — авторы нашли что ограничение моделей по длине ответа на некоторых бенчмарках поднимает точность на 26 процентных пунктов и переворачивает рейтинги моделей. По факту: меньше слов часто означает больше дела. Меньше места для галлюцинаций, меньше возможностей развести воду.
Caveman работает на этом же принципе, только без научных публикаций — просто берёт и заставляет модель не размазывать.
3. Шесть уровней сжатия — от lite до wenyan-ultra
Caveman — не один режим, а шесть. У каждого свой trade-off между читаемостью и сжатием.
| Уровень | Что делает | Когда использовать |
|---|---|---|
| lite | Убирает только filler и вежливость | Когда нужен компромисс между сжатием и читаемостью для команды |
| full (default) | Артикли долой, фрагменты, типичный caveman | Дефолт. Подходит почти всегда |
| ultra | Телеграфный стиль, аббревиатуры везде | Для своих задач где не страшно если будет криптично |
| wenyan-lite | Полу-классический китайский. Грамматика на месте, filler удалён | Эксперимент с самым сжатым письменным языком в истории |
| wenyan-full | Полный 文言文. Максимальная классическая лаконичность | Когда хочется поугарать с агентом |
| wenyan-ultra | Древний учёный с дефицитом бюджета | Никогда. Шутка. Иногда |
Уровень держится до конца сессии или пока не сменишь вручную. Никакого drift — Caveman не «забывает» режим через 20 ответов.
4. Бенчмарки — где экономия 87%, а где почти ноль
Автор вынес реальные замеры с Claude API в репозиторий. Не «верю на слово», а воспроизводимые цифры. Вот таблица из README:
| Задача | Normal | Caveman | Экономия |
|---|---|---|---|
| Объяснить React re-render bug | 1180 | 159 | 87% |
| Фикс auth middleware token expiry | 704 | 121 | 83% |
| PostgreSQL connection pool | 2347 | 380 | 84% |
| Объяснить git rebase vs merge | 702 | 292 | 58% |
| Рефактор callback в async/await | 387 | 301 | 22% |
| Архитектура: микросервисы vs монолит | 446 | 310 | 30% |
| Security review PR | 678 | 398 | 41% |
| Docker multi-stage build | 1042 | 290 | 72% |
| Debug PostgreSQL race condition | 1200 | 232 | 81% |
| React error boundary | 3454 | 456 | 87% |
| Среднее | 1214 | 294 | 65% |
Смотри что получается. На объяснениях и многословных задачах — 80-87%. На задачах где модель и так пишет компактно (рефактор кода, архитектурные обсуждения) — 22-30%. Это честная статистика, не маркетинг.
Почему разброс такой большой
Объяснения — это где LLM любит расписывать. «The reason this happens is because…» — модель будто получает удовольствие от длинных объяснений. Тут Caveman режет до костей, экономия максимальная.
Код-ориентированные задачи — рефактор, архитектура — там и без Caveman ответ компактный. Сжимать особо нечего. Получишь 20-30%, и это потолок.
5. Архитектура skill — как Caveman внедряется в Claude Code
Чтобы понять что ставится на машину, посмотри на схему.
По факту это три части:
- SKILL.md — markdown с инструкциями для агента
- hooks — bash-скрипты которые вешаются на SessionStart и UserPromptSubmit события Claude Code
- Flag-файл .caveman-active — лежит в $CLAUDE_CONFIG_DIR (или ~/.claude если переменная не задана)
Когда ты пишешь «caveman mode» в чат — UserPromptSubmit hook ловит фразу, пишет «full» во flag-файл. SessionStart hook на старте новой сессии этот flag читает и подгружает skill. Когда говоришь «stop caveman» — flag удаляется, агент возвращается в нормальный режим.
Вся логика лежит в публичном репо, посмотреть можно глазами. Никакой телеметрии, никаких внешних запросов — чистый local-first инструмент.
6. Рецепт. Установка за 30 секунд
Подготовка
Что нужно перед установкой:
- Node.js 18+ — нужен для npx
- Claude Code, Codex или один из 40+ поддерживаемых агентов
- Доступ к ~/.claude/ на запись
- Желательно git — пригодится для обновлений и форков
Проверь что Node на месте:
node --version
npx --version
Должно показать что-то типа v18.x или выше. Если показывает «command not found» — поставь Node с nodejs.org либо через nvm. На macOS проще через brew:
brew install node
Шаг 1. One-line install через npx skills
Универсальный способ для всех агентов. Работает на macOS, Linux и Windows.
npx skills add JuliusBrussee/caveman
Что произойдёт. Команда стянет skill в ~/.claude/skills/caveman/, поставит hooks в ~/.claude/hooks/, пропатчит ~/.claude/settings.json чтобы зарегистрировать SessionStart и UserPromptSubmit события и подключит statusline-индикатор.
Никаких прав root не нужно. Всё ставится в домашнюю папку.
Шаг 2. Альтернатива через Claude Code plugin marketplace
Если ты уже используешь plugin marketplace в Claude Code — можно через него:
claude plugin marketplace add JuliusBrussee/caveman
claude plugin install caveman@caveman
Этот способ удобнее тем что обновления идут через тот же канал что и остальные плагины. Минус — нужна свежая версия Claude Code с поддержкой plugin marketplace.
Шаг 3. Установка для Codex
Для Codex алгоритм чуть другой:
- Клонируй репо: git clone https://github.com/JuliusBrussee/caveman
- Открой Codex в этой директории
- Запусти команду /plugins внутри Codex
- Найди Caveman в списке
- Жми Install
После установки тригер тот же — но через $caveman вместо /caveman.
Шаг 4. Cursor, Windsurf, Cline, Copilot и остальные
Для агентов которые не используют Claude Code skill-систему, у Caveman есть отдельные rule-файлы. Они генерируются CI из rules/caveman-activate.md и автоматически расходятся по типам агентов с правильными frontmatter (Cursor хочет alwaysApply: true, Windsurf хочет trigger: always_on).
Установка одинаковая — через npx skills add. Скрипт сам определит какой агент у тебя стоит и поставит нужный файл. Если хочешь поставить руками — скачай rules/caveman-activate-cursor.md из репо и положи в .cursorrules либо .cursor/rules/ в корне проекта.
7. Проверка. Как понять что Caveman работает
После установки — перезапусти Claude Code (или Codex, Cursor, что у тебя). При новой сессии должен появиться statusline-индикатор.
[CAVEMAN] # full режим
[CAVEMAN:LITE] # lite режим
[CAVEMAN:ULTRA] # ultra режим
Если индикатора нет — открой ~/.claude/settings.json и проверь что hooks зарегистрированы:
cat ~/.claude/settings.json | grep -i caveman
Должны быть упоминания caveman в секциях hooks и statusline. Если ничего не нашлось — повтори установку через npx, скрипт перезапишет настройки.
Дальше открой Claude и тестовый запрос:
caveman mode
Объясни что такое event loop в Node.js
Если работает — получишь что-то вроде:
Node.js single-thread. Event loop = while(tasks) { run(task) }.
Phases: timers, pending, idle, poll, check, close.
I/O non-blocking via libuv thread pool.
Если получаешь обычное «Конечно! Event loop в Node.js — это…» — значит skill не подцепился. Иди в раздел осложнений ниже.
Проверка экономии токенов
В Caveman встроена команда статистики. После пары сессий запусти в Claude:
caveman stats
Покажет сколько токенов ты сэкономил с момента установки. Цифры считаются локально, никуда не отправляются.
8. Полезные фичи помимо основного режима
Caveman — это не один skill, а пакет из четырёх. Базовый caveman режим плюс три отдельных модуля.
Compress input — режет 46% входных токенов
Эту фичу часто пропускают. Caveman умеет сжимать не только output, но и input — то что ты сам пишешь в промпт. Команда:
compress
Активирует режим в котором Claude перед обработкой переписывает твой промпт в caveman-стиле. По замерам автора экономит около 46% input токенов на сессию. Особенно полезно если ты перетаскиваешь большие куски документации в чат.
Terse commits — короткие коммиты автоматом
Если попросишь Claude написать commit message — Caveman сделает его в формате Conventional Commits, ≤50 символов, фокус на «почему», а не «что». Пример вместо «Updated the user authentication middleware to fix the bug with token expiry validation» получишь «fix(auth): expiry check off-by-one».
Это отдельный sub-skill который активен независимо от основного caveman режима. Удобно когда хочешь чтобы коммиты были чистыми, а ответы — нормальными.
One-line PR reviews
Ревью PR в формате одной строки на коммент:
L42: bug: user null after logout
L67: perf: O(n^2) loop, use Set
L89: nit: typo "recieve"
Удобно для быстрого скана. Минус — теряются длинные обоснования. Если ревьюишь критичный код — лучше отключи и пиши ревью нормально.
Cavekit — расширение для пайплайна разработки
Если caveman зашёл — посмотри на Cavekit от того же автора. Это уже не просто skill для сжатия, а полноценный плагин для Claude Code: ставит пять skills (spec, build, check + caveman + backprop), даёт slash-команды /ck:spec, /ck:build, /ck:check для spec-driven разработки. Caveman там используется для token compression, но это уже инструмент другого уровня — для тех кто хочет проектировать через blueprints.
9. Осложнения. Что может сломаться
# Проверь синтаксис JSON
cat ~/.claude/settings.json | python3 -m json.tool
# Если ругается - скорее всего скрипт установки оставил битый файл
# Бэкап и переустановка
cp ~/.claude/settings.json ~/.claude/settings.json.bak
npx skills add JuliusBrussee/caveman --force
# Обновить skill до последней версии
npx skills update JuliusBrussee/caveman
echo $CLAUDE_CONFIG_DIR
ls -la ~/.claude/skills/caveman/
ls -la $CLAUDE_CONFIG_DIR/skills/caveman/ 2>/dev/null
Если skill в одном месте, а конфиг в другом — либо унифицируй переменную, либо переставь skill через npx (он сам разберётся).
Ошибка npx ENOENT при установке
npm error code ENOENT
npm error syscall open
npm error path /Users/you/package.json
Причина — npx запускается из директории где нет package.json и сходит с ума. Перейди в любую папку где есть проект, либо в домашнюю:
cd ~
npx skills add JuliusBrussee/caveman
Cursor не подхватывает caveman rules
В Cursor нужен файл .cursor/rules/caveman.mdc с правильным frontmatter. Если ставил через npx skills и не работает — скорее всего Cursor сидит на старой версии rule-формата. Проверь версию Cursor (Help → About) и обнови до 0.42+.
Если обновить нельзя — забери файл вручную из репо:
cd /path/to/your/project
mkdir -p .cursor/rules
curl -o .cursor/rules/caveman.mdc \
https://raw.githubusercontent.com/JuliusBrussee/caveman/main/rules/caveman-cursor.mdc
Перезагрузи Cursor — должно подцепить.
10. Когда Caveman огонь, а когда лучше выключить
По факту Caveman — не серебряная пуля. Есть задачи где он сэкономит тебе пол-зарплаты. Есть где он создаст проблем больше чем решит.
Caveman работает отлично:
- Дебаг и troubleshooting — короткие точные ответы
- Объяснения концепций где обычно Claude льёт воду
- Конфиги и команды — там где нужен код, а не лекция
- Code review одной строкой
- Быстрые вопросы про синтаксис, библиотеки, API
- Документация в формате «cheat sheet»
- Когда работаешь один и читаемость для команды не важна
Caveman лучше выключить:
- Документация для команды и заказчика — caveman читать тяжело новичкам
- Объяснения для ревью когда нужен длинный контекст «почему так»
- Architecture decisions — там нужны нюансы и trade-offs
- Onboarding-материалы
- Презентации и тексты для нетехнической аудитории
- Когда модель и так отвечает компактно (рефактор кода) — экономия копеечная
Выключение — одна фраза в чат:
stop caveman
Или альтернатива:
normal mode
Flag-файл удаляется, агент возвращается к стандартному стилю до следующей активации.
11. Альтернативные подходы к экономии токенов
Caveman — самый громкий, но не единственный путь.
Системный промпт «Be terse»
Самый простой вариант. Добавь в системный промпт инструкцию вида «Be concise. No filler. Skip pleasantries. Code over prose». Это даст 30-50% экономии без всяких skills. Минус — никакой структуры, никаких уровней, и модель «забывает» инструкцию через десяток сообщений.
Сравнение:
| Подход | Экономия | Drift | Установка |
|---|---|---|---|
| Системный промпт «be terse» | 30-50% | Сильный | Одна строка |
| Caveman skill | 65-75% | Минимальный | npx команда |
| Caveman ultra/wenyan | 75-87% | Минимальный | npx + команда |
| Кастомный skill своего формата | Зависит | Контролируешь сам | Часы работы |
Свой Claude Code skill
Если стиль Caveman не подходит — напиши свой skill. Формат документирован в документации Claude Code. По сути это markdown с YAML frontmatter и инструкциями для агента. Можно сделать «mid-caveman» — без артиклей, но с нормальной грамматикой.
Преимущество — полный контроль. Можешь сделать стиль точно под свою команду и проект. Недостаток — нужно писать и поддерживать самому.
Output token limits через API
Если работаешь напрямую с Claude API — поставь max_tokens на разумное значение. Это hard limit, после которого модель просто обрывается. Грубо, но работает. Для интерактивной работы не подходит — обрывы на середине мысли раздражают сильнее чем длинные ответы.
Prompt caching
Если у тебя длинный системный промпт или большой контекст — Anthropic поддерживает prompt caching на API. Не сжимает выход, но кешированные input-токены стоят в 10 раз дешевле. Хорошо комбинируется с Caveman: input через cache, output через caveman.
Связанные форки и расширения
После того как Caveman завирусился, появились родственные инструменты от того же автора. Cavekit — для spec-driven разработки. cavemem — расширение для долгой памяти агента. На GitHub можно найти community-форки с настроенными уровнями под отдельные языки и фреймворки.
12. Профилактика. Как не сломать продакшн пещерным режимом
Не используй Caveman в shared-конфигах
Если у тебя в проекте лежит .cursor/rules или .claude/skills которые комитятся в репо — все остальные ребята из команды получат caveman режим без своего согласия. Не круто. Держи Caveman в личном ~/.claude/, не в проекте.
Бэкап settings.json до и после установки
Скрипт установки правит ~/.claude/settings.json. Если у тебя там кастомные hooks или настройки — сделай бэкап.
cp ~/.claude/settings.json ~/.claude/settings.json.before-caveman
npx skills add JuliusBrussee/caveman
diff ~/.claude/settings.json.before-caveman ~/.claude/settings.json
После установки прогони diff — увидишь что именно изменилось. Если что-то сломалось, откатываешь файл и удаляешь skill вручную.
Откат и удаление
Удаление через npx skills:
npx skills remove JuliusBrussee/caveman
Скрипт уберёт skill из ~/.claude/skills/, удалит hooks и почистит settings.json.
Если что-то не убралось руками:
rm -rf ~/.claude/skills/caveman
rm -f ~/.claude/hooks/caveman-*
rm -f ~/.claude/.caveman-active
И отредактируй ~/.claude/settings.json — выкини секции с упоминанием caveman.
Мониторинг расхода токенов
Чтобы понять какая реальная экономия в твоём workflow — мониторь usage. В Anthropic Console есть dashboard по расходу. Сделай скриншот за неделю до Caveman и за неделю после. Реальные цифры на твоих задачах часто отличаются от бенчмарков из README.
В самом Caveman есть встроенная статистика:
caveman stats
Покажет сколько токенов ушло на input, сколько на output, сколько ты сэкономил по сравнению с baseline. Цифры локальные, не отправляются никуда.
Безопасность skill-системы
Caveman сам по себе безопасен — это markdown с инструкциями, не исполняемый код. Hooks — bash-скрипты, лежат в ~/.claude/hooks/. Их легко прочитать глазами:
cat ~/.claude/hooks/caveman-session-start.sh
cat ~/.claude/hooks/caveman-prompt-submit.sh
cat ~/.claude/hooks/caveman-statusline.sh
Все три — простые скрипты на 20-50 строк. Если ставишь Caveman из основного репо JuliusBrussee/caveman — там код проверяемый. Форки и community-плагины смотри глазами перед установкой.
13. FAQ
Почему Caveman не работает после установки?
Самая частая причина — не перезапустил Claude Code. Skills подгружаются при старте сессии, не на лету. Закрой и открой агент. Если не помогло — проверь ~/.claude/settings.json на валидность JSON и наличие записей про hooks. В половине случаев настройки бьются если у тебя уже было что-то кастомное в этом файле.
Как проверить что Caveman реально экономит токены, а не просто выглядит коротко?
Запусти команду caveman stats — покажет статистику по сессиям. Дополнительно — открой Anthropic Console (console.anthropic.com), сравни usage за период до и после установки. Цифры по input + output должны заметно упасть. Если не упали — значит skill не активен или ты гоняешь задачи где экономии и так нет.
Что делать если Caveman ломает форматирование в важной задаче?
Переключись на lite-режим: «caveman lite». Он убирает только filler, не трогает структуру списков и markdown. Альтернатива — выключи на одно сообщение фразой «stop caveman», получи нормально оформленный ответ, потом включи обратно «caveman mode». Flag-файл переключается за миллисекунды.
Чем Caveman отличается от обычного «be terse» в системном промпте?
Caveman даёт стабильные 65-75% экономии, не съезжает в drift через десять сообщений и работает в 40+ агентах сразу. Простой «be terse» в промпте даёт 30-50% и теряет силу к середине сессии. Плюс у Caveman есть уровни, статистика, hooks для статусной строки и независимые sub-skills для commits и review. Это инструмент, а не однострочник.
Caveman работает с reasoning-моделями типа Claude Opus с extended thinking?
Да, но с нюансом. Caveman режет только output. Reasoning-токены (которые тратятся внутри extended thinking) остаются нетронутыми. Если основная стоимость у тебя — на reasoning, экономия будет меньше чем заявлено. Если на output — экономия как в бенчмарках.
Можно ли использовать Caveman на русском языке?
Технически — да, попроси Claude отвечать по-русски в caveman-режиме. На практике — экономия будет меньше. Skill заточен под особенности английского (артикли, вспомогательные глаголы), на русском filler структурирован иначе. Для серьёзной работы на русском проще написать свой skill с инструкциями типа «без вводных, без вежливости, фрагменты».
Сколько звёзд у проекта на GitHub?
На момент проверки в мае 2026 у репозитория JuliusBrussee/caveman около 928 звёзд и 21 fork. Цифры растут — проект завирусился после первых обсуждений на Hacker News и Reddit в начале весны.
Чем Caveman отличается от Cavekit?
Caveman — это один skill про сжатие текста. Cavekit — это полноценный плагин для Claude Code с пятью skills (spec, build, check, caveman, backprop) и набором slash-команд для spec-driven разработки. Caveman входит в Cavekit как один из модулей. Если нужна только экономия токенов — ставь Caveman. Если хочешь полный workflow от спеки до работающего кода — смотри в сторону Cavekit.
14. Прогноз
Что ты сделал к этому моменту. Поставил skill через npx skills add, проверил активацию через statusline, протестировал на типовых запросах и увидел разницу до/после в количестве токенов. Если всё пошло гладко — у тебя теперь работает агент, который не льёт воду и не тратит твой бюджет на «Sure, I’d be happy to help».
Что теперь работает иначе. Каждый ответ короче в 2-4 раза. Скорость ощутимо выше — модели нужно генерировать меньше токенов. Месячный счёт за API упадёт на 40-60%, если у тебя стандартный mix задач. Если основа работы — объяснения и troubleshooting, экономия может быть и 70%. Если ты пишешь много кода и ревью — ближе к 30-40%, но всё равно ощутимо.
Если не заработало — пиши в комментарии, разберёмся. И не забудь поставить звёздочку автору на JuliusBrussee/caveman — мужик красавец, всё опубликовал в open-source, заслужил.
Оставайтесь на связи
Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.
Подписаться на IT-Аптеку →


