"Быстрый
<br />
Caveman Claude — это skill для Claude Code от Julius Brussee, который заставляет агента отвечать в сжатом «пещерном» стиле и режет до 75% выходных токенов без потери технической точности. Ставится одной командой через npx, активируется фразой «caveman mode» или /caveman, выключается «stop caveman». Работает в Claude Code, Codex, Cursor, Windsurf, Cline, Copilot и Gemini CLI. На бенчмарках автора средняя экономия 65%, разброс 22-87% в зависимости от задачи.<br />
<h2>1. Диагноз. Почему вообще понадобился Caveman</h2>
<p>Поднял Claude Code. Гоняешь его на проде, в pet-проекте, на ревью. И каждый месяц видишь одно и то же: токены кончаются быстрее чем кофе в понедельник. Знакомо?</p>
<p>Caveman Claude — это skill, который решает ровно эту боль. Один npm-пакет, одна строка установки, и агент перестаёт тратить токены на «Sure, I’d be happy to help you with that». По факту платишь только за код и суть.</p>
<p>Что получишь в итоге:</p>
<ul>
<li>Понимание как работает Caveman изнутри — без магии</li>
<li>Установку за 30 секунд на macOS, <a href="https://it-apteka.com/ssh-kljuchi-podkljuchaemsja-bez-parolja-i-ne-panikuem/" title="SSH-ключи: подключение без пароля — полный гайд для Linux, Windows и macOS" target="_blank" rel="noopener" data-wpil-monitor-id="2569">Linux и Windows</a></li>
<li>Шесть уровней сжатия от lite до wenyan-ultra</li>
<li>Реальные бенчмарки и где экономия 87%, а где жалкие 22%</li>
<li>Когда Caveman огонь, а когда лучше выключить и не позориться</li>
</ul>
<p>Время на всё — минут 15. Из них десять на чтение, пять на установку и тест. Никаких dependencies кроме Node.js и установленного <a href="https://it-apteka.com/mcp-server-chto-jeto-i-kak-ego-nastroit-s-claude-code-cursor-i-lm-studio-v-2026/" target="_blank" rel="noopener" data-wpil-monitor-id="2587">Claude Code либо Cursor</a>.</p>
<h2>2. Что такое Caveman и почему «caveman talk» режет токены</h2>
<p>Caveman — это viral observation, доведённое до состояния готового инструмента. Идея простая: LLM по умолчанию обучены отвечать вежливо, развёрнуто и с обилием связок. «Конечно, я с радостью помогу. Дело в том, что…». Каждое такое начало — это от 5 до 15 токенов на ровном месте.</p>
<p>Julius Brussee взял эту идею и упаковал в skill для Claude Code. Skill — это markdown-файл с YAML frontmatter, который Claude подтягивает при старте сессии. Внутри него инструкция: говори телеграфно, без артиклей, без вежливости, без хеджирования. Код пиши нормально. Технические термины не трогай.</p>
<h3>Принцип на одном примере</h3>
<p>Возьми типичный ответ Claude про React.</p>
<p>Обычный режим (69 токенов):</p>
<pre><code class="language-text">
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.
</code></pre>
<p>Caveman режим (19 токенов):</p>
<pre><code class="language-text">
New object ref each render.
Inline object prop = new ref = re-render.
Wrap in useMemo.
</code></pre>
<p>Тот же ответ. Тот же фикс. Минус 50 токенов. Умножь на 100 запросов в день — получишь экономию, на которую можно купить пиво после закрытого инцидента.</p>
<h3>Что Caveman убивает, а что трогать запрещено</h3>
<table>
<tbody>
<tr>
<th>Элемент</th>
<th>Что делает Caveman</th>
</tr>
<tr>
<td>Артикли (a, an, the)</td>
<td>Удаляет полностью</td>
</tr>
<tr>
<td>Вежливости («Sure, I’d be happy»)</td>
<td>Удаляет полностью</td>
</tr>
<tr>
<td>Хеджирование («it might be»)</td>
<td>Удаляет полностью</td>
</tr>
<tr>
<td>Связки и преамбула</td>
<td>Сжимает до фрагментов</td>
</tr>
<tr>
<td>Блоки кода</td>
<td>Не трогает, пишет нормально</td>
</tr>
<tr>
<td>Технические термины</td>
<td>Сохраняет точно (polymorphism = polymorphism)</td>
</tr>
<tr>
<td>Тексты ошибок</td>
<td>Цитирует точно, без перефраза</td>
</tr>
<tr>
<td><a class="wpil_keyword_link" href="https://it-apteka.com/tag/git/" target="_blank" rel="noopener" title="Git" data-wpil-keyword-link="linked" data-wpil-monitor-id="2571">Git</a> commits, PR-комменты</td>
<td>Пишет в нормальном английском</td>
</tr>
</tbody>
</table>
<p>Вот тут важно: Caveman режет только output. Reasoning-токены (которые тратятся на «думание» модели) остаются. Автор в README пишет прямо: «Caveman no make brain smaller. Caveman make mouth smaller».</p>
<h3>Почему это вообще работает на качество</h3>
<p>В марте 2026 вышла работа «Brevity Constraints Reverse Performance Hierarchies in Language Models». Если коротко — авторы нашли что ограничение моделей по длине ответа на некоторых бенчмарках поднимает точность на 26 процентных пунктов и переворачивает рейтинги моделей. По факту: меньше слов часто означает больше дела. Меньше места для галлюцинаций, меньше возможностей развести воду.</p>
<p>Caveman работает на этом же принципе, только без научных публикаций — просто берёт и заставляет модель не размазывать.</p>
<h2>3. Шесть уровней сжатия — от lite до wenyan-ultra</h2>
<p>Caveman — не один режим, а шесть. У каждого свой trade-off между читаемостью и сжатием.</p>
<table>
<tbody>
<tr>
<th>Уровень</th>
<th>Что делает</th>
<th>Когда использовать</th>
</tr>
<tr>
<td>lite</td>
<td>Убирает только filler и вежливость</td>
<td>Когда нужен компромисс между сжатием и читаемостью для команды</td>
</tr>
<tr>
<td>full (default)</td>
<td>Артикли долой, фрагменты, типичный caveman</td>
<td>Дефолт. Подходит почти всегда</td>
</tr>
<tr>
<td>ultra</td>
<td>Телеграфный стиль, аббревиатуры везде</td>
<td>Для своих задач где не страшно если будет криптично</td>
</tr>
<tr>
<td>wenyan-lite</td>
<td>Полу-классический китайский. Грамматика на месте, filler удалён</td>
<td>Эксперимент с самым сжатым письменным языком в истории</td>
</tr>
<tr>
<td>wenyan-full</td>
<td>Полный 文言文. Максимальная классическая лаконичность</td>
<td>Когда хочется поугарать с агентом</td>
</tr>
<tr>
<td>wenyan-ultra</td>
<td>Древний учёный с дефицитом бюджета</td>
<td>Никогда. Шутка. Иногда</td>
</tr>
</tbody>
</table>
<p>Уровень держится до конца сессии или пока не сменишь вручную. Никакого drift — Caveman не «забывает» режим через 20 ответов.</p>
"Что
<br />
Wenyan — это режим где Claude отвечает на классическом китайском (文言文). Самый сжатый письменный язык, который изобрело человечество. Один иероглиф там часто несёт смысл целого английского предложения. На практике — фишка для энтузиастов и любителей экзотики, не для прода. Сэкономит токены на запросах но добавит проблем с читаемостью если ты не в теме.<br />
<h2>4. Бенчмарки — где экономия 87%, а где почти ноль</h2>
<p>Автор вынес реальные замеры с Claude API в репозиторий. Не «верю на слово», а воспроизводимые цифры. Вот таблица из README:</p>
<table>
<tbody>
<tr>
<th>Задача</th>
<th>Normal</th>
<th>Caveman</th>
<th>Экономия</th>
</tr>
<tr>
<td>Объяснить React re-render bug</td>
<td>1180</td>
<td>159</td>
<td>87%</td>
</tr>
<tr>
<td>Фикс auth middleware token expiry</td>
<td>704</td>
<td>121</td>
<td>83%</td>
</tr>
<tr>
<td>PostgreSQL connection pool</td>
<td>2347</td>
<td>380</td>
<td>84%</td>
</tr>
<tr>
<td>Объяснить git rebase vs merge</td>
<td>702</td>
<td>292</td>
<td>58%</td>
</tr>
<tr>
<td>Рефактор callback в async/await</td>
<td>387</td>
<td>301</td>
<td>22%</td>
</tr>
<tr>
<td>Архитектура: микросервисы vs монолит</td>
<td>446</td>
<td>310</td>
<td>30%</td>
</tr>
<tr>
<td>Security review PR</td>
<td>678</td>
<td>398</td>
<td>41%</td>
</tr>
<tr>
<td><a class="wpil_keyword_link" href="https://it-apteka.com/tag/docker/" target="_blank" rel="noopener" title="Docker" data-wpil-keyword-link="linked" data-wpil-monitor-id="2573">Docker</a> multi-stage build</td>
<td>1042</td>
<td>290</td>
<td>72%</td>
</tr>
<tr>
<td>Debug PostgreSQL race condition</td>
<td>1200</td>
<td>232</td>
<td>81%</td>
</tr>
<tr>
<td>React error boundary</td>
<td>3454</td>
<td>456</td>
<td>87%</td>
</tr>
<tr>
<td><b>Среднее</b></td>
<td><b>1214</b></td>
<td><b>294</b></td>
<td><b>65%</b></td>
</tr>
</tbody>
</table>
<p>Смотри что получается. На объяснениях и многословных задачах — 80-87%. На задачах где модель и так пишет компактно (рефактор кода, архитектурные обсуждения) — 22-30%. Это честная статистика, не маркетинг.</p>
<h3>Почему разброс такой большой</h3>
<p>Объяснения — это где LLM любит расписывать. «The reason this happens is because…» — модель будто получает удовольствие от длинных объяснений. Тут Caveman режет до костей, экономия максимальная.</p>
<p>Код-ориентированные задачи — рефактор, архитектура — там и без Caveman ответ компактный. Сжимать особо нечего. Получишь 20-30%, и это потолок.</p>
"Скепсис
<br />
Цифра 75% в заголовке репозитория — это лучший случай, не средний. Среднее по бенчмаркам автора — 65%. На твоих реальных задачах будет 40-70% в зависимости от того что ты гоняешь. Если у тебя 80% времени уходит на рефакторинг кода, не жди 75% экономии. Если ты постоянно просишь что-то «объяснить» — будет ближе к декларации.<br />
<h2>5. Архитектура skill — как Caveman внедряется в Claude Code</h2>
<p>Чтобы понять что ставится на машину, посмотри на схему.</p>
<pre class="mermaid">%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["npx skills add"] --> B["caveman skill folder"]
B --> C["SKILL.md с правилами"]
B --> D["hooks для статуса"]
C --> E["Claude Code читает skill"]
D --> F["SessionStart hook"]
F --> G["caveman-active flag"]
E --> H["Агент говорит как caveman"]
G --> H
style A fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style H fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style G fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#9a3412
</pre>
<p>По факту это три части:</p>
<ul>
<li>SKILL.md — markdown с инструкциями для агента</li>
<li>hooks — <a class="wpil_keyword_link" href="https://it-apteka.com/tag/bash/" target="_blank" rel="noopener" title="Bash" data-wpil-keyword-link="linked" data-wpil-monitor-id="2572">bash</a>-скрипты которые вешаются на SessionStart и UserPromptSubmit события Claude Code</li>
<li>Flag-файл .caveman-active — лежит в $CLAUDE_CONFIG_DIR (или ~/.claude если переменная не задана)</li>
</ul>
<p>Когда ты пишешь «caveman mode» в чат — UserPromptSubmit hook ловит фразу, пишет «full» во flag-файл. SessionStart hook на старте новой сессии этот flag читает и подгружает skill. Когда говоришь «stop caveman» — flag удаляется, агент возвращается в нормальный режим.</p>
<p>Вся логика лежит в публичном репо, посмотреть можно глазами. Никакой телеметрии, никаких внешних запросов — чистый local-first инструмент.</p>
<h2>6. Рецепт. Установка за 30 секунд</h2>
<h3>Подготовка</h3>
<p>Что нужно перед установкой:</p>
<ul>
<li>Node.js 18+ — нужен для npx</li>
<li>Claude Code, Codex или один из 40+ поддерживаемых агентов</li>
<li>Доступ к ~/.claude/ на запись</li>
<li>Желательно git — пригодится для обновлений и форков</li>
</ul>
<p>Проверь что Node на месте:</p>
<pre><code class="language-bash">
node --version
npx --version
</code></pre>
<p>Должно показать что-то типа v18.x или выше. Если показывает «command not found» — поставь Node с <a href="https://nodejs.org/" target="_blank" rel="noopener">nodejs.org</a> либо через nvm. На macOS проще через brew:</p>
<pre><code class="language-bash">
brew install node
</code></pre>
<h3>Шаг 1. One-line install через npx skills</h3>
<p>Универсальный способ для всех агентов. Работает на macOS, <a href="https://it-apteka.com/nastrojka-rdp-udaljonnyj-rabochij-stol-na-windows-linux-i-mac-ot-vkljuchenija-do-pervogo-seansa/" title="Настройка RDP: удалённый рабочий стол на Windows, Linux и Mac — от включения до первого сеанса" target="_blank" rel="noopener" data-wpil-monitor-id="2570">Linux и Windows</a>.</p>
<pre><code class="language-bash">
npx skills add JuliusBrussee/caveman
</code></pre>
<p>Что произойдёт. Команда стянет skill в ~/.claude/skills/caveman/, поставит hooks в ~/.claude/hooks/, пропатчит ~/.claude/settings.json чтобы зарегистрировать SessionStart и UserPromptSubmit события и подключит statusline-индикатор.</p>
<p>Никаких прав root не нужно. Всё ставится в домашнюю папку.</p>
<h3>Шаг 2. Альтернатива через Claude Code plugin marketplace</h3>
<p>Если ты уже используешь plugin marketplace в Claude Code — можно через него:</p>
<pre><code class="language-bash">
claude plugin marketplace add JuliusBrussee/caveman
claude plugin install caveman@caveman
</code></pre>
<p>Этот способ удобнее тем что обновления идут через тот же канал что и остальные плагины. Минус — нужна свежая версия Claude Code с поддержкой plugin marketplace.</p>
<h3>Шаг 3. Установка для Codex</h3>
<p>Для Codex алгоритм чуть другой:</p>
<ul>
<li>Клонируй репо: git clone https://github.com/JuliusBrussee/caveman</li>
<li>Открой Codex в этой директории</li>
<li>Запусти команду /plugins внутри Codex</li>
<li>Найди Caveman в списке</li>
<li>Жми Install</li>
</ul>
<p>После установки тригер тот же — но через $caveman вместо /caveman.</p>
<h3>Шаг 4. Cursor, Windsurf, Cline, Copilot и остальные</h3>
<p>Для <a href="https://it-apteka.com/claude-code-obsidian-kak-nastroit-rabochee-okruzhenie-i-prevratit-vault-v-dolgosrochnuju-pamjat-agenta/" title="Claude Code + Obsidian: как настроить рабочее окружение и превратить vault в долгосрочную память агента" target="_blank" rel="noopener" data-wpil-monitor-id="2568">агентов которые не используют Claude Code</a> skill-систему, у Caveman есть отдельные rule-файлы. Они генерируются CI из rules/caveman-activate.md и автоматически расходятся по типам агентов с правильными frontmatter (Cursor хочет alwaysApply: true, Windsurf хочет trigger: always_on).</p>
<p>Установка одинаковая — через npx skills add. Скрипт сам определит какой агент у тебя стоит и поставит нужный файл. Если хочешь поставить руками — скачай rules/caveman-activate-cursor.md из репо и положи в .cursorrules либо .cursor/rules/ в корне проекта.</p>
<h2>7. Проверка. Как понять что Caveman работает</h2>
<p>После установки — перезапусти Claude Code (или Codex, Cursor, что у тебя). При новой сессии должен появиться statusline-индикатор.</p>
<pre><code class="language-text">
[CAVEMAN] # full режим
[CAVEMAN:LITE] # lite режим
[CAVEMAN:ULTRA] # ultra режим
</code></pre>
<p>Если индикатора нет — открой ~/.claude/settings.json и проверь что hooks зарегистрированы:</p>
<pre><code class="language-bash">
cat ~/.claude/settings.json | grep -i caveman
</code></pre>
<p>Должны быть упоминания caveman в секциях hooks и statusline. Если ничего не нашлось — повтори установку через npx, <a class="wpil_keyword_link" href="https://it-apteka.com/category/scripts/" target="_blank" rel="noopener" title="Скрипты" data-wpil-keyword-link="linked" data-wpil-monitor-id="2574">скрипт</a> перезапишет настройки.</p>
<p>Дальше открой Claude и тестовый запрос:</p>
<pre><code class="language-text">
caveman mode
Объясни что такое event loop в Node.js
</code></pre>
<p>Если работает — получишь что-то вроде:</p>
<pre><code class="language-text">
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.
</code></pre>
<p>Если получаешь обычное «Конечно! Event loop в Node.js — это…» — значит skill не подцепился. Иди в раздел осложнений ниже.</p>
<h3>Проверка экономии токенов</h3>
<p>В Caveman встроена команда статистики. После пары сессий запусти в Claude:</p>
<pre><code class="language-text">
caveman stats
</code></pre>
<p>Покажет сколько токенов ты сэкономил с момента установки. Цифры считаются локально, никуда не отправляются.</p>
<h2>8. Полезные фичи помимо основного режима</h2>
<p>Caveman — это не один skill, а пакет из четырёх. Базовый caveman режим плюс три отдельных модуля.</p>
<h3>Compress input — режет 46% входных токенов</h3>
<p>Эту фичу часто пропускают. Caveman умеет сжимать не только output, но и input — то что ты сам пишешь в промпт. Команда:</p>
<pre><code class="language-text">
compress
</code></pre>
<p>Активирует режим в котором Claude перед обработкой переписывает твой промпт в caveman-стиле. По замерам автора экономит около 46% input токенов на сессию. Особенно полезно если ты перетаскиваешь большие куски документации в чат.</p>
<h3>Terse commits — короткие коммиты автоматом</h3>
<p>Если попросишь 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».</p>
<p>Это отдельный sub-skill который активен независимо от основного caveman режима. Удобно когда хочешь чтобы коммиты были чистыми, а ответы — нормальными.</p>
<h3>One-line PR reviews</h3>
<p>Ревью PR в формате одной строки на коммент:</p>
<pre><code class="language-text">
L42: bug: user null after logout
L67: perf: O(n^2) loop, use Set
L89: nit: typo "recieve"
</code></pre>
<p>Удобно для быстрого скана. Минус — теряются длинные обоснования. Если ревьюишь критичный код — лучше отключи и пиши ревью нормально.</p>
<h3>Cavekit — расширение для пайплайна разработки</h3>
<p>Если caveman зашёл — посмотри на <a href="https://github.com/JuliusBrussee/cavekit" target="_blank" rel="nofollow noopener">Cavekit</a> от того же автора. Это уже не просто skill для сжатия, а полноценный плагин для Claude Code: ставит пять skills (spec, build, check + caveman + backprop), даёт slash-команды /ck:spec, /ck:build, /ck:check для spec-driven разработки. Caveman там используется для token compression, но это уже инструмент другого уровня — для тех кто хочет проектировать через blueprints.</p>
<h2>9. Осложнения. Что может сломаться</h2>
"Skill
<br />
Перезапусти Claude Code полностью. Skills подгружаются только при старте сессии, hot-reload нет. Если перезапуск не помог — проверь что settings.json не побит.<br />
<pre><code class="language-bash">
# Проверь синтаксис JSON
cat ~/.claude/settings.json | python3 -m json.tool
# Если ругается - скорее всего скрипт установки оставил битый файл
# Бэкап и переустановка
cp ~/.claude/settings.json ~/.claude/settings.json.bak
npx skills add JuliusBrussee/caveman --force
</code></pre>
"Caveman
<br />
Это известная проблема Claude в длинных сессиях. Skill говорит «active every response», но модель иногда «забывает». Лечится явной командой «caveman mode» в любой момент — flag поставится снова. В новых версиях skill включена защита от drift через UserPromptSubmit hook, но в старых версиях надо обновиться.<br />
<pre><code class="language-bash">
# Обновить skill до последней версии
npx skills update JuliusBrussee/caveman
</code></pre>
"Statusline
<br />
Hook видит флаг, но skill не подгружен в контекст. Бывает если ставил вручную или CLAUDE_CONFIG_DIR указывает в одно место, а skill лежит в другом. Проверь обе переменные.<br />
<pre><code class="language-bash">
echo $CLAUDE_CONFIG_DIR
ls -la ~/.claude/skills/caveman/
ls -la $CLAUDE_CONFIG_DIR/skills/caveman/ 2>/dev/null
</code></pre>
<p>Если skill в одном месте, а конфиг в другом — либо унифицируй переменную, либо переставь skill через npx (он сам разберётся).</p>
"Caveman
<br />
В режиме ultra Caveman может выкидывать списки и заменять их фрагментами через слэш. Если работаешь в среде где markdown важен (Obsidian, Notion-агент) — переключись на full или lite. Команда: caveman lite.<br />
<h3>Ошибка npx ENOENT при установке</h3>
<pre><code class="language-text">
npm error code ENOENT
npm error syscall open
npm error path /Users/you/package.json
</code></pre>
<p>Причина — npx запускается из директории где нет package.json и сходит с ума. Перейди в любую папку где есть проект, либо в домашнюю:</p>
<pre><code class="language-bash">
cd ~
npx skills add JuliusBrussee/caveman
</code></pre>
<h3>Cursor не подхватывает caveman rules</h3>
<p>В Cursor нужен файл .cursor/rules/caveman.mdc с правильным frontmatter. Если ставил через npx skills и не работает — скорее всего Cursor сидит на старой версии rule-формата. Проверь версию Cursor (Help → About) и обнови до 0.42+.</p>
<p>Если обновить нельзя — забери файл вручную из репо:</p>
<pre><code class="language-bash">
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
</code></pre>
<p>Перезагрузи Cursor — должно подцепить.</p>
<h2>10. Когда Caveman огонь, а когда лучше выключить</h2>
<p>По факту Caveman — не серебряная пуля. Есть задачи где он сэкономит тебе пол-зарплаты. Есть где он создаст проблем больше чем решит.</p>
<h3>Caveman работает отлично:</h3>
<ul>
<li>Дебаг и troubleshooting — короткие точные ответы</li>
<li>Объяснения концепций где обычно Claude льёт воду</li>
<li>Конфиги и команды — там где нужен код, а не лекция</li>
<li>Code review одной строкой</li>
<li>Быстрые вопросы про синтаксис, библиотеки, API</li>
<li>Документация в формате «cheat sheet»</li>
<li>Когда работаешь один и читаемость для команды не важна</li>
</ul>
<h3>Caveman лучше выключить:</h3>
<ul>
<li>Документация для команды и заказчика — caveman читать тяжело новичкам</li>
<li>Объяснения для ревью когда нужен длинный контекст «почему так»</li>
<li>Architecture decisions — там нужны нюансы и trade-offs</li>
<li>Onboarding-материалы</li>
<li>Презентации и тексты для нетехнической аудитории</li>
<li>Когда модель и так отвечает компактно (рефактор кода) — экономия копеечная</li>
</ul>
<p>Выключение — одна фраза в чат:</p>
<pre><code class="language-text">
stop caveman
</code></pre>
<p>Или альтернатива:</p>
<pre><code class="language-text">
normal mode
</code></pre>
<p>Flag-файл удаляется, агент возвращается к стандартному стилю до следующей активации.</p>
<h2>11. Альтернативные подходы к экономии токенов</h2>
<p>Caveman — самый громкий, но не единственный путь.</p>
<h3>Системный промпт «Be terse»</h3>
<p>Самый простой вариант. Добавь в системный промпт инструкцию вида «Be concise. No filler. Skip pleasantries. Code over prose». Это даст 30-50% экономии без всяких skills. Минус — никакой структуры, никаких уровней, и модель «забывает» инструкцию через десяток сообщений.</p>
<p>Сравнение:</p>
<table>
<tbody>
<tr>
<th>Подход</th>
<th>Экономия</th>
<th>Drift</th>
<th>Установка</th>
</tr>
<tr>
<td>Системный промпт «be terse»</td>
<td>30-50%</td>
<td>Сильный</td>
<td>Одна строка</td>
</tr>
<tr>
<td>Caveman skill</td>
<td>65-75%</td>
<td>Минимальный</td>
<td>npx команда</td>
</tr>
<tr>
<td>Caveman ultra/wenyan</td>
<td>75-87%</td>
<td>Минимальный</td>
<td>npx + команда</td>
</tr>
<tr>
<td>Кастомный skill своего формата</td>
<td>Зависит</td>
<td>Контролируешь сам</td>
<td>Часы работы</td>
</tr>
</tbody>
</table>
<h3>Свой Claude Code skill</h3>
<p>Если стиль Caveman не подходит — напиши свой skill. Формат документирован в <a href="https://docs.anthropic.com/en/docs/claude-code" target="_blank" rel="noopener">документации Claude Code</a>. По сути это markdown с YAML frontmatter и инструкциями для агента. Можно сделать «mid-caveman» — без артиклей, но с нормальной грамматикой.</p>
<p>Преимущество — полный контроль. Можешь сделать стиль точно под свою команду и проект. Недостаток — нужно писать и поддерживать самому.</p>
<h3>Output token limits через API</h3>
<p>Если работаешь напрямую с Claude API — поставь max_tokens на разумное значение. Это hard limit, после которого модель просто обрывается. Грубо, но работает. Для интерактивной работы не подходит — обрывы на середине мысли раздражают сильнее чем длинные ответы.</p>
<h3>Prompt caching</h3>
<p>Если у тебя длинный системный промпт или большой контекст — Anthropic поддерживает prompt caching на API. Не сжимает выход, но кешированные input-токены стоят в 10 раз дешевле. Хорошо комбинируется с Caveman: input через cache, output через caveman.</p>
<h3>Связанные форки и расширения</h3>
<p>После того как Caveman завирусился, появились родственные инструменты от того же автора. <a href="https://github.com/JuliusBrussee/cavekit" target="_blank" rel="nofollow noopener">Cavekit</a> — для spec-driven разработки. cavemem — расширение для долгой памяти агента. На GitHub можно найти community-форки с настроенными уровнями под отдельные языки и фреймворки.</p>
<h2>12. Профилактика. Как не сломать продакшн пещерным режимом</h2>
<h3>Не используй Caveman в shared-конфигах</h3>
<p>Если у тебя в проекте лежит .cursor/rules или .claude/skills которые комитятся в репо — все остальные ребята из команды получат caveman режим без своего согласия. Не круто. Держи Caveman в личном ~/.claude/, не в проекте.</p>
<h3>Бэкап settings.json до и после установки</h3>
<p>Скрипт установки правит ~/.claude/settings.json. Если у тебя там кастомные hooks или настройки — сделай бэкап.</p>
<pre><code class="language-bash">
cp ~/.claude/settings.json ~/.claude/settings.json.before-caveman
npx skills add JuliusBrussee/caveman
diff ~/.claude/settings.json.before-caveman ~/.claude/settings.json
</code></pre>
<p>После установки прогони diff — увидишь что именно изменилось. Если что-то сломалось, откатываешь файл и удаляешь skill вручную.</p>
<h3>Откат и удаление</h3>
<p>Удаление через npx skills:</p>
<pre><code class="language-bash">
npx skills remove JuliusBrussee/caveman
</code></pre>
<p>Скрипт уберёт skill из ~/.claude/skills/, удалит hooks и почистит settings.json.</p>
<p>Если что-то не убралось руками:</p>
<pre><code class="language-bash">
rm -rf ~/.claude/skills/caveman
rm -f ~/.claude/hooks/caveman-*
rm -f ~/.claude/.caveman-active
</code></pre>
<p>И отредактируй ~/.claude/settings.json — выкини секции с упоминанием caveman.</p>
<h3>Мониторинг расхода токенов</h3>
<p>Чтобы понять какая реальная экономия в твоём workflow — мониторь usage. В Anthropic Console есть dashboard по расходу. Сделай скриншот за неделю до Caveman и за неделю после. Реальные цифры на твоих задачах часто отличаются от бенчмарков из README.</p>
<p>В самом Caveman есть встроенная статистика:</p>
<pre><code class="language-text">
caveman stats
</code></pre>
<p>Покажет сколько токенов ушло на input, сколько на output, сколько ты сэкономил по сравнению с baseline. Цифры локальные, не отправляются никуда.</p>
<h3>Безопасность skill-системы</h3>
<p>Caveman сам по себе безопасен — это markdown с инструкциями, не исполняемый код. Hooks — bash-скрипты, лежат в ~/.claude/hooks/. Их легко прочитать глазами:</p>
<pre><code class="language-bash">
cat ~/.claude/hooks/caveman-session-start.sh
cat ~/.claude/hooks/caveman-prompt-submit.sh
cat ~/.claude/hooks/caveman-statusline.sh
</code></pre>
<p>Все три — простые скрипты на 20-50 строк. Если ставишь Caveman из основного репо JuliusBrussee/caveman — там код проверяемый. Форки и community-плагины смотри глазами перед установкой.</p>
<h2>13. FAQ</h2>
<h3>Почему Caveman не работает после установки?</h3>
<p>Самая частая причина — не перезапустил Claude Code. Skills подгружаются при старте сессии, не на лету. Закрой и открой агент. Если не помогло — проверь ~/.claude/settings.json на валидность JSON и наличие записей про hooks. В половине случаев настройки бьются если у тебя уже было что-то кастомное в этом файле.</p>
<h3>Как проверить что Caveman реально экономит токены, а не просто выглядит коротко?</h3>
<p>Запусти команду caveman stats — покажет статистику по сессиям. Дополнительно — открой Anthropic Console (console.anthropic.com), сравни usage за период до и после установки. Цифры по input + output должны заметно упасть. Если не упали — значит skill не активен или ты гоняешь задачи где экономии и так нет.</p>
<h3>Что делать если Caveman ломает форматирование в важной задаче?</h3>
<p>Переключись на lite-режим: «caveman lite». Он убирает только filler, не трогает структуру списков и markdown. Альтернатива — выключи на одно сообщение фразой «stop caveman», получи нормально оформленный ответ, потом включи обратно «caveman mode». Flag-файл переключается за миллисекунды.</p>
<h3>Чем Caveman отличается от обычного «be terse» в системном промпте?</h3>
<p>Caveman даёт стабильные 65-75% экономии, не съезжает в drift через десять сообщений и работает в 40+ агентах сразу. Простой «be terse» в промпте даёт 30-50% и теряет силу к середине сессии. Плюс у Caveman есть уровни, статистика, hooks для статусной строки и независимые sub-skills для commits и review. Это инструмент, а не однострочник.</p>
<h3>Caveman работает с reasoning-моделями типа Claude Opus с extended thinking?</h3>
<p>Да, но с нюансом. Caveman режет только output. Reasoning-токены (которые тратятся внутри extended thinking) остаются нетронутыми. Если основная стоимость у тебя — на reasoning, экономия будет меньше чем заявлено. Если на output — экономия как в бенчмарках.</p>
<h3>Можно ли использовать Caveman на русском языке?</h3>
<p>Технически — да, попроси Claude отвечать по-русски в caveman-режиме. На практике — экономия будет меньше. Skill заточен под особенности английского (артикли, вспомогательные глаголы), на русском filler структурирован иначе. Для серьёзной работы на русском проще написать свой skill с инструкциями типа «без вводных, без вежливости, фрагменты».</p>
<h3>Сколько звёзд у проекта на GitHub?</h3>
<p>На момент проверки в мае 2026 у репозитория <a href="https://github.com/JuliusBrussee/caveman" target="_blank" rel="nofollow noopener">JuliusBrussee/caveman</a> около 928 звёзд и 21 fork. Цифры растут — проект завирусился после первых обсуждений на Hacker <a class="wpil_keyword_link" href="https://it-apteka.com/tag/news/" target="_blank" rel="noopener" title="news" data-wpil-keyword-link="linked" data-wpil-monitor-id="2575">News</a> и Reddit в начале весны.</p>
<h3>Чем Caveman отличается от Cavekit?</h3>
<p>Caveman — это один skill про сжатие текста. Cavekit — это полноценный плагин для Claude Code с пятью skills (spec, build, check, caveman, backprop) и набором slash-команд для spec-driven разработки. Caveman входит в Cavekit как один из модулей. Если нужна только экономия токенов — ставь Caveman. Если хочешь полный workflow от спеки до работающего кода — смотри в сторону Cavekit.</p>
<h2>14. Прогноз</h2>
<p>Что ты сделал к этому моменту. Поставил skill через npx skills add, проверил активацию через statusline, протестировал на типовых запросах и увидел разницу до/после в количестве токенов. Если всё пошло гладко — у тебя теперь работает агент, который не льёт воду и не тратит твой бюджет на «Sure, I’d be happy to help».</p>
<p>Что теперь работает иначе. Каждый ответ короче в 2-4 раза. Скорость ощутимо выше — модели нужно генерировать меньше токенов. Месячный счёт за API упадёт на 40-60%, если у тебя стандартный mix задач. Если основа работы — объяснения и troubleshooting, экономия может быть и 70%. Если ты пишешь много кода и ревью — ближе к 30-40%, но всё равно ощутимо.</p>
<p>Если не заработало — пиши в комментарии, разберёмся. И не забудь поставить звёздочку автору на <a href="https://github.com/JuliusBrussee/caveman" target="_blank" rel="nofollow noopener">JuliusBrussee/caveman</a> — мужик красавец, всё опубликовал в open-source, заслужил.</p>
"Caveman
<br />
Главное что нужно понять. Это не про урезание возможностей модели, это про урезание её болтовни. Мозг и точность остаются. Уходит только filler. Поставь, протестируй на своих задачах неделю, посмотри на cumulative savings в console — дальше решай оставлять или нет.<br />
Быстрый ответ
Caveman Claude — это skill для Claude Code от Julius Brussee, который заставляет агента отвечать в сжатом «пещерном» стиле и режет до 75% выходных токенов без потери технической точности. Ставится одной командой через npx, активируется фразой «caveman mode» или /caveman, выключается «stop caveman». Работает в Claude Code, Codex, Cursor, Windsurf, Cline, Copilot и Gemini CLI. На бенчмарках автора средняя экономия 65%, разброс 22-87% в зависимости от задачи.
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 ответов.
Что такое wenyan mode
Wenyan — это режим где Claude отвечает на классическом китайском (文言文). Самый сжатый письменный язык, который изобрело человечество. Один иероглиф там часто несёт смысл целого английского предложения. На практике — фишка для энтузиастов и любителей экзотики, не для прода. Сэкономит токены на запросах но добавит проблем с читаемостью если ты не в теме.
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%, и это потолок.
Скепсис к маркетинговой цифре 75%
Цифра 75% в заголовке репозитория — это лучший случай, не средний. Среднее по бенчмаркам автора — 65%. На твоих реальных задачах будет 40-70% в зависимости от того что ты гоняешь. Если у тебя 80% времени уходит на рефакторинг кода, не жди 75% экономии. Если ты постоянно просишь что-то «объяснить» — будет ближе к декларации.
5. Архитектура skill — как Caveman внедряется в Claude Code
Чтобы понять что ставится на машину, посмотри на схему.
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["npx skills add"] --> B["caveman skill folder"]
B --> C["SKILL.md с правилами"]
B --> D["hooks для статуса"]
C --> E["Claude Code читает skill"]
D --> F["SessionStart hook"]
F --> G["caveman-active flag"]
E --> H["Агент говорит как caveman"]
G --> H
style A fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style H fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style G fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#9a3412
По факту это три части:
- 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. Осложнения. Что может сломаться
Skill не активируется после установки
Перезапусти Claude Code полностью. Skills подгружаются только при старте сессии, hot-reload нет. Если перезапуск не помог — проверь что settings.json не побит.
# Проверь синтаксис JSON
cat ~/.claude/settings.json | python3 -m json.tool
# Если ругается - скорее всего скрипт установки оставил битый файл
# Бэкап и переустановка
cp ~/.claude/settings.json ~/.claude/settings.json.bak
npx skills add JuliusBrussee/caveman --force
Caveman drift - агент возвращается в нормальный режим через 10-15 сообщений
Это известная проблема Claude в длинных сессиях. Skill говорит «active every response», но модель иногда «забывает». Лечится явной командой «caveman mode» в любой момент — flag поставится снова. В новых версиях skill включена защита от drift через UserPromptSubmit hook, но в старых версиях надо обновиться.
# Обновить skill до последней версии
npx skills update JuliusBrussee/caveman
Statusline показывает CAVEMAN, но ответы нормальные
Hook видит флаг, но skill не подгружен в контекст. Бывает если ставил вручную или CLAUDE_CONFIG_DIR указывает в одно место, а skill лежит в другом. Проверь обе переменные.
echo $CLAUDE_CONFIG_DIR
ls -la ~/.claude/skills/caveman/
ls -la $CLAUDE_CONFIG_DIR/skills/caveman/ 2>/dev/null
Если skill в одном месте, а конфиг в другом — либо унифицируй переменную, либо переставь skill через npx (он сам разберётся).
Caveman ломает форматирование markdown
В режиме ultra Caveman может выкидывать списки и заменять их фрагментами через слэш. Если работаешь в среде где markdown важен (Obsidian, Notion-агент) — переключись на full или lite. Команда: caveman lite.
Ошибка 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, заслужил.
Caveman не делает мозг меньше — делает рот меньше
Главное что нужно понять. Это не про урезание возможностей модели, это про урезание её болтовни. Мозг и точность остаются. Уходит только filler. Поставь, протестируй на своих задачах неделю, посмотри на cumulative savings в console — дальше решай оставлять или нет.