zdk/lowfat

lowfat - slim your command output. strips noise, saves tokens.

lowfat – 精简 CLI 输出以节省 AI token 成本

它是什么 – lowfat 是一个小巧的单二进制命令行工具,位于你的 shell(或 AI 助手集成)和你运行的命令之间。它在文本发送到大型语言模型(LLM)代理之前,过滤并压缩命令和文件的文本输出,从而减少模型需要处理的 token 数量。

为什么重要 – LLM 按 token 收费。当 AI 助手运行 shell 命令(例如 git diff)并将原始输出输入模型时,大量文本是噪音(状态消息、未更改的行、注释等)。lowfat 会移除或折叠这些噪音,让相同的命令以更少的 token 传达必要信息。


核心概念

概念 含义
轻量级 一个小型 Rust 二进制文件;额外行为通过插件添加。
本地优先 无遥测 – 所有数据都保留在你的机器上。
可组合 像任何 Unix 过滤器(`
用户自有 lowfat history 显示哪些命令节省了最多的 token,让你根据自己的工作流程调整过滤器。

工作原理

  1. 工具前钩子 – 在命令运行之前,lowfat 使用过滤器管道重写命令(或其参数)。
  2. 读取后钩子 – 在代理(例如 Claude)读取文件后,lowfat post-read 压缩文件内容(去除注释、截断大型数组、总结锁文件等)。
  3. 级别 – 三种压缩级别:
    • lite – 轻度修剪,对大多数情况安全。
    • full – 更强的削减(例如,删除未更改的 diff 块)。
    • ultra – 最大压缩(折叠函数体,仅保留签名)。
  4. 插件 – 使用 .lf DSL、shell 或 Python(PEP 723/uv)编写你自己的过滤器。内置集合涵盖常见工具,如 git、docker、grep、find、ls 和 tree。

安装

# 通过 Cargo(Rust 包管理器)
cargo install lowfat
# 或 Homebrew(macOS/Linux)
brew install zdk/tools/lowfat

预编译二进制文件也可在 GitHub Releases 页面获取。


快速开始

# 通过 lowfat 运行命令
lowfat git status
lowfat docker ps
lowfat ls -la

# 显示配置的过滤器及其响度
lowfat info
lowfat info git

# 查看到目前为止节省了多少 token
lowfat stats
lowfat stats --audit   # 最近的插件运行
lowfat history          # 按潜在节省量对命令排序

# 动态更改压缩级别
lowfat level ultra          # 为会话设置默认值
LOWFAT_LEVEL=lite lowfat git log   # 一次性覆盖

代理集成

  • Claude Code – 在 ~/.claude/settings.json 中添加一个钩子,使每个 Bash 命令自动通过 lowfat。
  • OpenCode – lowfat opencode install 为检测到的 OpenCode 版本放置适当的插件;命令会被透明地重写。
  • Shell – eval "$(lowfat shell-init zsh)"(或 bash)添加一个包装器,当存在 CLAUDECODE=1 等环境变量或设置 LOWFAT_ENABLE=1 时激活 lowfat。
  • Pi 代理 – 在代理的 shellCommandPrefix 中添加 eval "$(lowfat shell-init zsh)";。

文件内容压缩(post-read)

类型 lowfat 的作用
源代码(Rust、Python 等) 去除注释,规范化空白;ultra 将函数体折叠为签名
Markdown 移除徽章/HTML 注释,截断长代码块和表格
HTML / Vue / Svelte 删除 <style>/<script> 部分,可选仅保留文本
JSON / JSONC 截断大型数组,折叠深层嵌套
锁文件(Cargo.lock、package-lock.json 等) 替换为简短摘要(包数量 + 顶级依赖)
未知 保留头部和尾部并附行数说明

节省少于约 10% 的文件将原样传递。


性能快照(示例仓库)

命令 lite 下的缩减 full ultra
git diff –16% –38% –96%
git log –53% –80% –91%
git status –62% –62% –74%
docker ps –38% –38% –85%
ls -la –2% –75% –87%

这些数字反映原始输出的 token 缩减;实际节省取决于你的 LLM 提示中有多少是命令输出。


与类似工具的比较

特性 lowfat rtk(最接近的竞争对手)
核心大小 最小二进制,插件驱动 功能齐全的巨石
内置命令 6 个精选(git、docker、grep、find、ls、tree) 100+
自定义过滤器语言 .lf DSL + shell + Python TOML DSL
压缩级别 lite/full/ultra --aggressive、--ultra-compact
读取后文件压缩 是(代码、markdown、HTML、JSON、锁文件) 有限
遥测 无 可选,匿名聚合
节省分析 本地 stats 和 history 本地 gain 和 discover

许可证与来源

  • 许可证 – Apache-2.0(宽松,商业友好)。
  • AI 声明 – 项目承认开发过程中使用了多种 AI 工具。

结论

lowfat 是一个实用、隐私优先的工具,适用于任何使用 LLM 驱动的编码助手(Claude、OpenCode、Pi 等)并希望通过修剪嘈杂的 CLI 输出和文件内容来降低 token 成本的人。其插件架构允许你扩展工具以支持任何你依赖的命令,而内置集成使其易于融入现有的 AI 代理工作流程。

相关

  • Dispatch
  • 项目
  • 项目
  • 项目
  • 项目