lowfat — облегчение вывода CLI для экономии токенов AI-агентов

· 1 мин чтения
tokens cli rust optimization ai-coding
📂 Исходный код на GitHub

CLI-инструмент на Rust для фильтрации вывода команд перед отправкой в контекст AI-агента. Лёгкий, расширяемый через плагины, с интеграцией для Claude Code, OpenCode и Pi agent.

lowfat — облегчение вывода CLI для экономии токенов AI-агентов

Когда AI-агент выполняет команды в терминале, вывод часто содержит много лишнего: длинные списки файлов, подробные метаданные git, лишние пробелы и ANSI-коды. Всё это попадает в контекст LLM и расходует токены. lowfat — небольшой CLI-инструмент на Rust, который фильтрует шум из вывода команд до того, как он достигнет агента.

Репозиторий: github.com/zdk/lowfat

Принцип работы

lowfat встраивается между выполнением команды и отправкой результата в контекст AI-агента. Инструмент перехватывает вывод, пропускает его через конвейер фильтров и отдаёт очищенную версию. Фильтры убирают лишние строки, сокращают повторяющиеся блоки, удаляют ANSI-escape-последовательности и нормализуют формат.

Основной фокус проекта сформулирован в четырёх принципах:

  • Лёгкость — маленький бинарник, минимальное ядро, но расширяемость через плагины
  • Локальность — никакой телеметрии, все данные остаются на вашей машине
  • Компонуемость — UNIX-пайпы, смешивание встроенных и пользовательских фильтров
  • Пользовательская ориентацияlowfat history показывает, какие команды вы запускаете чаще всего, и помогает оптимизировать именно ваш сценарий

Способы интеграции

lowfat поддерживает несколько вариантов подключения к AI-агентам.

Claude Code hook

Добавьте в .claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{ "type": "command", "command": "lowfat hook" }]
      }
    ]
  }
}

Каждый вызов Bash автоматически прогоняется через lowfat.

Shell-интеграция

Автоматически активируется в средах агентов (CLAUDECODE=1, CODEX_ENV) или принудительно через LOWFAT_ENABLE=1:

echo 'eval "$(lowfat shell-init zsh)"' >> ~/.zshrc

OpenCode plugin

Одна команда — и плагин установлен:

lowfat opencode install

Команды прозрачно фильтруются перед выполнением. Удаление — lowfat opencode uninstall.

Pi agent

В ~/.pi/agent/settings.json:

{ "shellCommandPrefix": "eval \"$(lowfat shell-init zsh)\"; " }

Прямое использование

Можно просто добавить префикс к любой команде:

lowfat git status
lowfat docker ps
lowfat ls -la

Управление фильтрами

lowfat позволяет настраивать агрессивность фильтрации:

lowfat level ultra                # максимальное сжатие
LOWFAT_LEVEL=lite lowfat git log # разовое переопределение

Посмотреть состояние:

lowfat info                       # статус + активные фильтры
lowfat info git                   # конвейер для команды git
lowfat info --config              # полная конфигурация

Статистика экономии:

lowfat stats                      # общая экономия токенов
lowfat stats --audit              # последние выполнения плагинов
lowfat history                    # ранжирование команд по потенциалу экономии

Система плагинов

lowfat расширяем через собственный DSL .lf для написания фильтров:

lowfat plugin new terraform       # создать заготовку плагина
lowfat plugin doctor              # проверить плагины и зависимости

Тестирование плагина без установки:

cat samples/git-diff-full.txt | lowfat filter --explain ./filter.lf --sub=diff --level=ultra

Подробнее о DSL и расширениях — в документации PLUGINS.md в репозитории.

Установка

cargo install lowfat
# или
brew install zdk/tools/lowfat

Готовые бинарники доступны на странице релизов.

Альтернативы

В той же нише работают инструменты:

Архитектура и документация

В репозитории есть подробная документация:

  • ARCHITECTURE.md — диаграмма компонентов: CLI, Runner, Plugins, Builtins
  • CONFIG.md — файл конфигурации .lowfat, переменные окружения, DSL конвейера, встроенные процессоры
  • PLUGINS.md — DSL .lf, shell-хаки, PEP 723 + uv, промпт для AI-агента

Лицензия: Apache-2.0. Язык реализации: Rust.

Источник: https://github.com/zdk/lowfat