大家好,我是何三,独立开发者
你给 Claude Code 发了一条指令。它收到了一堆废话。
1241 个 token 的 git diff 输出,真正有用的不到 40 个 token——97% 都是噪音。这不是我的推测,这是 zdk/lowfat 实测出来的数据。一个刚在 Hacker News 拿到 150+ points 的 Rust 项目,专治 AI 编程的 Token 浪费。
用过 AI 编程的人应该都懂那种感觉——Claude Code 或者 Copilot 接到指令后,先花大量 token 去消化那些毫无意义的终端输出。git status 打印了一堆 "use git add \<file>..." 的提示文字,git log 重复渲染了每个 commit 的元数据边框,ls -la 里夹杂着隐藏文件的权限信息。
这些信息对 AI 理解你的意图没有任何帮助。
但它们照吞不误,然后算你的钱。
Lowfat 干的事很简单:把命令输出里的废话滤掉,只把有信息量的部分喂给 AI。

效果有多离谱?你自己看:
| 命令 | 原始输出 | ultra 级别 |
|---|---|---|
git diff |
— | 减少 96% |
git log |
— | 减少 91% |
git status |
— | 减少 74% |
docker ps |
— | 减少 85% |
ls -la |
— | 减少 87% |
对,你没看错。git diff 的输出能砍掉 96%,git log 砍 91%。跟竞品 rtk 的头对头对比里,Lowfat 的 git 相关命令压缩率直接碾压——git log 压缩 97% vs rtk 的 56%,git status 压缩 91% vs rtk 的 79%。
换句话说,同样的上下文窗口,别人能跑 1 轮对话,你能跑 4 轮。
它是怎么做到的
原理说穿了不值钱。
Lowfat 不是一个通用的文本压缩器。它针对每种命令,都写了一套「哪些有用、哪些是废话」的规则。
比如 git status 的输出——AI 开发者真正需要知道的是:
1. 当前在哪个分支
2. 哪些文件被修改了
3. 哪些文件还没被追踪
至于 "use git add \<file> to update what will be committed" 这种提示文字、空行分隔符、表格边框——统统扔掉。
git diff 更狠。你给 AI 看一个 diff,它需要的是修改了哪几行、改了什么内容。不需要知道文件路径用几个反引号括起来的、行号前那几个空格偏移量有多少。Lowfat 把这些全剪了,剩下纯粹的代码变更信息,AI 一样理解。
这东西怎么说呢……就是那种,你知道了以后会拍大腿说「为什么我没早点想到」的解决方案。
说到这个我就想起之前做的一个项目,当时为了省 token 费,我自己写了个 shell 脚本过滤 git diff 的输出,写了三版都没写好,不是过滤过头把有用信息删了,就是过滤不够省不下来。最后放弃了,心想"算了,token 才几个钱"。结果 Lowfat 的作者直接把这事儿做成了通用工具,还开源了。
真的服气。
大白话总结:Lowfat 就是个给 AI 程序员用的「去废话过滤器」,把终端命令输出里 AI 不该吃进去的垃圾扔掉,省你的 token 钱。
怎么装、怎么用
安装就两行的事:
# 用 Cargo 装
cargo install lowfat
# 或者用 Homebrew
brew install zdk/tools/lowfat
Rust 编译的单二进制,轻到没感觉。
装完之后,最常用的用法就是给 git 命令加个前缀:
lowfat git status
lowfat git diff
lowfat git log
效果立竿见影——肉眼可见输出变短了,信息密度高了。
但 Lowfat 真正的杀招是跟 AI 编程工具的集成。比如 Claude Code,你只需在 .claude/settings.json 里加一段配置:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": "lowfat hook" }]
}
]
}
}
之后 Claude Code 每次执行 bash 命令,输出都会先过一遍 Lowfat 再喂给 LLM。你就正常写代码,它在后台默默帮你省 token。
还有一个更绝的用法——装到 shell 里自动激活:
echo 'eval "$(lowfat shell-init zsh)"' >> ~/.zshrc
它会自动检测你是不是在 Claude Code、Codex 这类 AI 环境里,是就自动开始过滤,不是就乖乖闭嘴不干活。设置 LOWFAT_ENABLE=1 可以强制在任何终端都开启。
Lowfat 还内置了一个小仪表盘:
lowfat stats # 看看省了多少 token
lowfat history # 哪个命令帮你省得最多
lowfat level ultra # 调成最强压缩模式
打开 lowfat stats 看到那串数字的时候——说实话,这个效果我真的太爱了。
跟 rtk 比怎么样
Lowfat 不是这个赛道唯一的选手。最接近的竞品是 rtk,装机量更大,集成的工具链更多(支持 Claude Code、Copilot、Gemini、Codex 等 14 种工具)。
但两者理念不太一样:
- rtk 是"全家桶"风格,内置了 100+ 命令的过滤规则,开箱即用
- Lowfat 是"极简内核 + 可扩展"风格,内置 6 个核心命令(git、docker、ls、grep、find、tree),但你可以用
.lfDSL 自己写过滤规则
说实话,如果你只用 Claude Code 或 Copilot,不太折腾,rtk 的即插即用更适合你。但如果你习惯自己调教工具链,Lowfat 的灵活性会让你觉得——这玩意儿的架构设计得真干净。
为什么这么设计?别问我,问作者去。反正我个人更喜欢 Lowfat 的路线,就那种 UNIX 哲学那种感觉,一个工具只做好一件事。
另外,Lowfat 的官方文档写得不错——ARCHITECTURE.md 里有详细的架构图和插件开发指南。如果你会写简单的脚本,照着写一个自己的 filter 很有意思。
一些值得说的细节
Lowfat 支持三级压缩:lite(轻度)、full(中度)、ultra(激进)。
ultra 模式会把能删的都删了,但有可能删掉 AI 需要的上下文。比如 find 命令在 ultra 模式下才会开始压缩,这说明作者保留了克制——不是所有输出都无脑压缩。
还有一点让我挺舒服的:这东西完全本地运行,不上传任何数据。没有遥测,没有后台,你的代码数据你自己掌握。对比某些 AI IDE 插件偷偷把数据往外传的骚操作,Lowfat 这种"local-first"的立场让我觉得作者是个实在人。
总结
Lowfat 解决了一个真实痛点——AI 编程时代,Token 就是钱。git diff 输出减少 96%、git log 减少 91%,这些数字不是噱头,是实测结果。一个轻量级的 Rust 单二进制,装好之后它就在后台默默工作,省下来的 token 不会让你暴富,但日积月累,差的不是一星半点。
装不装都行,看你自己。反正我已经装上了。
GitHub 地址:https://github.com/zdk/lowfat
本文使用 MGO 编辑并发布
关注"何三笔记",回复"mgo" 免费下载使用