입문 난이도 | 약 10분 | caveman을 설치하고 설정하는 전체 과정을 익히고, 라이트 / 풀 / 울트라 / 문언문(문어체) 네 가지 압축 모드를 이해하며, AI 출력의 모든 토큰을 최대한 뽑아내세요.
프로젝트 소개
caveman 은 Julius Brussee가 개발한 AI 코딩 어시스턴트의 출력 압축(스킬)입니다. GitHub: JuliusBrussee/caveman。
핵심은 아주 단순합니다: AI의 답변이 쓸모 있는 부분만 말하게 만들기. 기술 정확도는 그대로 유지하면서 출력 토큰을 약 75% 압축합니다. 심지어 2026년의 연구(arxiv:2604.00025)에 따르면, 대규모 모델에 간결성 제약을 적용하면 일부 벤치마크에서 정확도가 26%p 상승했습니다. 말이 많다고 해서 답이 맞는 건 아니라는 얘기죠.
caveman은 단순 장난 프로젝트가 아닙니다. 기본으로 4단계 압축 강도(Lite / Full / Ultra / 문언문)를 제공하고, 여기에 caveman-commit(초미니 커밋 메시지), caveman-review(한 줄 코드 리뷰), caveman-compress(메모리 파일 압축) 세 가지 서브 스킬이 더해집니다. Claude Code, Codex, Cursor, Windsurf, Cline, Copilot, Gemini CLI 등 40+ AI 코딩 어시스턴트를 지원합니다.
목표 독자
매일 AI 코딩 어시스턴트로 문제를 처리하지만, 이런 상황을 자주 겪나요?
- 답변이 너무 장황함
- 핵심이 잘 드러나지 않음
- 읽고 나면 결국 내가 다시 정리해야 함
속도 향상과 비용 절감이 절실한데, 쓸데없는 예의/말로 토큰과 시간을 낭비당하고 싶지 않습니다.
핵심 의존성과 환경
| 의존성 | 설명 |
|---|---|
| AI 코딩 어시스턴트 | Claude Code / Codex / Cursor / Gemini CLI 등, 최소 1개 |
| 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
기타 에이전트(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 파일 자체만 설치하고, Agent의 always-on 규칙 파일은 설치하지 않습니다. 따라서 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 이 새 세션마다 SessionStart hook을 자동으로 트리거하므로, 설치 후 매번 수동 활성화가 필요 없습니다. Cursor / Windsurf 등은 7단계의 추가 설정이 필요합니다.
3단계 — 압축 강도 선택
caveman에는 4단계 압축 강도가 있으며, 전환 명령은 다음과 같습니다.
| 단계 | 트리거 명령 | 특징 | 적용 상황 |
|---|---|---|---|
| Lite | /caveman lite | 필러 제거, 전체 문법 유지. 프로페셔널하지만 간결 | 공식 커뮤니케이션, 구조를 꼭 유지해야 할 때 |
| Full | /caveman full | 관사(a/an/the) 제거, 문장 끊기 허용, 짧은 단어 치환 | 일상 개발(기본) |
| Ultra | /caveman ultra | 극한 압축: 약어, 인과 화살표(→) | 빠른 디버깅, 고압 상황 |
| 문언문 | /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."
📜 문언문(11 tokens):
"物出新參照,致重繪。useMemo Wrap之。"
caveman 모드 종료:
stop caveman
normal mode
IMPORTANT
코드 블록 내용은 압축되지 않습니다. caveman은 자연어 답변만 압축하며, 코드/파일 경로/URL/명령은 항상 원문 그대로 유지됩니다.
4단계 — caveman-commit: 극단적으로 짧은 커밋 메시지
caveman-commit은 커밋 메시지를 전용으로 생성하는 서브 스킬로, Conventional Commits를 따르며 주어는 50자를 넘지 않습니다.
/caveman-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의 가장 실용적인 서브 스킬 중 하나입니다. 매 세션마다 AI가 CLAUDE.md 를 읽습니다. 그런데 안에 인간 친화적인 장황한 설명이 잔뜩 들어 있으면, 매번 읽는 데 토큰이 낭비됩니다. caveman-compress는 이런 메모리 파일들을 AI가 효율적으로 읽을 수 있는 형태로 압축하되, 원본 백업은 편집할 수 있게 그대로 유지합니다.
/caveman:compress CLAUDE.md
실행 후:
CLAUDE.md ← 압축본(Claude는 매번 이걸 읽음)
CLAUDE.original.md ← 원본 백업(이 파일을 편집, 압축은 단방향)
실측 압축 효과:
| 파일 | 원본 토큰 | 압축 후 | 절감 |
|---|---|---|---|
| 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(자연어 문단)만 압축합니다. 코드 블록, 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은 SessionStart hook으로 자동 활성화합니다. hook이 제대로 기록됐는지 확인하세요.
# ~/.claude/settings.json 에 SessionStart hook이 있는지 확인
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 규칙을 자동으로 기록하지 않습니다. 7단계의 snippet을 해당 규칙 파일에 직접 추가한 뒤, 저장하고 Agent를 다시 로드하세요.
3. 문언문 모드 출력이 전부 깨지거나 물음표로 나옴
터미널과 편집기가 모두 UTF-8을 지원하는지 확인합니다. Windows에서는 PowerShell의 기본 인코딩이 문제를 일으킬 수 있습니다.
chcp 65001
$env:LESSCHARSET=utf-8
VS Code 하단 상태 표시줄에서 문자 인코딩이 UTF-8인지 확인하세요.
4. caveman-compress가 코드 블록도 압축함
일어날 수 없습니다. 코드 블록, URL, 파일 경로, 명령은 모두 제외 항목이라 압축에 포함되지 않습니다. 예외가 보이면 보통 파일 형식 문제입니다(예: 코드 블록 표식 ``` 이 누락). CLAUDE.original.md 와 대조해서 수동으로 복원할 수 있습니다.
5. /caveman 명령이 반응이 없음
다른 skill이 슬래시 명령을 가로채고 있을 수 있습니다. Claude Code에서 직접 트리거 문장으로 시도해보세요: "talk like caveman". 그래도 안 되면 같은 이름의 skill 충돌 여부를 확인하세요.
6. 여러 Agent가 동시에 있을 때, 특정 Agent에서 caveman이 작동하지 않음
caveman 설정 파일은 Agent별로 독립되어 서로 영향을 주지 않습니다. 특정 Agent에서 동작하지 않으면, 그 Agent의 규칙 디렉터리에 caveman 관련 파일이 있는지 확인하세요.
확장 읽기 / 고급 방향
1. caveman의 삼팔(三臂) 평가: 데이터를 정직하게 만드는 법
대부분의 "압축 기술" 평가는 skill 응답과 일반 응답을 비교합니다. 그런데 이건 공정하지 않습니다. 간결성(terseness) 자체가 품질을 올리기 때문입니다. caveman은 삼팔 평가를 사용합니다: _baseline_(시스템 프롬프트 없음), _terse_("Answer concisely"만 있음), <skill>(caveman 전체 규칙). 실제 절감량은 skill vs baseline이 아니라, skill vs terse의 차이입니다. 이런 방법론은 어떤 AI 보조 도구 평가에도 적용할 만합니다.
2. 실제 Benchmark 데이터 해석
실측 10개 작업에서 평균 출력 토큰이 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-full 은 여전히 약 40~60%까지 압축이 가능합니다. 고전 중국어 문법의 "주어 생략 + 동사-목적어 도치"가 단일 언어 환경에서도 여전히 유효하기 때문입니다. 극단적으로 압축이 필요하면서도 특수 문법에 적응할 의향이 있는 상황에 적합합니다.