zdk/lowfat

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

lowfat – CLI 出力をトリミングして AI トークンコストを節約

概要 – lowfat は、シェル(または AI アシスタント統合)と実行するコマンドの間に位置する、小さな単一バイナリのコマンドラインツールです。コマンドとファイルのテキスト出力を、そのテキストが大規模言語モデル(LLM)エージェントに送信される前にフィルタリングして圧縮し、モデルが処理する必要のあるトークン数を削減します。

重要性 – LLM はトークンごとに課金されます。AI アシスタントがシェルコマンド(例:git diff)を実行し、その生の出力をモデルに送ると、テキストの多くはノイズ(ステータスメッセージ、変更されていない行、コメントなど)です。lowfat はそのノイズを除去または圧縮し、同じコマンドがはるかに少ないトークンで必須情報を伝達できるようにします。


コアアイデア

アイデア 意味
軽量 小さな Rust バイナリ。追加の動作はプラグインで追加されます。
ローカルファースト テレメトリなし – すべてのデータはマシン上に留まります。
構成可能 任意の Unix フィルタ(`
ユーザー所有 lowfat history はどのコマンドが最も多くのトークンを節約したかを示し、自分のワークフローに合わせてフィルタを調整できます。

仕組み

  1. ツール前フック – コマンドが実行される前に、lowfat はフィルタパイプラインを使用してコマンド(またはその引数)を書き換えます。
  2. 読み取り後フック – エージェント(例:Claude)がファイルを読み取った後、lowfat post-read はファイル内容を圧縮します(コメントの削除、大きな配列の切り詰め、ロックファイルの要約など)。
  3. レベル – 3 つの圧縮レベル:
    • lite – 軽度のトリミングで、ほとんどの場合に安全です。
    • full – より強力な削減(例:変更されていない diff ハンクを削除)。
    • ultra – 最大圧縮(関数本体を折りたたみ、シグネチャのみ保持)。
  4. プラグイン – .lf DSL、シェル、または 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

# これまでに節約したトークン数を確認
lowfat stats
lowfat stats --audit   # 最近のプラグイン実行
lowfat history          # 潜在的な節約量でコマンドをランク付け

# 圧縮レベルを動的に変更
lowfat level ultra          # セッションのデフォルトを設定
LOWFAT_LEVEL=lite lowfat git log   # 1 回限りのオーバーライド

エージェント統合

  • Claude Code – ~/.claude/settings.json にフックを追加して、すべての Bash コマンドが自動的に lowfat を通過するようにします。
  • OpenCode – lowfat opencode install は、検出された OpenCode バージョンに適切なプラグインを配置します。コマンドは透過的に書き換えられます。
  • シェル – 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%

これらの数値は生出力のトークン削減を反映しています。実際の節約は、LLM プロンプトのどれだけがコマンド出力で構成されているかによって異なります。


類似ツールとの比較

機能 lowfat rtk(最も近い競合)
コアサイズ 最小バイナリ、プラグイン駆動 バッテリー同梱のモノリス
組み込みコマンド 6 つの厳選(git、docker、grep、find、ls、tree) 100+
カスタムフィルタ言語 .lf DSL + シェル + 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 出力とファイル内容をトリミングしてトークンコストを低く抑えたい人にとって、実用的でプライバシー優先のユーティリティです。プラグインアーキテクチャにより、依存する任意のコマンドにツールを拡張でき、組み込み統合により既存の AI エージェントワークフローに簡単に組み込めます。

関連

  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト