入门难度 | 约 10 分钟 | 你将掌握安装和配置 caveman 的完整流程,理解 Lite / Full / Ultra / 文言文四档压缩模式,榨干 AI 输出的每个 Token。
项目简介
caveman 是一个 AI 编码助手的输出压缩技能,由 Julius Brussee 开发,GitHub 地址 JuliusBrussee/caveman。
它的核心定位很简单:让 AI 的回复只说有用的部分。在保持技术精度不变的前提下,将输出 Token 压缩约 75%。一个 2026 年的研究(arxiv:2604.00025)甚至发现,对大模型施加简洁约束后,在某些基准测试上准确率提升了 26 个百分点——话说得多不一定答得对。
caveman 不只是一个玩笑项目。它内置了四级压缩强度(Lite / Full / Ultra / 文言文),外加 caveman-commit(极简提交信息)、caveman-review(单行代码审查)、caveman-compress(记忆文件压缩)三个子技能。支持 Claude Code、Codex、Cursor、Windsurf、Cline、Copilot、Gemini CLI 等 40+ AI 编码助手。
目标读者
你每天在用 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(推荐)
# 方式一:插件市场(最简洁)
claude plugin marketplace add JuliusBrussee/caveman
claude plugin install caveman@caveman
# 方式二:脚本安装(不用插件系统时)
# 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 文件本身,不装 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 有四级压缩强度,切换命令:
| 档位 | 触发命令 | 特点 | 适用场景 |
|---|---|---|---|
| Lite | /caveman lite | 去 filler,保留完整语法,专业但精简 | 正式沟通、需要保留结构 |
| 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 是专门生成 commit message 的子技能,格式遵循 Conventional Commits,主语不超过 50 字符:
/caveman-commit
输出示例:
# 普通 Claude 的 commit(过于冗长):
"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(自然语言段落)。代码块、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 共存时 caveman 在某个 Agent 里失效
caveman 的配置文件是各 Agent 独立的,不互相影响。如果在某个 Agent 里不生效,检查该 Agent 的规则目录里是否有 caveman 相关的文件。
扩展阅读 / 进阶方向
1. caveman 的三臂评测:怎么保证数据诚实
大多数"压缩技巧"的评测是拿 skill 回复和正常回复比——这不公平,因为 terseness(简洁)本身就能提升质量。caveman 用的是三臂评测:_baseline_(无系统提示)、_terse_(只有"Answer concisely")、<skill>(caveman 完整规则)。真实节省量是 skill vs terse 的差值,而非 skill vs 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. 文言文压缩的跨语言适用性
文言文模式的原理是:人类历史上最简洁的书面语言 + 极低的字符 Token 密度。在英文语料上,wenyan-full 仍能压缩约 40-60%,因为古典中文语法的"主语省略 + 动词宾语倒置"在单语言环境下仍然有效。适合需要极致压缩、又愿意适应特殊语法的场景。