Squoosh CLI

Squoosh CLI

Последняя версия: 0.7
Скачали: 7

Squoosh CLI — консольная программа из экосистемы Squoosh, рассчитанная на оптимизацию изображений через командную строку. Она переносит часть логики Squoosh.app из браузерного интерфейса в терминал: пользователь выбирает кодек, задаёт параметры сжатия, указывает входные файлы и получает оптимизированные изображения без ручной загрузки каждого файла в графический интерфейс. Инструмент появился вместе с Squoosh v2: в этой версии добавили поддержку OxiPNG, MozJPEG, WebP, AVIF и отдельный способ работы через командную строку.

Главная задача Squoosh CLI — не ретушь, не рисование и не полноценное редактирование, а подготовка изображений для веба: уменьшение веса JPEG и PNG, выпуск WebP и AVIF, пакетная оптимизация каталога, настройка качества и сохранение результата в отдельную папку. Для ручной обработки отдельных снимков удобнее Squoosh.app, GIMP, Paint.NET или XnView MP; Squoosh CLI сильнее там, где одну и ту же операцию нужно повторить на десятках файлов.

Squoosh CLI работает как npm-пакет @squoosh/cli и запускается командой squoosh-cli. Его интерфейс состоит из флагов: --webp, --avif, --mozjpeg, --oxipng, --resize, --quant, --rotate, -d, -s, -h. Пользователь не нажимает кнопки в окне программы, а собирает команду: выбирает формат вывода, передаёт конфигурацию кодека, задаёт папку вывода и список файлов. Такой формат подходит разработчикам, администраторам сайтов, авторам статических блогов и тем, кто ведёт регулярную оптимизацию графики перед публикацией.

Стартовый экран Squoosh с областью Drop OR Paste

Squoosh.app остаётся визуальной частью экосистемы: в браузере видны область Drop OR Paste, сравнение исходника и результата, настройки Resize, Reduce palette, Compress, выбор кодека и кнопка выгрузки результата. Squoosh CLI решает другую задачу: те же идеи оптимизации переносятся в повторяемые команды, которые легко использовать в терминале, npm-скриптах и рабочих пайплайнах.

Краткая карточка программы

ПараметрЗначение
НазваниеSquoosh CLI
Консольная командаsquoosh-cli
npm-пакет@squoosh/cli
ЭкосистемаSquoosh / GoogleChromeLabs
Тип программыконсольный оптимизатор и конвертер изображений
Основной интерфейскомандная строка
Базовый запускnpx @squoosh/cli [parameters]
Глобальная команда после установкиsquoosh-cli [options]
Основные кодеки выводаMozJPEG, WebP, AVIF, OxiPNG
Дополнительные кодеки в справке CLIJPEG XL через --jxl, WebP2 через --wp2
Предобработка--resize, --quant, --rotate
Управление выводом-d, --output-dir, -s, --suffix
Лицензия проекта SquooshApache-2.0
Основной сценарийпакетная оптимизация изображений для сайта
Не подходит дляретуши, слоёв, масок, рисования, сложной цветокоррекции
Статус CLIкод CLI и libSquoosh удалены из основного репозитория Squoosh в январе 2023 года; веб-приложение продолжило развиваться отдельно

Squoosh CLI стоит рассматривать как специализированный инструмент. Он не заменяет графический редактор, не показывает предпросмотр каждого результата и не помогает вручную исправлять дефекты изображения. Зато он быстро переводит рабочий процесс в формат команды: одна строка обрабатывает файл, маску файлов или набор путей, а результат складывается в нужную папку.

Для пользователя без опыта терминала Squoosh CLI выглядит менее наглядно, чем Squoosh.app. Для разработчика именно отсутствие окна становится преимуществом: команду легко положить в package.json, добавить в инструкцию проекта, использовать перед публикацией статического сайта или повторить на другом компьютере с теми же параметрами.

Что такое Squoosh CLI и для каких задач нужна программа

Squoosh CLI — консольная оболочка для кодеков Squoosh. Она принимает изображения как входные файлы, запускает обработку через выбранный кодек и создаёт новые файлы в формате, который задан флагом. Флаг --webp формирует .webp, --avif формирует .avif, --mozjpeg формирует .jpg, --oxipng формирует оптимизированный .png. В одной команде также используются операции предобработки: изменение размера через --resize, сокращение количества цветов через --quant, поворот через --rotate.

Программа нужна в ситуациях, где ручной экспорт утомляет или создаёт риск разнобоя в настройках. Для одной фотографии достаточно открыть Squoosh.app, выбрать кодек и сохранить результат. Для 200 изображений каталога товаров, набора иллюстраций к инструкции или архива скриншотов удобнее один раз подобрать параметры и затем применить их ко всему набору.

Типовые задачи Squoosh CLI:

  • сжатие JPEG-файлов через MozJPEG перед загрузкой на сайт;

  • конвертация PNG и JPEG в WebP;

  • выпуск AVIF-версий для современных браузеров;

  • оптимизация PNG через OxiPNG без смены расширения;

  • уменьшение ширины и высоты изображений перед сжатием;

  • пакетная обработка файлов по маске *.jpg, *.png;

  • сохранение результата в отдельный каталог через -d;

  • добавление суффикса к имени результата через -s;

  • подготовка нескольких форматов одного изображения для разметки
    .

Сильная сторона Squoosh CLI — повторяемость. Команда фиксирует параметры обработки, поэтому разные сотрудники проекта получают одинаковый результат. При ручной работе в интерфейсе пользователь легко меняет качество, забывает включить Resize или сохраняет часть файлов в другом формате. В терминале параметры записаны явно: кодек, качество, папка вывода и список файлов видны в одной строке.

Squoosh CLI особенно полезен в проектах, где изображения лежат рядом с кодом: лендинги, документация, статические блоги, каталоги интерфейсных иллюстраций, шаблоны сайтов. В таком окружении оптимизация картинок для веба становится частью подготовки релиза, а не отдельной ручной операцией.

Как устроена логика работы

Squoosh CLI написан на Node и использует WebAssembly-модули, которые применяются в Squoosh PWA. Для параллельной обработки задействуются workers: изображения декодируются, обрабатываются и кодируются параллельно, поэтому одна команда применяет одинаковый кодек сразу к нескольким файлам.

Рабочая схема состоит из четырёх этапов.

ЭтапЧто происходитЧто задаёт пользователь
ВводCLI получает путь к одному файлу, нескольким файлам или маскеimage.jpg, *.png, assets/*
Предобработкаизображение уменьшается, поворачивается или проходит палитровое сокращение--resize, --rotate, --quant
Кодированиевыбранный кодек создаёт новый файл--mozjpeg, --webp, --avif, --oxipng
Выводфайл сохраняется рядом с исходником или в отдельной папке-d output, -s -min

Такая структура отделяет Squoosh CLI от обычных просмотрщиков и конвертеров. FastStone Image Viewer, IrfanView и XnView удобны для просмотра, сортировки и ручного запуска пакетных операций. Squoosh CLI не показывает каталог изображений, зато позволяет встроить обработку в командную строку и повторять её без открытия окон.

Для веб-разработчика Squoosh CLI ближе к инструментам сборки, чем к редактору. Команда запускается перед публикацией сайта, после экспорта иллюстраций из редактора или после добавления новых файлов в папку проекта. Кодеки Squoosh работают локально, поэтому изображения обрабатываются на компьютере пользователя, а не через внешнюю облачную очередь. У Squoosh.app эта же приватная логика: изображения не отправляются на сервер, сжатие выполняется локально.

Интерфейс: команды вместо кнопок

У Squoosh CLI нет привычного графического окна, панели инструментов и кнопок Open, Save, Export. Управление идёт через терминал. Главное окно программы заменяет строка команды, а настройки представлены флагами.

Базовый синтаксис выглядит так:

squoosh-cli [options] 

В этом синтаксисе options — параметры обработки, а — один или несколько входных файлов. Самая короткая команда задаёт только кодек и файл:

squoosh-cli --webp auto image.jpg

Эта команда создаёт WebP-версию файла image.jpg с автоматическим подбором параметров для WebP. В более контролируемом варианте пользователь передаёт конфигурацию:

squoosh-cli --webp '{"quality":75}' image.jpg

Папка вывода добавляется флагом -d:

squoosh-cli --webp '{"quality":75}' -d output image.jpg

Суффикс к имени результата задаётся через -s:

squoosh-cli --webp '{"quality":75}' -s -webp image.jpg

Справка выводится через -h или --help, версия — через -V или --version. В справке перечислены основные флаги: -d, -s, --max-optimizer-rounds, --optimizer-butteraugli-target, --resize, --quant, --rotate, --mozjpeg, --webp, --avif, --jxl, --wp2, --oxipng, -h.

Кнопка Copy npx command в интерфейсном сценарии Squoosh CLI

В визуальном интерфейсе Squoosh настройки кодека находятся в блоке Compress: пользователь выбирает, например, MozJPEG, меняет Quality, раскрывает Advanced settings, включает Resize или Reduce palette. CLI-подход переносит эти настройки в текстовую конфигурацию. Поэтому команда иногда получается длинной: в ней перечислены параметры качества, подвыборки цвета, фильтрации, прогрессивной записи и других внутренних настроек кодека.

Важная особенность интерфейса Squoosh CLI — чувствительность к кавычкам. В Bash и PowerShell удобно использовать одинарные кавычки вокруг JSON-конфигурации:

squoosh-cli --webp '{"quality":75}' image.png

В Windows Command Prompt применяют экранирование двойных кавычек:

squoosh-cli --webp "{\"quality\":75}" image.png

Такой нюанс не связан с кодеком. Это особенность оболочки, которая передаёт строку программе. GitHub-обсуждения Squoosh CLI фиксируют типичные ошибки Windows-пользователей именно вокруг кавычек и JSON-параметров.

История Squoosh и появление CLI

Squoosh стартовал как веб-приложение для экспериментов с форматами изображений. Первая публичная история проекта связана с Chrome Dev Summit 2018: команда ChromeLabs использовала Squoosh, чтобы показать возможности современного веба и работу кодеков в браузере. В Squoosh.app пользователь загружает изображение, выбирает кодек и сравнивает исходник с результатом прямо на странице.

Версия Squoosh v2 стала поворотной для консольного сценария. В ней добавили поддержку OxiPNG, MozJPEG, WebP и AVIF, обновили дизайн и представили Squoosh CLI. Главная причина появления консольной версии — потребность работать с Squoosh программно и без интерфейса. Пользователям было нужно не только сравнить один файл в браузере, но и применить одинаковые параметры к набору изображений.

Squoosh CLI закрыл именно этот разрыв. Squoosh.app оставался удобным для подбора параметров и визуального контроля, а CLI переносил результат в повторяемую команду. В таком сценарии сначала подбирают качество и формат на одном изображении, затем запускают обработку каталога в терминале.

Поддерживаемые форматы и кодеки

Squoosh CLI не является универсальным редактором всех графических форматов. Его сильная область — веб-кодеки и оптимизация растровых изображений. В справке программы доступны флаги вывода для MozJPEG, WebP, AVIF, JPEG XL, WebP2 и OxiPNG.

MozJPEG

MozJPEG используется через флаг --mozjpeg и создаёт .jpg. Этот вариант подходит для фотографий, иллюстраций без прозрачности, обложек статей, карточек товаров и изображений, где JPEG остаётся приемлемым форматом. В настройках часто используют quality, а в развёрнутых конфигурациях встречаются параметры progressive, optimize_coding, chroma_subsample, separate_chroma_quality, chroma_quality.

Пример простой команды:

squoosh-cli --mozjpeg '{"quality":75}' -d output photo.png

Такой запуск берёт photo.png, кодирует результат через MozJPEG и сохраняет .jpg в папку output. Конвертация PNG в JPEG убирает прозрачность, поэтому для логотипов, иконок и интерфейсных скриншотов с альфа-каналом MozJPEG выбирают только после проверки изображения.

MozJPEG особенно полезен для изображений, которые уже распространяются как JPEG. Повторная обработка снижает вес, но слишком низкое качество усиливает блоки, шум вокруг контрастных границ и потерю мелких текстур. Поэтому для фотографий разумно начинать с умеренных значений качества и обязательно смотреть результат на экране.

WebP

WebP вызывается через --webp и создаёт .webp. Этот формат широко применяют для веб-страниц: он поддерживает как сжатие с потерями, так и lossless-сценарии, работает с прозрачностью и часто уменьшает размер по сравнению с JPEG и PNG. В Squoosh CLI WebP удобен как основной формат для набора изображений сайта.

Пример:

squoosh-cli --webp '{"quality":80}' -d output image.jpg

Для быстрой автоматической настройки используют auto:

squoosh-cli --webp auto -d output image.jpg

WebP хорошо подходит для каталогов, блогов, лендингов, документации и изображений интерфейса. Для мелкого текста и скриншотов нужно сравнивать результат с исходником: агрессивное сжатие размывает символы, тонкие линии и пиктограммы. Для скриншота с прозрачностью полезно проверить сохранение альфа-канала.

AVIF

AVIF запускается через --avif и создаёт .avif. Этот формат применяют для сильного уменьшения веса изображений при сохранении приемлемого визуального качества. В Squoosh CLI AVIF полезен для генерации дополнительной версии рядом с WebP и JPEG, особенно в разметке
.

Пример:

squoosh-cli --avif '{"quality":50}' -d output image.jpg

AVIF обычно тяжелее по кодированию, чем JPEG и WebP. Это влияет на массовую обработку: команда выполняется дольше, активнее загружает процессор и сильнее проявляет ограничения среды Node. Для единичных изображений задержка не критична, для сотен файлов AVIF лучше запускать на отдельной выборке, затем переносить параметры на весь каталог.

В пользовательских обсуждениях Squoosh CLI встречались претензии к AVIF-параметрам и отличиям результата от ожидаемого поведения. Поэтому AVIF в Squoosh CLI требует ручной проверки результата: нужно смотреть не только размер файла, но и плавные градиенты, кожу, тени, мелкие детали, текст и контрастные края.

OxiPNG

OxiPNG вызывается флагом --oxipng и создаёт .png. Этот вариант нужен, когда формат PNG сохраняется: скриншоты интерфейса, изображения с прозрачностью, пиксельная графика, логотипы, схемы, элементы UI. В отличие от WebP и AVIF, OxiPNG работает внутри PNG-сценария и не переводит файл в другой веб-формат.

Пример:

squoosh-cli --oxipng '{}' -d output screenshot.png

Пустая конфигурация {} означает параметры по умолчанию. При работе с PNG важно помнить, что файл не всегда становится сильно меньше. Фотографический PNG иногда лучше перевести в WebP или AVIF, а интерфейсный PNG с небольшим числом цветов хорошо выигрывает от оптимизации и палитрового сокращения.

JPEG XL и WebP2

В справке Squoosh CLI присутствуют --jxl для JPEG XL и --wp2 для WebP2. Эти флаги отражают экспериментальный характер Squoosh как площадки для кодеков. Для регулярной публикации на сайте основные практические варианты остаются MozJPEG, WebP, AVIF и OxiPNG, потому что они понятнее интегрируются в реальные процессы и лучше документированы в пользовательских примерах.

JPEG XL и WebP2 лучше рассматривать как исследовательские направления внутри Squoosh CLI, а не как первый выбор для обычной галереи сайта. Для массовой публикации важна не только степень сжатия, но и предсказуемость обработки, поддержка браузерами, проверяемость результата и понятная цепочка резервных форматов.

Основные функции Squoosh CLI

Сжатие изображений из терминала

Сжатие — базовая функция Squoosh CLI. Пользователь выбирает кодек, задаёт конфигурацию и передаёт файл. В терминале отображается ход обработки и итог: исходный размер, имя результата, новый размер и процент от исходного веса. Такой вывод помогает быстро понять, какие файлы дали сильную экономию, а какие почти не изменились.

Пример WebP-сжатия:

squoosh-cli --webp '{"quality":75}' image.jpg

Пример MozJPEG-сжатия:

squoosh-cli --mozjpeg '{"quality":80}' image.png

При работе с фотографиями качество влияет на размер и артефакты. При работе со скриншотами важно контролировать текст и линии. При работе с логотипами нужно следить за прозрачностью и резкими краями. Squoosh CLI не заменяет визуальную проверку: он выполняет команду, но не оценивает художественное качество результата за пользователя.

Конвертация между форматами

Squoosh CLI конвертирует исходные PNG и JPEG в форматы, выбранные кодеком вывода. Самый частый сценарий — подготовка WebP:

squoosh-cli --webp auto image.jpg

AVIF-версия создаётся похожим способом:

squoosh-cli --avif '{"quality":50}' image.jpg

Для PNG без смены формата используют OxiPNG:

squoosh-cli --oxipng '{}' screenshot.png

Для JPEG-вывода через MozJPEG:

squoosh-cli --mozjpeg '{"quality":75}' image.png

Конвертация в Squoosh CLI не является редактированием содержимого. Программа не удаляет объект с фото, не исправляет перспективу, не меняет фон и не работает со слоями. Она меняет представление изображения в другом формате или с другими параметрами сжатия.

Пакетная обработка

Пакетная обработка — причина, по которой Squoosh CLI выбирают вместо Squoosh.app. В браузерном интерфейсе пользователь работает с изображением визуально, а CLI принимает несколько файлов:

squoosh-cli --webp auto *.jpg

Для PNG:

squoosh-cli --oxipng '{}' *.png

Для смешанного набора удобнее явно передать список:

squoosh-cli --webp '{"quality":80}' hero.jpg banner.png card.jpg

В таком режиме Squoosh CLI применяет одинаковые параметры ко всему набору. Это полезно для каталога изображений сайта: иллюстрации получают единый формат, похожее качество и предсказуемые имена результата. Для сложных каталогов с разными типами графики лучше делить файлы на группы: фотографии отдельно, скриншоты отдельно, логотипы отдельно.

Изменение размера

--resize уменьшает ширину и высоту перед кодированием. Это важный этап, потому что слишком большой исходник остаётся тяжёлым даже после сжатия. Для веб-страницы изображение шириной 4000 пикселей часто не нужно, когда блок отображает его на 1200 пикселей.

Пример:

squoosh-cli --resize '{"width":1200,"method":"lanczos3"}' --webp '{"quality":80}' -d output photo.jpg

В обсуждениях Squoosh CLI для --resize фигурируют параметры width, height, method, premultiply, linearRGB; в качестве методов встречаются triangle, catrom, mitchell, lanczos3.

Уменьшение размера нужно выполнять до кодирования. Так программа сначала приводит изображение к нужным габаритам, а затем кодек уже сжимает итоговый вариант. Это даёт более чистый результат, чем отдельное сжатие слишком большого исходника.

Сокращение палитры

--quant уменьшает количество используемых цветов. Такая операция полезна для изображений с ограниченной цветовой палитрой: схем, простых иллюстраций, интерфейсных скриншотов, иконок. Для фотографий с плавными переходами агрессивное сокращение цветов даёт постеризацию, полосы на градиентах и грубые переходы.

Пример:

squoosh-cli --quant '{"numColors":128,"dither":1}' --oxipng '{}' -d output icon.png

--quant стоит использовать осторожно. Он способен заметно уменьшить PNG, но требует просмотра результата в масштабе 100%. Особенно важно проверять мелкий текст, тонкие линии и полупрозрачные элементы.

Поворот

--rotate поворачивает изображение перед кодированием. Это вспомогательная операция, а не замена редактору. Она нужна в технических сценариях: привести ориентацию перед публикацией, подготовить набор однотипных файлов, исправить группу изображений с одинаковым поворотом.

Squoosh CLI скриншот 1

В полноценном фоторедакторе поворот часто сопровождается кадрированием, выравниванием горизонта и ручным контролем композиции. Squoosh CLI выполняет простую автоматическую операцию, поэтому подходит для повторяемой технической обработки.

Автоматическая оптимизация

Squoosh CLI поддерживает auto как конфигурацию кодека. В таком режиме программа подбирает параметры на основе заданной цели качества. В CLI присутствуют флаги --max-optimizer-rounds и --optimizer-butteraugli-target: первый ограничивает число раундов, второй задаёт целевую дистанцию Butteraugli для автоматического оптимизатора.

Пример:

squoosh-cli --webp auto --optimizer-butteraugli-target 1.4 -d output *.png

Автоматическая оптимизация удобна для первого прохода по изображениям. Она не отменяет проверку результата: визуальные метрики помогают подобрать баланс, но не знают контекста страницы. Для миниатюры карточки допустим один уровень потерь, для иллюстрации в инструкции с мелким текстом нужен другой.

Инструкция: как сжать изображение в Squoosh CLI

Работа начинается в терминале: Windows Terminal, PowerShell, Terminal в macOS, Bash в Linux или встроенный терминал редактора кода. У Squoosh CLI нет кнопки выбора файла, поэтому путь к изображению задаётся в команде.

На скриншоте виден типичный результат работы: команда запускает squoosh-cli, затем терминал выводит список файлов, исходный размер, новое имя и итоговый размер. Такой формат удобен для проверки массовой оптимизации: сразу видно, какие изображения уменьшились сильнее, а какие требуют других настроек.

Шаг 1. Проверить Node.js и npm

Squoosh CLI работает в среде Node, а npm нужен для запуска пакета. Перед обработкой проверяют доступность команд:

node -vnpm -vnpx -v

Для проектов, где Squoosh CLI используется регулярно, важно закреплять проверенную среду. В пользовательских и контейнерных инструкциях Squoosh CLI устойчиво привязывают к Node 12, 14 и 16, а на более новых ветках встречаются ошибки запуска. Практический вариант для стабильной команды — отдельное окружение с проверенной версией Node.

Шаг 2. Перейти в папку с изображениями

Перед запуском открывают папку, где лежат файлы.

Bash и macOS Terminal:

cd ~/Projects/site/assets/images

PowerShell:

cd C:\Projects\site\assets\images

После перехода полезно вывести список файлов:

ls

В PowerShell:

dir

На этом этапе важно не смешивать разные типы изображений. Фотографии, скриншоты, логотипы и схемы часто требуют разных форматов. Для фотографий выбирают WebP, AVIF или MozJPEG. Для интерфейсных PNG с прозрачностью чаще начинают с OxiPNG или WebP lossless-настроек.

Шаг 3. Запустить обработку одного файла

Минимальный запуск через npx:

npx @squoosh/cli --webp auto image.jpg

Глобальная команда после установки пакета:

squoosh-cli --webp auto image.jpg

Команда создаёт WebP-результат для image.jpg. Для первого прохода лучше обрабатывать один файл, а не весь каталог. Так проще убедиться, что кавычки, кодек, папка вывода и права доступа настроены правильно.

Шаг 4. Сохранить результат в отдельную папку

Безопаснее не складывать результат рядом с исходником, а использовать отдельный каталог:

squoosh-cli --webp '{"quality":80}' -d output image.jpg

-d output задаёт папку вывода. Такой подход защищает исходники от случайной перезаписи и облегчает сравнение. После обработки можно открыть исходник и результат рядом, посмотреть размер, проверить качество, а затем перенести оптимизированные файлы в проект.

Шаг 5. Обработать несколько файлов

После проверки одного файла применяют команду к группе:

squoosh-cli --webp '{"quality":80}' -d output *.jpg

Для PNG:

squoosh-cli --oxipng '{}' -d output *.png

Для папки со смешанными файлами лучше запускать несколько команд. Фотографии идут через WebP или AVIF, скриншоты — через OxiPNG или WebP, логотипы проверяются отдельно. Одна универсальная команда для всех изображений почти всегда хуже набора правил по типу графики.

Шаг 6. Проверить результат

После обработки проверяют:

  • размер файла до и после;

  • отсутствие грубых артефактов;

  • читаемость текста на скриншотах;

  • сохранение прозрачности;

  • резкость тонких линий;

  • корректность цветов;

  • имена файлов и расширения;

  • наличие результата в папке вывода;

  • соответствие формата задаче страницы.

Сжатие изображений без графического интерфейса не освобождает от просмотра результата. Squoosh CLI автоматизирует выполнение, но решение о приемлемом качестве принимает пользователь.

Примеры команд Squoosh CLI

PNG в WebP

squoosh-cli --webp '{"quality":80}' -d output image.png

Команда создаёт WebP-файл из PNG и кладёт его в папку output. Этот вариант подходит для иллюстраций, скриншотов и графики, где WebP даёт меньший вес. Для прозрачных изображений нужно проверить альфа-канал.

JPEG в WebP

squoosh-cli --webp auto -d output photo.jpg

auto подходит для быстрого первого прохода. После него нужно открыть результат и проверить детали: волосы, текстуры, градиенты, контрастные края, мелкий текст на изображении.

JPEG в MozJPEG

squoosh-cli --mozjpeg '{"quality":75}' -d output photo.jpg

MozJPEG сохраняет JPEG-формат и уменьшает вес файла. Такой сценарий удобен, когда проект по техническим причинам оставляет JPEG как основной или резервный формат.

PNG через OxiPNG

squoosh-cli --oxipng '{}' -d output screenshot.png

OxiPNG подходит для PNG-скриншотов, логотипов и изображений с прозрачностью. Пустая конфигурация берёт значения по умолчанию.

Изменение размера и WebP

squoosh-cli --resize '{"width":1200,"method":"lanczos3"}' --webp '{"quality":80}' -d output photo.jpg

Сначала изображение уменьшается до ширины 1200 пикселей, затем кодируется в WebP. Такой подход часто сильнее снижает вес, чем одно только сжатие.

Суффикс к имени файла

squoosh-cli --webp '{"quality":80}' -s -min image.jpg

Флаг -s -min добавляет суффикс к имени результата. Это удобно, когда исходник и оптимизированный файл лежат рядом, а папка вывода не используется.

Пакетная обработка JPEG

squoosh-cli --mozjpeg '{"quality":78}' -d output *.jpg

Команда обрабатывает все JPEG-файлы в текущей папке. Перед массовым запуском лучше выполнить её на 2–3 файлах и проверить качество.

WebP и AVIF для одного изображения

squoosh-cli --webp '{"quality":80}' -d output image.jpgsquoosh-cli --avif '{"quality":50}' -d output image.jpg

Так получают две версии одного изображения. На странице их используют вместе с исходным JPEG или PNG, чтобы браузер выбирал поддерживаемый формат.

Терминальный вывод показывает два результата для одного исходника: .webp и .avif. Такой подход удобен для веб-страниц, где AVIF используется как более лёгкий вариант, WebP — как совместимый современный вариант, а исходный JPEG остаётся резервным.

Сценарии использования

Оптимизация изображений для сайта

Squoosh CLI хорошо вписывается в подготовку сайта перед публикацией. В папке проекта лежат исходники, команда создаёт оптимизированные версии, а разработчик подключает их в разметке. Для статического сайта это особенно удобно: нет серверной обработки изображений на лету, поэтому файлы готовятся заранее.

Типичный процесс:

  1. экспортировать изображения из редактора;

  2. сложить исходники в assets/source;

  3. выполнить команду Squoosh CLI;

  4. сохранить результат в assets/optimized;

  5. открыть несколько файлов и проверить качество;

  6. подключить оптимизированные версии на странице.

Для простых сайтов достаточно WebP и резервного JPEG/PNG. Для проектов, где важна минимальная масса страницы, добавляют AVIF. Squoosh CLI помогает генерировать несколько форматов, а
в HTML выбирает подходящую версию в браузере. Такой сценарий прямо описывался для Squoosh CLI при запуске v2.

Подготовка изображений для статического блога

В статических генераторах изображения часто лежат рядом с Markdown-файлами. Автор добавляет иллюстрацию к статье, запускает команду, получает WebP/AVIF и подключает итоговые файлы. Это уменьшает вес страницы без изменения движка сайта.

Пример структуры:

content/  article/    hero.jpg    screenshot.pngpublic/  images/    hero.webp    hero.avif    screenshot.webp

Для автора блога Squoosh CLI удобен тем, что не требует открывать каждую картинку в интерфейсе. Команда обрабатывает новый набор перед публикацией. Но для иллюстраций с текстом обязательно нужен просмотр результата: слишком сильное сжатие делает инструкции хуже читаемыми.

Подготовка WebP и AVIF для

Squoosh CLI создаёт несколько версий одного исходника. На странице их подключают так:

      Описание изображения

Команды для подготовки:

squoosh-cli --avif '{"quality":50}' -d output image.jpgsquoosh-cli --webp '{"quality":80}' -d output image.jpg

Этот сценарий полезен для главных экранов, карточек, иллюстраций документации и изображений, которые повторяются на нескольких страницах. AVIF даёт минимальный вес, WebP расширяет совместимость, исходный JPEG или PNG служит резервом.

Пакетная обработка иллюстраций документации

Техническая документация часто содержит скриншоты. Для них важна не только масса файла, но и читаемость. Squoosh CLI позволяет обработать папку с PNG, но параметры нужно выбирать мягче, чем для фотографий.

Для скриншотов интерфейса:

squoosh-cli --oxipng '{}' -d output *.png

Для WebP-вариантов:

squoosh-cli --webp '{"quality":90}' -d output *.png

Высокое качество оправдано: мелкий текст, иконки, границы блоков и линии должны оставаться различимыми. При сильном снижении качества инструкция теряет практическую ценность.

Автоматизация в npm scripts

Squoosh CLI запускается как обычная команда, поэтому его добавляют в package.json:

{  "scripts": {    "images:webp": "squoosh-cli --webp '{\"quality\":80}' -d public/images assets/images/*.jpg",    "images:png": "squoosh-cli --oxipng '{}' -d public/images assets/images/*.png"  }}

После этого команда выполняется через npm:

npm run images:webp

Для командной работы это удобнее, чем устная инструкция. Все параметры лежат в проекте, новые участники используют тот же сценарий, а изменения качества фиксируются в истории файлов.

Работа в CI

Squoosh CLI подходит для CI только при закреплённой среде. Нужно фиксировать Node, пакет, команду, входные папки и папку вывода. Без этого сборка ломается из-за различий в версиях Node, оболочке, кавычках или зависимостях.

Для CI особенно важны правила:

  • не изменять исходники на месте;

  • использовать отдельную папку вывода;

  • ограничивать обработку новыми или изменёнными файлами;

  • хранить команды в npm scripts;

  • проверять результат до удаления исходников;

  • не запускать тяжёлый AVIF-проход без необходимости.

Для новых проектов на современных версиях Node часто рациональнее выбрать Sharp или imagemin, потому что они активнее вписываются в современные пайплайны. Squoosh CLI остаётся полезным при поддержке старых проектов и при необходимости повторить именно настройки Squoosh.

Системные требования

Squoosh CLI не устанавливается как обычное настольное приложение с ярлыком. Он работает в среде Node.js, поэтому требования описываются не через Windows 10/11 как у графических программ, а через окружение: Node, npm, npx, терминал, права на чтение и запись файлов.

КомпонентТребование для работы
Операционная системаWindows, macOS или Linux при наличии рабочей среды Node.js
Среда выполненияNode.js
Менеджер пакетовnpm
Разовый запускnpx
Интерфейстерминал: PowerShell, Windows Terminal, Bash, Terminal в macOS, терминал Linux
Права доступачтение исходных изображений и запись в папку вывода
Процессорчем больше и тяжелее изображения, тем важнее производительность CPU
Оперативная памятьзависит от размеров изображений, выбранного кодека и параллельной обработки
Рабочая совместимостьдля стабильной повторяемости используют проверенную ветку Node, часто Node 12/14/16 в старых инструкциях и контейнерах

Основное практическое требование — не сама ОС, а совместимость Node-окружения. Squoosh CLI появился в период, когда рабочими считались старые ветки Node; на Node 18 и Node 20 пользователи фиксировали проблемы с запуском и зависимостями. Для разового эксперимента это неприятность, для рабочего процесса — причина закрепить окружение или использовать контейнер.

Ресурсы компьютера важны при AVIF и массовой обработке. JPEG и PNG обычно обрабатываются быстрее, WebP занимает среднее положение, AVIF заметно сильнее нагружает процессор. Параллельная обработка ускоряет проход по каталогу, но одновременно повышает нагрузку на CPU и память.

Для Windows отдельное внимание требуется к кавычкам. PowerShell и Bash удобнее для JSON-параметров, Command Prompt требует экранирования. Неправильные кавычки приводят к ошибкам конфигурации, а не к проблемам кодека.

Squoosh CLI скриншот 2

Производительность и качество сжатия

Squoosh CLI не ставил целью быть самым быстрым оптимизатором изображений. Описание пакета прямо подчёркивает: инструмент достаточно быстрый для одновременного сжатия многих изображений, но не конкурирует с самыми быстрыми компрессорами по скорости. Его ценность — доступ к кодекам Squoosh через командную строку и повторяемая настройка.

На скорость влияют:

  • размер исходного изображения;

  • количество файлов;

  • выбранный кодек;

  • качество и дополнительные параметры;

  • включённый --resize;

  • палитровое сокращение через --quant;

  • число параллельных задач;

  • версия Node и окружение;

  • скорость диска.

JPEG и WebP обычно дают быстрый рабочий цикл. AVIF требует больше времени, зато часто сильнее уменьшает файл. OxiPNG работает в lossless-сценарии PNG и полезен там, где формат менять нельзя. --resize уменьшает объём данных до кодирования и часто даёт больший выигрыш, чем попытка сжимать большой исходник без изменения габаритов.

Качество нужно выбирать по типу изображения.

Тип изображенияПодходящий стартовый сценарийЧто проверять
ФотографияWebP quality около 75–85 или MozJPEG 75–85кожа, волосы, фактура, шум, плавные тени
Главная иллюстрацияWebP выше среднего качества, AVIF после проверкилицо, логотипы, резкость, градиенты
Скриншот интерфейсаOxiPNG или WebP с высоким качествомтекст, иконки, линии, рамки
ЛоготипPNG/OxiPNG или WebP с прозрачностьюальфа-канал, края, фирменные цвета
СхемаOxiPNG, WebP, осторожный --quantмелкие подписи, линии, цветовые блоки
ФонAVIF или WebP с более сильным сжатиемполосы на градиентах, шум, контраст

Главная ошибка при сжатии — смотреть только на размер. Файл может стать в пять раз меньше и одновременно стать непригодным для инструкции, карточки товара или баннера. Squoosh CLI показывает цифры, но визуальный контроль остаётся обязательным этапом.

Настройки качества по практическим задачам

Фотографии

Для фотографий используют WebP, AVIF или MozJPEG. WebP даёт хороший баланс размера и совместимости, MozJPEG сохраняет привычный .jpg, AVIF снижает размер сильнее, но требует больше времени на кодирование.

Рабочий подход:

squoosh-cli --webp '{"quality":80}' -d output *.jpg

Затем проверяют несколько файлов: портрет, тёмное изображение, изображение с небом, изображение с мелкими деталями. Одно значение качества не всегда одинаково хорошо для всех фотографий.

Скриншоты

Для скриншотов интерфейса приоритет — читаемость. Слишком низкое качество в WebP размывает текст, а палитровое сокращение создаёт ступени на градиентах.

Стартовая команда:

squoosh-cli --oxipng '{}' -d output *.png

Для WebP-версий:

squoosh-cli --webp '{"quality":90}' -d output *.png

Проверка выполняется в масштабе 100%. Уменьшенный просмотр в браузере скрывает дефекты, которые становятся заметными при чтении инструкции.

Логотипы и графика с прозрачностью

Для логотипов важны прозрачность, резкие края и точные цвета. OxiPNG безопаснее для исходного PNG, WebP нужно проверять на альфа-канал и края.

squoosh-cli --oxipng '{}' -d output logo.png

Палитровое сокращение допустимо только после просмотра результата. Для логотипа с градиентом сильный --quant портит переходы.

Обложки и фоновые изображения

Фоновые изображения выдерживают более сильное сжатие, потому что на них редко читают мелкие детали. Для них подходят WebP и AVIF.

squoosh-cli --avif '{"quality":45}' -d output background.jpg

Проверяют градиенты, шум, цветовые полосы и заметные квадраты. На тёмных фонах артефакты часто видны сильнее.

Плюсы и минусы

Плюсы:

  • обработка изображений выполняется из терминала;

  • доступны WebP, AVIF, MozJPEG и OxiPNG;

  • одна команда применяется к нескольким файлам;

  • -d позволяет сохранять результат в отдельную папку;

  • -s добавляет суффикс к имени результата;

  • --resize уменьшает изображение перед кодированием;

  • --quant сокращает палитру для подходящих PNG и графики;

  • --rotate выполняет простой поворот перед сжатием;

  • auto помогает быстро подобрать параметры для первого прохода;

  • команды удобно хранить в npm scripts;

  • обработка строится на WebAssembly-модулях Squoosh;

  • локальная обработка соответствует логике Squoosh.app без отправки изображения на внешний сервер.

Минусы:

  • CLI и libSquoosh удалены из основного репозитория Squoosh;

  • для стабильной работы требуется проверенная версия Node;

  • нет графического предпросмотра результата;

  • параметры кодеков передаются строками, что усложняет работу новичкам;

  • кавычки в JSON-конфигурации отличаются между Bash, PowerShell и Command Prompt;

  • AVIF-кодирование заметно тяжелее по времени и ресурсам;

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

  • программа не выполняет ретушь, кадрирование области, работу со слоями и ручную цветокоррекцию;

  • документация CLI была менее подробной, чем у зрелых альтернатив;

  • новые проекты часто проще строить на Sharp, ImageMagick, cwebp или imagemin.

Типичные ошибки при работе

Неподходящая версия Node.js

Squoosh CLI чувствителен к окружению. Старые инструкции и контейнеры фиксируют работу на Node 12/14/16, а обсуждения форков и issues показывают ошибки на новых ветках. Для стабильного процесса нужно не полагаться на системную Node как есть, а закреплять рабочую версию в проекте или контейнере.

Признаки проблемы:

  • команда не запускается;

  • появляется ошибка URL или модулей;

  • пакет устанавливается, но обработка падает;

  • один кодек работает, другой зависает;

  • одинаковая команда ведёт себя по-разному на двух компьютерах.

Решение — использовать проверенное окружение и не обновлять Node в рабочем проекте без повторной проверки Squoosh CLI.

Неверные кавычки в параметрах

Команда с JSON-параметрами зависит от оболочки. В Bash и PowerShell удобно писать:

squoosh-cli --webp '{"quality":75}' image.png

В Windows Command Prompt используют экранирование:

squoosh-cli --webp "{\"quality\":75}" image.png

При неправильных кавычках CLI получает строку не в том виде, который ожидает парсер. В результате появляются ошибки вида Cannot use 'in' operator..., JSON5 invalid character или зависание на стадии обработки.

Работа без отдельной папки вывода

Флаг -d нужен не только для порядка, но и для безопасности. Когда результат сохраняется в отдельную папку, исходники остаются нетронутыми. Это особенно важно при пакетной обработке.

Безопасный вариант:

squoosh-cli --webp '{"quality":80}' -d output *.jpg

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

Один кодек для всех файлов

Разные изображения требуют разных подходов. Фотографический JPEG хорошо сжимается в WebP или AVIF. PNG-скриншот с текстом часто лучше пропустить через OxiPNG. Логотип с прозрачностью требует отдельной проверки альфа-канала. Универсальная команда для *.* создаёт непредсказуемое качество.

Правильнее разделять обработку:

squoosh-cli --webp '{"quality":80}' -d output photos/*.jpgsquoosh-cli --oxipng '{}' -d output screenshots/*.pngsquoosh-cli --webp '{"quality":90}' -d output screenshots/*.png

Так параметры соответствуют типу изображения, а не случайному расширению файла.

Слишком агрессивное сжатие

Низкое качество уменьшает файл, но быстро портит изображение. На фотографиях появляются блоки и мыло, на скриншотах расплывается текст, на градиентах появляются полосы, на логотипах страдают края.

Проверка должна включать не только просмотр в уменьшенном масштабе. Нужно открыть результат в 100%, сравнить с исходником и убедиться, что дефекты не мешают назначению изображения.

Неверный порядок операций

Изменение размера должно идти до кодирования. В Squoosh CLI это решается включением --resize в той же команде. Отдельное сжатие огромного исходника без уменьшения габаритов часто оставляет файл тяжелее, чем нужно для страницы.

Хорошая команда:

squoosh-cli --resize '{"width":1200,"method":"lanczos3"}' --webp '{"quality":80}' -d output hero.jpg

Здесь сначала уменьшается ширина, затем результат кодируется в WebP. Это логичнее, чем сжимать оригинал шириной 5000 пикселей для блока, где он отображается в 1200 пикселей.

Безопасность и приватность

Squoosh CLI работает локально: входные файлы читаются с диска, обработка выполняется на компьютере пользователя, результат записывается в указанную папку. Эта логика соответствует приватной модели Squoosh: изображения не отправляются на сервер, сжатие выполняется локально.

Для рабочих материалов это важно. Скриншоты интерфейсов, изображения до публикации, внутренние схемы и черновики не нужно загружать в сторонний веб-сервис. Но локальная обработка не отменяет проверки зависимостей: npm-пакет и окружение должны быть зафиксированы, а команды — понятны участникам проекта.

Практические правила:

  • хранить исходники отдельно от результата;

  • использовать -d output для пакетной обработки;

  • не удалять оригиналы до визуальной проверки;

  • фиксировать версию Node в проектной документации;

  • запускать новые параметры на небольшой выборке;

  • не использовать одну команду для всех типов изображений;

    Squoosh CLI скриншот 3

  • проверять итоговые файлы перед публикацией.

Squoosh CLI не добавляет водяные знаки и не требует регистрации. Ограничение находится в другом: программа не предупреждает о смысловой потере качества. Ответственность за итоговое качество остаётся на пользователе.

Отзывы пользователей и профильных журналов

Мнение технических изданий и блогов

Web.dev представил Squoosh CLI как способ использовать кодеки Squoosh в командной строке, обрабатывать изображения параллельно через workers и создавать несколько форматов для веб-приложения. В материалах web.dev CLI связан с идеей автоматической оптимизации изображений в сборке сайта, а libSquoosh описан как Node-библиотека, на которой построен CLI.

DEV Community и технические блоги рассматривали Squoosh CLI как удобный способ перевести WebP/AVIF-оптимизацию в повторяемую команду. В таких обзорах чаще всего подчёркивались три свойства: работа из терминала, доступ к кодекам Squoosh и пакетная обработка изображений.

Joy of Code отдельно показывал практический подход: запустить npx @squoosh/cli -h, посмотреть опции, выбрать флаг формата, передать параметры, указать папку через -d и список файлов. Этот стиль хорошо отражает реальное использование программы: CLI требует не длинной теории, а корректной команды и проверки результата.

Raybo.org описывал Squoosh как инструмент для работы с WebP, AVIF, JPEG XL и другими форматами, а также показывал, что веб-интерфейс связан с CLI через кнопку копирования команды. Для пользователя это важная связка: настройки можно подобрать визуально, затем использовать терминальную команду для массовой обработки.

Node Weekly выделял libSquoosh как перенос Squoosh в Node-сценарий и отмечал, что веб-приложение 2018 года позднее получило CLI-форму и библиотечный интерфейс. Это мнение хорошо показывает, как Squoosh CLI воспринимался в среде Node-разработчиков: не как обычный конвертер, а как часть инструментов веб-разработки.

Усреднённое мнение пользователей сети

Пользователи ценили Squoosh CLI за пакетную обработку и WebP/AVIF. На практике главным положительным сценарием был простой: открыть папку с изображениями, выполнить команду, получить уменьшенные файлы и сразу увидеть проценты сжатия. В обсуждениях встречались примеры обработки десятков изображений, где терминальный вывод показывал исходный размер и итоговый размер каждого результата.

Главные претензии пользователей были техническими:

  • мало примеров для сложных конфигураций;

  • трудно понять JSON-параметры кодеков;

  • кавычки по-разному работают в разных оболочках;

  • часть команд зависает или выдаёт ошибки;

  • результат CLI иногда отличается от веб-интерфейса;

  • AVIF-параметры требуют отдельной проверки;

  • совместимость Node создаёт проблемы на новых окружениях.

Эти отзывы формируют честный профиль Squoosh CLI. Программа сильна как инструмент для разработчика, но не дружелюбна к новичку. Она выигрывает у ручного интерфейса при массовой обработке, но проигрывает современным активно поддерживаемым инструментам в надёжности и поддержке новых сред.

Как изменилось восприятие после прекращения поддержки CLI

После удаления CLI и libSquoosh из основного репозитория Squoosh оценки стали осторожнее. Технические публикации продолжают упоминать Squoosh CLI как удобную идею и полезный инструмент для старых процессов, но новые проекты чаще переводят на Sharp, ImageMagick, cwebp, imagemin или форки, которые сохраняют CLI-функциональность.

Это не делает Squoosh CLI бесполезным. Он остаётся понятным способом повторить кодеки Squoosh в терминале и обработать изображения без графического интерфейса. Но в рабочем проекте его нужно оценивать не только по качеству сжатия, но и по поддержке, совместимости Node, риску ошибок и наличию альтернатив.

Сравнение с аналогами

Squoosh CLI корректно сравнивать не с фоторедакторами, а с программами и библиотеками, которые умеют сжимать, конвертировать и пакетно обрабатывать изображения. Для ручной обработки рядом находятся GIMP, Paint.NET, Picosmos Tools; для просмотра и каталогов — XnView, XnView MP, FastStone Image Viewer; для массовой конвертации без акцента на Squoosh-кодеках — Converseen.

ПрограммаИнтерфейсОсновные задачиСильная сторонаОграничение
Squoosh CLIкомандная строкаWebP, AVIF, MozJPEG, OxiPNG, resize, quant, rotateкодеки Squoosh в терминале и пакетная обработкаCLI удалён из основного репозитория, зависимость от Node
Squoosh.appбраузерный интерфейсвизуальное сжатие и сравнениенаглядный подбор качестваручная обработка, один файл за раз в обычном сценарии
SharpNode-библиотекаresize, конвертация, JPEG/PNG/WebP/AVIF/GIF/TIFFактивный Node-инструмент для современных пайплайновтребует написания кода или CLI-обёртки
ImageMagickкомандная строка и набор утилитконвертация, resize, crop, фильтры, пакетная обработкауниверсальность и поддержка множества форматовсложный синтаксис и большое число параметров
cwebpкомандная строкасоздание WebPточный специализированный WebP-кодировщиктолько WebP-направление
imagemin-cliкомандная строкаминификация через плагиныпривычная интеграция в npm-проектызависит от плагинов и их состояния
XnView MPграфический интерфейспросмотр, каталогизация, пакетная обработкаудобен пользователям без терминалахуже подходит для автоматизации сборки

Squoosh CLI и Sharp

Sharp — современный Node-инструмент для обработки изображений. Он конвертирует большие изображения в веб-дружественные JPEG, PNG, WebP, GIF и AVIF, работает через Node-API и подходит для программной обработки в проектах.

Squoosh CLI проще для пользователя, которому нужна готовая команда без написания JavaScript-кода. Sharp сильнее для новых Node-пайплайнов: там можно описать собственную логику, обработать метаданные, встроить конвертацию в серверный код или сборку. Если проект уже живёт на современном Node, Sharp чаще становится рациональным выбором. Если задача — повторить Squoosh-настройки из терминала, Squoosh CLI остаётся ближе по логике к Squoosh.app.

Squoosh CLI и ImageMagick

ImageMagick — универсальный пакет для создания, редактирования, конвертации и манипулирования изображениями более чем в 200 форматах. Он подходит для resize, crop, поворота, фильтров, конвертации и автоматизации через shell-скрипты.

Squoosh CLI намного уже. Он сосредоточен на веб-сжатии и кодеках Squoosh. ImageMagick лучше подходит для сложных цепочек преобразований: кадрирование, геометрия, объединение, подписи, пакетные операции разных типов. Squoosh CLI выигрывает, когда нужны WebP/AVIF/MozJPEG/OxiPNG через знакомую экосистему Squoosh и минимальная команда без изучения огромного набора операторов ImageMagick.

Squoosh CLI и cwebp

cwebp — специализированный командный кодировщик WebP. Он принимает PNG, JPEG и TIFF, создаёт WebP и даёт настройки качества через -q, lossless-режим через -lossless, пресеты и дополнительные параметры кодирования.

Squoosh CLI шире по форматам: WebP, AVIF, MozJPEG, OxiPNG и дополнительные кодеки из справки. cwebp сильнее как точный и поддерживаемый инструмент именно для WebP. Для проекта, где нужен только WebP, cwebp проще, легче и предсказуемее. Для проекта, где рядом нужны WebP, AVIF и MozJPEG из одного интерфейса, Squoosh CLI удобнее как единая оболочка.

Squoosh CLI и imagemin-cli

imagemin-cli — консольная оболочка для минификации изображений через imagemin. В npm-экосистеме imagemin часто используют вместе с плагинами и build-инструментами.

Разница в подходе принципиальная. Squoosh CLI даёт конкретные кодеки Squoosh и конфигурации в стиле веб-интерфейса. imagemin-cli строится вокруг плагинов: возможности зависят от выбранных пакетов. Для проектов с уже настроенной сборкой imagemin удобен как часть экосистемы. Для разового терминального запуска с WebP/AVIF Squoosh CLI проще читается.

Squoosh CLI и Squoosh.app

Squoosh.app — визуальный вариант. Там пользователь видит исходник и результат, двигает разделитель сравнения, меняет Quality, включает Resize, раскрывает Advanced settings и сразу смотрит разницу. CLI не показывает предпросмотр, зато обрабатывает много файлов одной командой.

Лучший сценарий работы — сочетание обоих вариантов:

  1. открыть одно изображение в Squoosh.app;

  2. подобрать формат и качество визуально;

  3. перенести параметры в CLI-команду;

  4. обработать весь каталог;

  5. проверить несколько результатов вручную.

Так Squoosh.app закрывает визуальный контроль, а Squoosh CLI — массовое выполнение.

Кому подойдёт Squoosh CLI

Веб-разработчикам

Squoosh CLI подходит разработчикам, которые готовят изображения вместе с кодом сайта. Команды можно хранить рядом с проектом, запускать перед сборкой, повторять на другом компьютере и включать в документацию. Для разработчика терминал — рабочая среда, поэтому отсутствие графического интерфейса не является минусом.

Авторам статических сайтов

Статические сайты не всегда имеют серверную оптимизацию изображений. Squoosh CLI закрывает подготовку заранее: исходники лежат в одной папке, результат создаётся в другой, а HTML подключает WebP/AVIF. Такой процесс хорошо подходит для блогов, документации, промо-страниц, небольших каталогов.

Пользователям Squoosh.app, которым нужна массовая обработка

Squoosh.app удобен для выбора параметров, но ручная обработка десятков файлов занимает время. Squoosh CLI переносит выбранную стратегию в команду. Пользователь сохраняет качество, формат и папку вывода, а затем применяет их ко всему набору.

Командам с повторяемыми правилами обработки

В команде важно, чтобы изображения обрабатывались одинаково. Squoosh CLI решает это через фиксированные команды. Вместо инструкции сжать примерно до нормального веса проект получает конкретную строку:

squoosh-cli --webp '{"quality":80}' -d public/images assets/images/*.jpg

Такая инструкция не зависит от личных привычек исполнителя.

Старым проектам с уже настроенным окружением

Squoosh CLI особенно уместен в проектах, где он уже работает, Node закреплён, команды проверены, а результат устраивает. В таком случае нет смысла срочно менять инструмент только из-за статуса поддержки. Важнее зафиксировать окружение и не ломать рабочий процесс обновлениями без проверки.

Кому лучше выбрать другую программу

Новым проектам на современных версиях Node

Для новых Node-проектов чаще удобнее Sharp. Он активнее вписывается в современную среду, поддерживает JPEG, PNG, WebP, GIF, AVIF и TIFF, а также подходит для программной обработки.

Squoosh CLI в новом проекте требует больше осторожности: нужно проверить Node, установить пакет, убедиться в работе кодеков и принять статус CLI. Если проект только создаётся, Sharp снижает риски совместимости.

Пользователям без опыта терминала

Пользователю, который хочет открыть изображение, подвигать качество и сохранить результат, лучше начать со Squoosh.app или графических программ. Для редактирования подходят GIMP, Paint.NET, Picosmos Tools. Для просмотра и пакетных действий удобны XnView MP, FastStone Image Viewer, IrfanView.

Задачам сложной обработки

Squoosh CLI не работает со слоями, масками, кистями, выделениями, ретушью, клонированием, перспективой и локальной коррекцией цвета. Для таких задач нужен графический редактор. CLI запускают после того, как изображение уже подготовлено визуально.

Чистому WebP-процессу

Для проекта, где требуется только WebP, достаточно cwebp. Он специализирован на WebP и поддерживает параметры качества, lossless-режим, пресеты, resize и crop.

Squoosh CLI имеет смысл, когда кроме WebP нужны AVIF, MozJPEG и OxiPNG в одном инструменте.

Практические рекомендации по рабочему процессу

Разделять исходники и результат

Хорошая структура проекта:

assets/  source/    hero.jpg    product-1.jpg    ui-screen.png  optimized/    hero.webp    hero.avif    product-1.webp    ui-screen.png

Команда:

squoosh-cli --webp '{"quality":80}' -d assets/optimized assets/source/*.jpg

Разделение папок упрощает проверку и защищает исходники. После обработки всегда остаётся возможность изменить параметры и повторить экспорт.

Подбирать настройки на малой выборке

Перед массовой обработкой выбирают 3–5 файлов:

  • светлая фотография;

  • тёмная фотография;

  • скриншот с текстом;

  • логотип или графика с прозрачностью.

На этой выборке проверяют параметры, а затем запускают команду на весь каталог. Такой подход быстрее, чем обрабатывать сотни файлов и потом искать дефекты.

Хранить команды в проекте

Команды лучше не держать в заметках. Их добавляют в package.json или в отдельный README проекта. Тогда новый участник команды понимает, как именно готовятся изображения.

Пример:

{  "scripts": {    "images:webp": "squoosh-cli --webp '{\"quality\":80}' -d public/images assets/source/*.jpg",    "images:png": "squoosh-cli --oxipng '{}' -d public/images assets/source/*.png"  }}

Использовать несколько профилей качества

Один профиль качества для всех изображений упрощает работу, но часто ухудшает результат. Лучше иметь разные команды:

squoosh-cli --webp '{"quality":82}' -d output photos/*.jpgsquoosh-cli --webp '{"quality":92}' -d output screenshots/*.pngsquoosh-cli --oxipng '{}' -d output icons/*.png

Фотографии выдерживают более сильное сжатие, скриншоты требуют читаемости, иконки и логотипы нуждаются в сохранении краёв и прозрачности.

Проверять итог в браузере

Проверка в браузере включает:

  • правильность srcset;

  • корректный MIME-тип;

  • отображение резервного формата;

  • отсутствие 404;

  • фактический размер загружаемого файла;

  • качество на обычном и Retina-экране;

  • поведение при адаптивной ширине.

Частые вопросы

Есть ли у Squoosh CLI графический интерфейс?

Нет. Squoosh CLI управляется через терминал. Визуальный интерфейс есть у Squoosh.app: там пользователь загружает изображение, видит сравнение, выбирает кодек и меняет настройки. CLI нужен для команд, пакетной обработки и автоматизации.

Можно ли обработать сразу много файлов?

Да. Команда принимает несколько файлов и маски:

squoosh-cli --webp auto *.jpg

Для больших каталогов лучше использовать отдельную папку вывода:

squoosh-cli --webp auto -d output *.jpg

Чем Squoosh CLI отличается от Squoosh.app?

Squoosh.app показывает результат визуально и удобен для настройки одного изображения. Squoosh CLI не показывает предпросмотр, зато обрабатывает несколько файлов одной командой. Лучший рабочий сценарий — подобрать параметры в Squoosh.app, затем применить их в CLI.

Почему команда не запускается на новой версии Node?

Squoosh CLI зависит от Node-окружения и старых зависимостей. В обсуждениях и контейнерных инструкциях часто фигурируют Node 12, 14 и 16, а на Node 18 и Node 20 встречались ошибки. Для стабильной работы используют проверенную версию Node или контейнер.

Почему в Windows не работает команда с {"quality":75}?

Проблема обычно в кавычках. PowerShell, Bash и Command Prompt по-разному передают строку программе. Для Command Prompt используют экранирование двойных кавычек:

squoosh-cli --webp "{\"quality\":75}" image.png

Можно ли заменить Squoosh CLI программой Sharp?

Для новых Node-проектов Sharp часто практичнее. Он поддерживает современные среды и подходит для программной обработки JPEG, PNG, WebP, AVIF, GIF и TIFF. Squoosh CLI остаётся полезным, когда нужен именно терминальный доступ к кодекам Squoosh или уже есть готовый процесс на @squoosh/cli.

Что лучше для WebP: Squoosh CLI или cwebp?

Для чистого WebP-процесса cwebp проще и специализированнее. Squoosh CLI удобнее, когда кроме WebP в одной программе нужны AVIF, MozJPEG и OxiPNG. cwebp управляет только WebP-направлением, зато делает это напрямую и предсказуемо.

Подходит ли Squoosh CLI для редактирования фотографий?

Нет. Он не заменяет фоторедактор. Для цветокоррекции, ретуши, кадрирования, слоёв и масок нужны графические программы. Squoosh CLI запускают после подготовки изображения, когда нужно уменьшить вес, изменить формат или обработать набор файлов.

Итоговая оценка

Squoosh CLI — полезная консольная программа для тех, кому нужно сжатие изображений без графического интерфейса, пакетная оптимизация изображений и повторяемые команды для WebP, AVIF, MozJPEG и OxiPNG. Её сильная сторона — перенос кодеков Squoosh в терминал: один раз задаются формат, качество, папка вывода и список файлов, после чего команда обрабатывает целый набор изображений.

Для старых проектов с закреплённым Node-окружением Squoosh CLI остаётся рабочим инструментом. Для новых проектов нужно учитывать прекращение развития CLI в основном репозитории и сравнивать его с Sharp, ImageMagick, cwebp и imagemin. Для ручного подбора качества удобнее Squoosh.app; для ретуши и полноценного редактирования — GIMP, Paint.NET или другой графический редактор; для просмотра и пакетной подготовки файлов — XnView MP, FastStone Image Viewer, Converseen.

Рациональный вывод по сценариям:

СценарийРешение
Нужно быстро обработать каталог JPEG в WebPSquoosh CLI подходит
Нужно подобрать качество визуальноSquoosh.app удобнее
Нужна современная Node-обработка в новом проектеSharp практичнее
Требуется только WebPcwebp проще
Нужны сложные трансформации и много форматовImageMagick сильнее
Нужно редактировать изображение вручнуюнужен графический редактор
Нужно поддерживать старый процесс на SquooshSquoosh CLI оправдан при закреплённом окружении

Squoosh CLI не является универсальной программой для всех задач с изображениями. Это точный инструмент для веб-оптимизации: он хорош там, где файлы уже подготовлены, параметры понятны, результат проверяется, а обработку нужно повторять много раз.

Список изменений

Запуск Squoosh v2 и ранний CLI:

  • Публичный старт Squoosh CLI пришёлся на Squoosh v2. Командный инструмент получил установку через npm i @squoosh/cli и запуск через npx @squoosh/cli [parameters] . В этот период CLI описывался как способ получить доступ ко всему набору кодеков Squoosh из командной строки: MozJPEG, OxiPNG, WebP, AVIF и форматы, поддерживаемые браузером.
  • Ранний CLI был экспериментальным. Это важно для оценки программы: интерфейс быстро давал доступ к сильным кодекам, но документация и совместимость уступали более зрелым консольным утилитам. В пользовательских обсуждениях часто встречались вопросы по JSON-конфигурациям, кавычкам, отличиям результата CLI и веб-интерфейса, зависаниям при отдельных наборах параметров.

Развитие вокруг libSquoosh:

  • После запуска CLI появилась libSquoosh — Node-библиотека, на которой построен Squoosh CLI. Она дала разработчикам не только вызов программы через shell, но и программный интерфейс для JavaScript. Внутри использовался ImagePool , а обработка изображений параллелилась через worker pool.
  • Это развитие показало направление проекта: Squoosh должен был работать не только как сайт, но и как часть инструментов сборки. CLI закрывал терминальный сценарий, libSquoosh — программный сценарий. Для разработчиков это означало два пути: запустить squoosh-cli в npm script или использовать библиотеку напрямую в Node-коде.

Ветка 0.6.x:

  • Ветка 0.6.x активно фигурировала в инструкциях, GitHub issues и примерах команд. Пользователи запускали npx @squoosh/cli@0.6.3 -h , смотрели список опций, применяли --webp , --avif , --mozjpeg , --oxipng , задавали --resize , --quant , --output-dir . В обсуждениях встречались отчёты о различиях между CLI и веб-версией, ошибках AVIF, зависаниях и особенностях Windows-оболочек.
  • Для обзора это не мелочь, а часть профиля программы. Squoosh CLI был полезен, но требовал технической аккуратности. Он хорошо раскрывался в руках разработчика, который понимает терминал, npm и формат параметров. Для пользователя, привыкшего к кнопкам, такие сообщения об ошибках выглядели сложнее, чем в графическом интерфейсе.

Линейка 0.7.x и завершение CLI в основном репозитории:

  • Пакет @squoosh/cli в npm дошёл до 0.7.3. В карточке npm указаны пакет @squoosh/cli , лицензия Apache-2.0, команда установки npm i @squoosh/cli , репозиторий GoogleChromeLabs/squoosh и публикация 3 января 2023 года.
  • В тот же день в истории репозитория Squoosh появились коммиты Add no-longer-maintained message to cli and libsquoosh и Remove CLI / libsquoosh (#1321) . Это разделило судьбу Squoosh.app и Squoosh CLI: веб-приложение осталось в основном проекте, а CLI и libSquoosh перестали развиваться внутри него.
  • После этого появились форки и контейнерные обёртки, которые сохраняли старую CLI-функциональность. Они полезны для поддержки существующих процессов, но обзор Squoosh CLI должен отделять оригинальный инструмент @squoosh/cli от последующих форков. В рабочем проекте важно фиксировать пакет, команду и среду запуска, чтобы через месяц или год получить тот же результат.

Выберите ссылку для загрузки Squoosh CLI

Всего скачали: 7 | сегодня: 1

Скачать бесплатно
Squoosh CLI

Похожие программы на Squoosh CLI

из раздела "Графические редакторы"

Оставте свой отзыв о Squoosh CLI