Дата публикации
ai_products

Lowfat: CLI-фильтр, который экономит до 91,8% токенов у LLM-агентов

Что нового

Lowfat — это небольшой CLI-инструмент, который чистит вывод терминала перед тем, как вы отправите его в LLM-агента. Автор заявляет экономию токенов до 91,8% на реальных сценариях работы с консолью.

Ключевые особенности:

  • Экономия токенов: за счет агрессивной фильтрации «шума» в выводе команд (например, git diff, docker ps, длинные логи). Цифра — до 91,8% срезанных токенов.
  • Один небольшой бинарник: минимальное ядро, без стороннего бекенда. Всё крутится локально.
  • Локальная работа: нет телеметрии, данные не улетают на серверы разработчика.
  • Композиция по-UNIX-стилю: фильтры собираются в пайплайны, можно смешивать встроенные и свои.
  • Пользовательская история: Lowfat ведёт историю команд и показывает, на чем вы экономите больше всего — можно тонко подстроить фильтры под свои сценарии.

Инструмент уже интегрируется с:

  • Claude Code (через hook в .claude/settings.json)
  • shell-сессиями (через shell-init и переменные окружения)
  • OpenCode (плагин ставится одной командой)
  • Pi agent (через префикс в ~/.pi/agent/settings.json)

Как это работает

Идея простая: вместо того, чтобы скармливать LLM-агенту сырые километры вывода консоли, вы пропускаете его через Lowfat. Инструмент обрезает лишнее, оставляет только то, что действительно нужно для ответа модели, и уже это попадает в контекст.

Под капотом несколько уровней:

  1. CLI-обертка

    Вы запускаете команды с префиксом:

    lowfat git status
    lowfat docker ps
    lowfat ls -la
    

    Или Lowfat внедряется в окружение агента и переписывает команды автоматически (Claude Code, OpenCode, Pi agent, shell-интеграция).

  2. Runner и пайплайны

    Для каждой команды Lowfat строит конвейер фильтров. Это может быть набор встроенных процессоров и пользовательских плагинов. Пайплайны описываются в конфиге .lowfat и через DSL, напоминающий UNIX-пайпы.

  3. Фильтры и плагины

    • Встроенные фильтры отвечают за типичные сценарии: обрезка длинных диффов, логов, повторяющихся блоков.
    • Пользовательские плагины пишутся на DSL lf-filter (.lf файлы). Есть shell-«выходы» и поддержка Python через PEP 723 и uv.
    • Lowfat может запускать плагины и объяснять, что именно они выкинули из вывода.
  4. Уровни агрессивности

    Есть преднастроенные уровни, например:

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

    Вы можете глобально выставить уровень или менять его точечно для отдельных команд.

  5. История и статистика

    Lowfat собирает локальную статистику:

    lowfat info         # статус и активные фильтры
    lowfat info git     # пайплайн для `git`
    lowfat info --config # итоговая конфигурация
    
    lowfat stats        # суммарная экономия токенов
    lowfat stats --audit # последние запуски плагинов
    lowfat history      # команды, на которых больше всего экономии
    

    Это помогает понять, где вы реально тратите токены и где стоит ужесточить фильтрацию.

Что это значит для вас

Когда Lowfat полезен

Lowfat имеет смысл, если вы:

  • активно пользуетесь LLM-агентами, которые читают вывод терминала: Claude Code, OpenCode, Pi agent и похожие инструменты;
  • часто запускаете команды с огромным выводом: git diff, git log, docker ps, kubectl get ..., длинные тестовые логи;
  • платите за токены (или упираетесь в лимит контекста) и хотите сократить стоимость сессий;
  • предпочитаете локальные инструменты без телеметрии.

Реальный сценарий: вы открываете Claude Code, запускаете git diff на большом репозитории, а агенту нужно только понять, какие файлы поменялись и где логика. Lowfat вырежет шум, оставит сжатую версию диффа и сэкономит до тех самых 91,8% токенов.

Где он не нужен

Lowfat вряд ли пригодится, если:

  • вы почти не используете терминал в связке с LLM;
  • ваш вывод команд обычно короткий;
  • вы не пишете плагины и не хотите настраивать пайплайны — тогда вы ограничитесь только встроенными фильтрами.

Вопросы приватности и доступности

  • Lowfat работает полностью локально: нет удалённого сервера, нет телеметрии.
  • Инструмент распространяется через Cargo, Homebrew и готовые бинарники на GitHub Releases. GitHub в России доступен, но может потребовать VPN в некоторых сетях.
  • Конфиги и история хранятся у вас: .lowfat, ~/.config/opencode/plugins/lowfat.ts, ~/.pi/agent/settings.json и т.п.

Если вы принципиально избегаете сторонних CLI-утилит или не хотите вмешиваться в конфигурацию агентов, Lowfat не ваш вариант. Но если вы уже живёте в терминале и LLM-агентах, инструмент хорошо ложится в существующий рабочий процесс.

Место на рынке

Lowfat занимает нишу оптимизации токенов для CLI-ориентированных LLM-агентов. Это не ещё один чат-клиент к GPT-4 или Claude 3, а прослойка между терминалом и агентом.

Отличительные черты по сравнению с типичными подходами:

  • Большинство IDE-плагинов и агентных оболочек либо отправляют вывод как есть, либо применяют простое усечение по длине. Lowfat строит настраиваемые пайплайны и даёт DSL для фильтрации.
  • Множество «экономящих токены» решений завязаны на облако или сторонний API. Lowfat — локальный бинарник без телеметрии.
  • Некоторые агенты имеют встроенные эвристики сжатия вывода, но их сложно контролировать. Lowfat, наоборот, прозрачен: можно посмотреть конфиг, историю, уровень агрессивности и конкретные плагины.

Чётких цифр по сравнению с другими инструментами автор не приводит. Есть только один жёсткий ориентир — 91,8% экономии токенов в его собственных сценариях.

Установка

Lowfat распространяется как Rust-бинарник и через Homebrew. Есть и готовые сборки на GitHub.

Через Cargo

cargo install lowfat

Через Homebrew

brew install zdk/tools/lowfat

Готовые бинарники

На странице GitHub Releases проекта лежат предсобранные бинарники для популярных платформ. Их можно скачать вручную и добавить в PATH.

Как запустить

Ниже — все варианты интеграции из исходного описания, без сокращений.

1. Хук для Claude Code

Добавьте в файл ~/.claude/settings.json:

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

С этого момента перед запуском bash-команд в Claude Code будет срабатывать Lowfat.

2. Интеграция с shell

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

Добавьте в ~/.zshrc (или ~/.bashrc):

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

После перезапуска shell Lowfat начнёт перехватывать и фильтровать вывод внутри агентных окружений.

3. Плагин для OpenCode

Установка одной командой, без ручного редактирования конфигов:

lowfat opencode install  # пишет ~/.config/opencode/plugins/lowfat.ts

Затем перезапустите OpenCode — команды начнут переписываться прозрачно, до выполнения. Удалить плагин можно так:

lowfat opencode uninstall

4. Прямой запуск

Если не хотите трогать конфиги агентов, можно просто префиксовать команды:

lowfat git status
lowfat docker ps
lowfat ls -la

5. Интеграция с Pi agent

В файл ~/.pi/agent/settings.json добавьте:

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

Теперь Pi agent будет запускать shell-команды через Lowfat.

Повседневное использование

Несколько полезных команд из документации.

Проверка конфигурации и фильтров

lowfat info          # статус и активные фильтры
lowfat info git      # пайплайн для `git`
lowfat info --config # полный разрешённый конфиг

Статистика экономии токенов

lowfat stats         # суммарная экономия токенов за всё время
lowfat stats --audit # аудит последних запусков плагинов
lowfat history       # рейтинг команд по потенциальной экономии

Настройка уровня агрессивности

lowfat level ultra          # максимально агрессивная фильтрация
LOWFAT_LEVEL=lite lowfat git log  # разовый мягкий режим для одной команды

Создание и проверка плагинов

Создать новый плагин для, например, Terraform:

lowfat plugin new terraform  # создаёт ~/.lowfat/plugins/terraform/

Проверить плагины и при необходимости подтянуть Python-зависимости:

lowfat plugin doctor

Протестировать плагин на примере, не устанавливая его:

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

Документация и лицензия

Проект сопровождается несколькими ключевыми документами:

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

Лицензия проекта — Apache-2.0.

Автор прямо пишет, что при разработке Lowfat использовал несколько AI-инструментов. Это честный дисклеймер, который хорошо сочетается с самой идеей — экономить ресурсы LLM там, где они действительно нужны.


Читайте также

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