CLI для работы с изображениями: пакетно меняет размер, конвертирует и пережимает их по правилам из конфигурации и генерирует для них плейсхолдеры hazehash, blurhash и thumbhash.

Изображения редко приходят в том виде, в котором их нужно показывать, — вот четыре ситуации, где одни и те же две команды закрывают задачу целиком.
Один запуск image-batch с правилами из конфигурации раскладывает каждое изображение на нужные ширины в avif, webp и jpg, с именами по шаблону вроде hero-800w.webp. Конфигурация хранит только правила, так что та же самая подходит и для следующего проекта.
image-batch --replace уменьшает слишком большие изображения прямо на месте: сначала предпросмотр с настоящими размерами «до и после», затем подтверждение и бэкап с журналом, файл заменяется, только если стал меньше, а restore возвращает всё назад.
image-hash считает для каждого изображения компактный плейсхолдер — hazehash, blurhash или thumbhash — и записывает его в JSON, CSV или готовый TS-модуль. --check падает в CI, если файл с хешами устарел, так что плейсхолдеры не расходятся с картинками.
Без ключей размера image-batch ничего не уменьшает: image-batch ./photos -o ./out -f webp только меняет формат и качество, сохраняя размеры исходников. Предпросмотр, интерактивный выбор файлов и защита от перезаписи работают так же.

image-hash генерирует hazehash, blurhash и thumbhash для растровых изображений, а по запросу ещё и доминирующий цвет и крошечное превью. Принимает файлы, папки и URL, пишет в stdout, один файл или файл на каждое изображение (photo.jpg.blurhash.txt), в форматах json/plain/csv/ts/js. --check падает в CI, если файл с хешами устарел, а --dry-run показывает результат таблицей.

image-batch пакетно меняет размер, конвертирует и пережимает изображения по правилам из конфигурации: размеры, форматы, качество, имена файлов по шаблону. Результаты идут в отдельную папку, рядом с исходниками или поверх них — с подтверждением, резервной копией и командой restore; --dry-run показывает реальные размеры до и после.

mediatoolz ui запускает локальный веб-интерфейс: формы, таблицы и превью вместо флагов, файловый браузер для выбора папок, галерея плейсхолдеров рядом с изображениями, конфигурации и пресеты резкости с превью «до и после». Изменения файлов подтверждаются, оригиналы сохраняются в бэкап. Сервер слушает только 127.0.0.1 под одноразовым токеном.