Vomit: локальный LLM чистит «словесный мусор» Claude 5
Утилита Vomit перехватывает многословный вывод Claude 5 и прогоняет его через локальную языковую модель, превращая в читаемый текст.
Зачем вообще это нужно
Разработчик Зак Ан (zachahn) выпустил open-source утилиту Vomit — небольшой инструмент на Go, который перехватывает вывод Claude 5 и «переводит» его через локальную языковую модель в человекочитаемый текст. Проблема, которую он решает, знакома многим: стиль общения современных агентов стал настолько раздражающим, что буквально мешает работе — каждый ответ оптимизирован под «авторитетность», перегружен жаргоном и странными метафорами.
Claude Sonnet 5 использует примерно на 30% больше токенов, чем предыдущие модели, для эквивалентных задач. А значит, «словесный мусор» бьёт не только по удобству чтения, но и по кошельку.
Как работает Vomit
Vomit конвертирует «токенную рвоту» Claude в человеческий текст, пропуская её через локальный LLM. Утилита полностью локальна (без телеметрии) и не имеет внешних зависимостей.
graph LR
A[Claude 5
генерирует ответ] --> B[Хук MessageDisplay
перехватывает вывод]
B --> C[Vomit передаёт текст
локальному LLM]
C --> D[Очищенный ответ
отображается пользователю]
Инструмент отображает «исправленную» версию прямо в сессии вместо оригинального потока токенов — через хук MessageDisplay. При этом Vomit не трогает ничего в runtime, кроме записи файлов во временную директорию TMPDIR.
Установка и базовый сценарий
# Установка бинарника в GOPATH
go install github.com/zachahn/vomit@latest
# Настройка подключения к локальному LLM
vomit init
# Заменить вывод Claude через хуки
vomit scrub -claude
Режим наблюдателя (без вмешательства)
# Список сессий Claude
vomit list
# Перевод токенов для конкретной сессии (или последней)
vomit tail [<session_identifier>]
vomit init.Совместимые бэкенды
| Инструмент | Поддержка | Примечание |
|---|---|---|
| Llama.app | ✅ Рекомендован | Простейший старт на Mac |
| Ollama | ✅ Поддерживается | Популярный локальный раннер |
| OpenAI-совместимый API | ⚠️ Вероятно | Любой сервер с совместимым API |
Ограничения, о которых честно предупреждают
Локальный LLM видит только то, что Claude пытается сообщить (без доступа к файлам и действиям), поэтому иногда галлюцинирует. Существует вероятность полностью пропустить сообщение Claude.
Кроме того, утилита работает заметно медленнее стандартного вывода и на данный момент протестирована только на Mac.
«Забавно, когда “клодизмы” всё равно просачиваются — это ощущается, будто Claude пересилил маленький LLM, работающий на моём компьютере» — Зак Ан, автор Vomit
Автор с удивлением замечает: маленькая открытая модель GPT-OSS 20B от главного конкурента (OpenAI) обходит фронтирный Opus в качестве написания текста.
Контекст: почему проблема актуальна
Claude Sonnet 5 и некоторые модели Opus поддерживают extended thinking (расширенное мышление) — когда модель «думает» внутри, перед тем как выдать ответ. Это может добавлять тысячи токенов к одному запросу, причём незаметно: задача, которая выглядит как 400 токенов, может генерировать 3000+ thinking-токенов под капотом.
Vomit действует на другом уровне — он не борется с внутренними токенами мышления, а исправляет стиль итогового вывода. Это нишевый, но честный подход: вместо того чтобы просить саму Claude «писать лаконичнее» (и тратить на это ещё больше токенов), обработку отдают дешёвой локальной модели.
Итог
Vomit — это изящный «хак» в духе Unix-философии: одна утилита, одна задача, никаких внешних зависимостей. Проект распространяется под лицензией GNU GPLv3, код открыт на GitHub. Для тех, кого раздражает многословность Claude 5 в агентных сценариях — стоит попробовать, особенно если локальный LLM уже настроен.