Уровень входа | примерно 10 минут | вы освоите полную установку и настройку caveman, разберётесь в четырёх режимах сжатия — Lite / Full / Ultra / Wenyan — и выжмете каждый Token из вывода AI.
Обзор проекта
caveman — это навык сжатия вывода для AI-кодинг-помощника, разработанный Julius Brussee; репозиторий: JuliusBrussee/caveman.
Его ключевая цель предельно проста: чтобы ответы AI содержали только полезное. При сохранении той же технической точности вывод сжимается примерно на 75% Token. Исследование 2026 года (arxiv:2604.00025) даже показывает, что при добавлении к LLM лаконичных ограничений точность на некоторых бенчмарках растёт на 26 процентных пунктов — так что много говорить не значит отвечать правильно.
caveman — это не просто шутка. Он встроил четыре уровня силы сжатия (Lite / Full / Ultra / Wenyan) плюс три поднавыка: caveman-commit (предельно минимальные сообщения для commit), caveman-review (однострочный ревью кода) и caveman-compress (сжатие файлов памяти). Поддерживает более 40 AI-кодинг-помощников, включая Claude Code, Codex, Cursor, Windsurf, Cline, Copilot, Gemini CLI и др.
Целевая аудитория
Вы каждый день используете AI-кодинг-помощника, но часто сталкиваетесь с тем, что ответы слишком многословные, акценты размыты и после прочтения всё равно приходится самому выделять суть. Ускорение и снижение стоимости — ваша насущная необходимость: не хочется тратить Token и время на бессмысленные любезности.
Ключевые зависимости и окружение
| Зависимость | Описание |
|---|---|
| AI-кодинг-помощник | Claude Code / Codex / Cursor / Gemini CLI и т.п., нужен минимум один |
| Node.js | требуется для установки через npx skills |
| Python 3.10+ | caveman-compress использует инструмент сжатия |
| Git | нужна установка плагином |
Полная структура проекта
my-project/
├── CLAUDE.md # Записывается после установки caveman, действует всегда (Claude Code)
├── .caveman/ # Папка-отметка состояния (генерируется автоматически)
│ └── .caveman-active # Текущий режим: full / lite / ultra / wenyan
├── .cursor/rules/caveman.mdc # Правило Cursor always-on (генерируется автоматически)
├── .windsurf/rules/caveman.md # Правило Windsurf always-on (генерируется автоматически)
├── .clinerules/caveman.md # Правило Cline (генерируется автоматически)
└── .github/copilot-instructions.md # Правило Copilot (генерируется автоматически)
Пошаговая инструкция
Шаг 1 — Установка caveman
caveman поддерживает 40+ AI-кодинг-помощников. Выберите команду под вашу платформу:
Claude Code (рекомендуется)
# Вариант 1: из маркетплейса плагинов (самый простой)
claude plugin marketplace add JuliusBrussee/caveman
claude plugin install caveman@caveman
# Вариант 2: установка скриптом (если без системы плагинов)
# macOS / Linux / WSL
bash <(curl -s https://raw.githubusercontent.com/JuliusBrussee/caveman/main/hooks/install.sh)
# Windows PowerShell
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/hooks/install.ps1 | iex
Codex (VS Code + Codex)
# macOS / Linux
# 1. Клонируйте репозиторий → откройте Codex в нужной папке → /plugins → найдите "Caveman" → Install
# Windows (сначала включите символьные ссылки)
git config --global core.symlinks true
# Далее то же самое: клонировать → VS Code → Codex Settings → Plugins → установить Caveman
Gemini CLI
gemini extensions install https://github.com/JuliusBrussee/caveman
Cursor / Windsurf / Cline / Copilot
npx skills add JuliusBrussee/caveman -a cursor
npx skills add JuliusBrussee/caveman -a windsurf
npx skills add JuliusBrussee/caveman -a cline
npx skills add JuliusBrussee/caveman -a github-copilot
Другие Agent’ы (opencode / Roo / Goose / Kiro и др., всего 40+ )
npx skills add JuliusBrussee/caveman # автоопределение
# или явно указать
npx skills add JuliusBrussee/caveman -a opencode
npx skills add JuliusBrussee/caveman -a roo
WARNING
npx skills add устанавливает только сам skill-файл, но не файл правил always-on для Agent. Поэтому после установки Cursor / Windsurf / Cline / Copilot каждый новый сеанс нужно активировать вручную. Шаг 7 покажет, как сделать активацию постоянной.
Шаг 2 — Активация режима caveman
После установки в любом диалоге введите любую из следующих команд:
/caveman # режим Full по умолчанию
$caveman # для Codex символ $ вместо /
Или просто спровоцируйте запуск фразой:
talk like caveman
caveman mode
less tokens please
TIP
В Claude Code / Gemini CLI / Codex команда /caveman автоматически триггерит hook SessionStart в каждом новом сеансе, так что после настройки не нужно активировать вручную каждый раз. Для Cursor / Windsurf и т.п. нужна дополнительная настройка из шага 7.
Шаг 3 — Выбор уровня сжатия
caveman имеет четыре уровня силы сжатия — переключайте командой:
| Режим | Триггер-команда | Особенности | Сценарии |
|---|---|---|---|
| Lite | /caveman lite | убирает filler, сохраняет полный синтаксис — профессионально, но компактно | официальное общение, когда нужно сохранить структуру |
| Full | /caveman full | убирает артикли (a/an/the), разрешает разрывы, заменяет короткие слова | повседневная разработка (по умолчанию) |
| Ultra | /caveman ultra | максимальное сжатие, сокращения, причинно-следственные стрелки (→) | быстрая отладка, стресс-ситуации |
| Wenyan | /caveman wenyan | сжатие в стиле вэньяньвэнь, классический синтаксис | гики и «красивые трюки», китайские разработчики |
Сравнение на одном и том же вопросе про React:
🗣️ Обычный ответ (69 tokens):
"Your React component re-renders because you are 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."
🪶 Lite (39 tokens):
"Your component re-renders because you create a new object reference each render.
Inline object props fail shallow comparison every time. Wrap it in useMemo."
🪨 Full (19 tokens):
"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."
🔥 Ultra (15 tokens):
"Inline obj prop → new ref → re-render. useMemo."
📜 Wenyan (11 tokens):
"物出新參照,致重繪。useMemo Wrap之。"
Выход из режима caveman:
stop caveman
normal mode
IMPORTANT
Содержимое code block не сжимается. caveman сжимает только естественноязыковые ответы: код, пути к файлам, URL и команды всегда остаются без изменений.
Шаг 4 — caveman-commit: ультра-минимальные commit-сообщения
caveman-commit — поднавык, специально предназначенный для генерации commit message. Формат следует Conventional Commits, а подлежащее не превышает 50 символов:
/caveman-commit
Пример вывода:
# Commit обычного Claude (слишком многословно):
"Added user authentication functionality including JWT token generation and validation,
password hashing with bcrypt, and session management middleware. This improves security
by implementing proper authentication flows."
# Результат caveman-commit:
"feat(auth): JWT + bcrypt login, session middleware"
Формат подлежащего: type(scope): subject — всегда не более 50 символов, why over what.
Шаг 5 — caveman-review: однострочное ревью кода
caveman-review делает однострочное ревью для PR или кусков кода. Формат фиксированный, без лишних слов:
/caveman-review
Вставьте ваш diff или код — и он выдаст:
L42: 🔴 bug: user null. Add guard.
L58: 🟡 perf: N+1 query. Prefetch in ORM.
L71: 🟢 nit: unused import. Remove.
Больше не нужно перечитывать в комментариях к PR целые простыни вроде «я думаю, тут можно улучшить» — просто получите, какая строка проблемная и как это исправить.
Формат: L<номер строки>: <🔴🟡🟢> <тип проблемы>: <описание>. <рекомендация по исправлению>.
Шаг 6 — caveman-compress: сжатие файлов памяти проекта
Это один из самых практичных поднавыков caveman. Ваш CLAUDE.md каждый сеанс читает AI: если внутри много дружелюбных, но длинных объяснений, на их чтение каждый раз тратятся Token. caveman-compress сжимает такие файлы в формат, который AI читает эффективнее, сохраняя при этом оригинальный бэкап для вашего редактирования.
/caveman:compress CLAUDE.md
После запуска:
CLAUDE.md ← сжатая версия (Claude читает её каждый раз)
CLAUDE.original.md ← оригинальный бэкап (редактируете его; сжатие — одностороннее)
Фактический эффект сжатия:
| Файл | Исходные tokens | После сжатия | Экономия |
|---|---|---|---|
| claude-md-preferences.md | 706 | 285 | 59.6% |
| project-notes.md | 1145 | 535 | 53.3% |
| claude-md-project.md | 1122 | 636 | 43.3% |
| todo-list.md | 627 | 388 | 38.1% |
| mixed-with-code.md | 888 | 560 | 36.9% |
| Среднее | 898 | 481 | 46% |
TIP
caveman-compress сжимает только prose (абзацы естественного языка). Code blocks, URL, пути к файлам, команды, заголовки и даты/версии — всё сохраняется как есть. Никакого «ошибочного» сжатия.
Шаг 7 — Настройка Always-On
После установки Claude Code / Gemini CLI функция always-on включается автоматически — допнастройки не нужны.
Cursor / Windsurf / Copilot и т.п. после установки через npx skills add требуют вручную добавить snippet, чтобы активация была постоянной. Запишите предпочитаемую «силу» в файл правил Agent:
Terse like caveman. Technical substance exact. Only fluff die.
Drop: articles, filler (just/really/basically), pleasantries, hedging.
Fragments OK. Short synonyms. Code unchanged.
Pattern: [thing] [action] [reason]. [next step].
ACTIVE EVERY RESPONSE. No revert after many turns.
Code/commits/PRs: normal. Off: "stop caveman" / "normal mode".
Куда именно добавлять для разных Agent’ов:
| Agent | Путь к файлу |
|---|---|
| Cursor | .cursor/rules/caveman.mdc |
| Windsurf | .windsurf/rules/caveman.md |
| Copilot | .github/copilot-instructions.md или ваши пользовательские инструкции |
| opencode | .config/opencode/AGENTS.md |
| Roo | .roo/rules/caveman.md |
Шаг 8 — Удаление / восстановление настроек по умолчанию
# Удаление плагина для Claude Code
claude plugin uninstall caveman
# Удаление standalone hooks
bash hooks/uninstall.sh # macOS / Linux
powershell -File hooks\uninstall.ps1 # Windows
# Удаление через npx skills
npx skills remove caveman
# Удаление для Gemini CLI
gemini extensions uninstall caveman
После удаления папку состояния .caveman/ и файлы правил нужно очистить вручную (если нужно).
Частые вопросы и поиск проблем
1. Плагин установлен, но caveman не активируется автоматически
Claude Code использует hook SessionStart для автозапуска. Проверьте, корректно ли он записан:
# Проверка hook в ~/.claude/settings.json
cat ~/.claude/settings.json | grep -i "SessionStart"
# Или переустановите заново
claude plugin uninstall caveman
claude plugin install caveman@caveman
2. Cursor / Windsurf always-on не работает
npx skills add не добавляет always-on правила автоматически. Вручную внесите snippet из шага 7 в соответствующий файл правил, сохраните и перезагрузите Agent.
3. Режим Wenyan выдаёт сплошной «крякозябр» или вопросительные знаки
Убедитесь, что и терминал, и редактор поддерживают UTF-8. На Windows кодировка по умолчанию в PowerShell может быть проблемной:
chcp 65001
$env:LESSCHARSET=utf-8
В VS Code внизу на статусной панели проверьте, что кодировка символов — UTF-8.
4. caveman-compress сжал и code blocks
Это невозможно: code blocks, URL, пути к файлам и команды — это пропускаемые элементы, они не участвуют в сжатии. Если вы видите отклонение, обычно причина в формате файла (например, пропущена разметка тройных backticks ```). Можно вручную свериться и восстановить из CLAUDE.original.md.
5. Команда /caveman не реагирует
Возможно, другие skill перехватывают команды со слэшем. В Claude Code попробуйте триггер фразой: "talk like caveman". Если всё равно не работает — проверьте, нет ли конфликта с skill, имеющим то же имя.
6. Когда несколько Agent’ов сосуществуют, caveman перестаёт работать в одном из них
Настройки caveman независимы для каждого Agent и не влияют друг на друга. Если в каком-то Agent не срабатывает, проверьте, есть ли в его директории правил файлы, связанные с caveman.
Дополнительное чтение / куда развивать дальше
1. Трёхрукий тест caveman: как гарантировать честность данных
Большинство оценок «приёма сжатия» сравнивают ответы из skill с обычным ответом — но это несправедливо, потому что terseness (лаконичность) сама по себе повышает качество. caveman использует трёхрукий тест: _baseline_ (без системного промпта), _terse_ (только «Answer concisely») и <skill> (полные правила caveman). Реальная экономия — это разница между skill и terse, а не skill и baseline. Такой подход стоит перенять для оценки любых AI-помощников.
2. Как интерпретировать реальные Benchmark-данные
На практике 10 задач: среднее число выходных Token снизилось с 1214 до 294, экономия 65%. Диапазон от 22% (git rebase vs merge: объяснение само по себе длинное) до 87% (границы ошибки в React: обычный ответ чрезмерно развернут). Чем легче задача «уходит в многословные объяснения», тем больше экономит caveman.
3. Cavekit: инструментальный набор с спецификациями от того же автора
JuliusBrussee/cavekit — сопутствующий проект: пишете спецификацию языком caveman → параллельно собираете в Claude → выпускаете готовое ПО. Если вы оптимизируете выходную эффективность с помощью caveman, cavekit может сделать похожие вещи и на входной стороне.
4. Пользовательские уровни сжатия
skills/caveman/SKILL.md определяет все правила уровней. Можно скопировать, изменить таблицу сокращений, сохранить таблицу или поменять правила для причинно-следственных символов — и создать свои режимы. Например, добавить сокращения внутренних команд в команде или запретить заменять некоторые технические термины.
5. Межъязыковая применимость сжатия в стиле Wenyan
Принцип режима Wenyan такой: самая краткая письменная речь за всю историю человечества + крайне низкая плотность «символьных» Token. В англоязычном корпусе wenyan-full всё равно сжимает примерно на 40–60%, потому что классический китайский синтаксис «опускание подлежащего + инверсия глагол—дополнение» остаётся эффективным в одноязычной среде. Подходит для сценариев, где нужно предельно сжать, и где вы готовы подстроиться под специфический синтаксис.