一个出生才 12 天的项目,凭什么拿下 33000 颗星?
一句话总结
caveman 让你的 AI 编程助手用最少的字说最准确的话——砍掉 75% 的输出 token,技术准确率 100%,响应速度提升约 3 倍。
这不是噱头。它有完整的基准测试、三臂对照实验、自动化验证流程。而且,它还支持文言文模式。
为什么这件事重要?
如果你每天都在用 Claude Code、Codex、Cursor 这些 AI 编程工具,你一定有这种感觉:
AI 话太多了。
你问一个 React 组件为什么重复渲染,它先来一句"当然,我很乐意帮助你",然后铺垫三段背景,最后才说到重点。你花了 0.03 美元买了一句 useMemo,前面 0.1 美元全浪费在客套话上。
更关键的是,这些废话不只是贵——它们让你更慢。你读完一段 300 字的回答,核心信息可能就 30 个字。在快节奏的开发中,每一秒都在燃烧。
有人终于忍不了了。
caveman 是什么?
caveman 是一个 Claude Code 插件,核心理念极其简单:
让 AI 像原始人一样说话——省字、直接、没废话。
同样的技术问题:
| 模式 | AI 的回答 | Token |
|---|---|---|
| 🗣️ 正常 | "The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle..." | 69 |
| 🪨 原始人 | "New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo." | 19 |
同样的修复方案。75% 更少的字。大脑依然好用。
四个等级的"咕噜"
caveman 不只是粗暴地删字,它提供了精细的压缩等级:
🪶 Lite(轻度)——去掉废话,保留完整语法。专业但紧凑。
🪨 Full(标准)——去掉冠词,允许碎片化,短同义词替换。经典原始人。
🔥 Ultra(极限)——缩写一切,箭头表示因果,能一个词绝不用两个。
📜 文言文——用人类历史上最省字的书面语言来压缩输出。
同一个问题"React 组件为什么重复渲染"在各等级下的回答:
- • Lite: "Your component re-renders because you create a new object reference each render. Wrap it in
useMemo." - • Full: "New object ref each render. Inline object prop = new ref = re-render. Wrap in
useMemo." - • Ultra: "Inline obj prop → new ref → re-render.
useMemo." - • 文言文: "物出新參照,致重繪。useMemo Wrap之。"
文言文模式——这可能是"中文+AI"最天才的交叉点。文言文本身就是一种高度压缩的信息编码方式,天然适合省 token。
安装:一行命令
Claude Code 用户:
claude plugin marketplace add JuliusBrussee/caveman && claude plugin install caveman@cavemanCodex、Gemini CLI、Cursor、Windsurf、Copilot、Cline……全部支持一行安装。安装后自动激活,/caveman 切换模式,"stop caveman" 退出。
不只是"说话省字"——四大技能
1. caveman-commit:极简提交信息
/caveman-commit 生成 Conventional Commits 格式提交信息,标题不超 50 字符,重在"为什么"而非"做了什么"。
2. caveman-review:一行代码审查
/caveman-review 一行搞定 PR 评论:L42: 🔴 bug: user null. Add guard. 没有寒暄,直击要害。
3. caveman-compress:输入端也省
这是最精妙的部分。caveman 让 AI 输出更省字,compress 让 AI 输入也更省。
你的 CLAUDE.md 每次会话启动都要加载。caveman-compress 把这些记忆文件重写成原始人格式——Claude 读得更少,你什么都不丢失:
| 文件 | 原始 Token | 压缩后 | 节省 |
|---|---|---|---|
| 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% |
原始人类可读版本会自动备份为 .original.md,随时可以还原。
4. caveman-help:速查卡
/caveman-help 一键显示所有模式、技能、命令的速查卡。
源码深挖:它是怎么做到的?
caveman 的核心其实非常轻量——它本质上是一个精心设计的 SKILL.md,也就是一段系统提示词,告诉 AI 如何压缩自己的表达。
核心规则(SKILL.md 解析)
压缩遵循以下模式:
- 1. 删除:冠词(a/an/the)、填充词(just/really/basically/actually)、客套话(sure/certainly/of course)、模糊表达
- 2. 替换:短同义词替换(big 不用 extensive,fix 不用 implement a solution for)
- 3. 保留:技术术语、代码块、错误信息——原封不动
- 4. 模式:
[事物] [动作] [原因]. [下一步].
一句话总结原始人语法的精髓:
Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
Yes: "Bug in auth middleware. Token expiry check use<not<=. Fix:"
compress 的工程实现
caveman-compress 的实现远比"改提示词"复杂。它是一个完整的 Python 工具链:
1. 文件类型检测(detect.py)
不是所有文件都能压缩。detect.py 通过扩展名 + 内容分析,将文件分为四类:
- •
natural_language:可压缩(.md, .txt 等) - •
code:跳过(.py, .js, .ts 等) - •
config:跳过(.json, .yaml, .toml 等) - •
unknown:跳过
对于无扩展名的文件(比如 CLAUDE.md、TODO),它会分析内容——检查 JSON/YAML 结构,统计代码行比例。如果代码行占比超过 40%,就归类为代码,不压缩。
2. 压缩引擎(compress.py)
调用 Claude API 将自然语言文本压缩为 caveman 格式。关键设计:
- • 敏感文件拒绝压缩:通过正则匹配文件名(.env、credentials、secrets、.pem 等)和路径(.ssh、.aws 等),防止凭据泄露到第三方 API
- • 最大文件 500KB:防止意外压缩大文件
- • 备份保护:如果
.original.md已存在,拒绝覆盖,防止数据丢失
3. 验证系统(validate.py)
压缩后必须验证——不能丢东西。validate.py 做了五项检查:
- • 标题完整性:压缩前后的 Markdown 标题数量和文本必须一致
- • 代码块完整性:所有 ``` 代码块必须原样保留
- • URL 完整性:所有链接必须保留
- • 路径完整性:文件路径必须保留
- • 列表结构:bullet 数量变化不超过 15%
如果验证失败,会调用 Claude 进行定点修复(cherry-pick fix),而不是重新压缩。最多重试 2 次,仍然失败则自动还原原始文件。
4. 安全设计
compress 把文件内容发送到 Anthropic API 进行压缩,这意味着一个潜在的数据安全风险。项目做了多层防护:
- • 敏感文件名正则拒绝
- • 敏感路径组件拒绝
- • 敏感内容关键词检测(secret、credential、password、apikey、token、privatekey)
- • 500KB 文件大小上限
基准测试:用数据说话
caveman 不只是声称省 75%,它真的做了对照实验。
输出端基准
在 Claude API 上跑的真实 token 计数:
| 任务 | 正常 Token | 原始人 Token | 节省 |
|---|---|---|---|
| 解释 React 重渲染 Bug | 1180 | 159 | 87% |
| 修复认证中间件 | 704 | 121 | 83% |
| 配置 PostgreSQL 连接池 | 2347 | 380 | 84% |
| Docker 多阶段构建 | 1042 | 290 | 72% |
| 调试 PostgreSQL 竞态条件 | 1200 | 232 | 81% |
| 实现 React Error Boundary | 3454 | 456 | 87% |
| 平均 | 1214 | 294 | 65% |
范围从 22% 到 87%,不同任务节省幅度不同,但平均 65% 是实打实的。
三臂对照实验
更严谨的是,caveman 不是拿"原始人 vs 啰嗦"这种不公平对比来凑数据。它的 eval 系统设计了三个组:
- 1. baseline:无任何系统提示,正常回答
- 2. terse control:加了"Answer concisely."的提示
- 3. caveman:使用 caveman skill
真正的比较是 caveman vs terse control——即 caveman 的技能在"已经要求简洁"的基础上,还能额外省多少。这才是科学的对照。
学术支撑
2026 年 3 月的一篇论文《Brevity Constraints Reverse Performance Hierarchies in Language Models》发现,限制大模型输出简洁回答时,某些基准的准确率反而提升了 26 个百分点。话多不一定对,少说话反而更准确。
智能降级:什么时候原始人也会说人话
caveman 不是无脑压缩。它在以下场景会自动切回正常模式:
- • 安全警告:涉及危险操作时
- • 不可逆操作确认:删除数据、重置系统等
- • 多步骤序列:碎片化表达可能导致顺序混淆时
- • 用户要求澄清:你追问时它会详细解释
比如遇到破坏性操作:
Warning: This will permanently delete all rows in the
userstable and cannot be undone.DROP TABLE users;Caveman resume. Verify backup exist first.
安全优先,然后才省字。这是正确的工程决策。
谁做了这个项目?
Julius Brussee,GitHub 上 620 个关注者,42 个公开仓库。不是什么大厂明星,但做过另一个有意思的项目 Cavekit——把自然语言变成蓝图,蓝图变成并行构建计划,构建计划变成可运行软件。
从 caveman 到 cavekit,Julius 似乎在探索一个核心问题:AI 的语言效率边界在哪里? 我们能让 AI 用最少的表达传递最多的信息吗?
33000 颗星说明很多人在思考这个问题。
我的思考:这不仅仅是一个省钱的工具
caveman 看起来是个"省 token"的小工具,但它触及了一个更深层的问题:
AI 的默认交互模式是有问题的。
大模型被训练成"友好、详细、周到"的助手——这对通用场景也许合适,但在编程这种高度结构化的场景下,效率才是第一优先级。程序员不需要 AI 的客套,需要的是精准的技术判断。
caveman 的成功说明了一件事:用户对 AI 冗长输出的忍耐已经到了极限。当 33000 个人给一个"让 AI 少说话"的项目点星,这不只是省钱的需求,这是对交互范式的抗议。
而文言文模式更是一个美丽的意外——它提醒我们,人类文明中早就存在比现代白话文更高效的信息编码方式。当 AI 遇到文言文,古代的智慧和现代的技术碰撞出了最省 token 的火花。
快速上手
# Claude Code
claude plugin marketplace add JuliusBrussee/caveman && claude plugin install caveman@caveman
# Gemini CLI
gemini extensions install https://github.com/JuliusBrussee/caveman
# Cursor / Windsurf / Copilot 等
npx skills add JuliusBrussee/caveman -a cursor # 或 windsurf / copilot / cline激活:/caveman 或 "talk like caveman"
退出:/caveman off 或 "stop caveman"
项目地址:https://github.com/JuliusBrussee/caveman
why use many token when few do trick 🪨
夜雨聆风