Gifsicle

Eddie Kohler (автор программы) · лицензия GPL-2.0

Сжимает анимированные GIF для сайта, писем и инструкций: убирает повторы между кадрами, сокращает палитру, меняет размер и скорость, и всё это агент делает одной командой.

macOS · LinuxНа компьютере, на сервере и в контейнереБесплатно, GPL-2.0

✓ Проверено 19.10.2026: Ubuntu 24.04 в одноразовом контейнере Docker на сервере, от root: Gifsicle 1.98, собранный из архива автора с www.lcdf.org после apt-get install build-essential; тестовую анимацию собирал convert из ImageMagick, который уже был в контейнере. Что именно проверяли

Установить агентом ↓

Какую задачу решает

Консольная программа для анимированных GIF. При сжатии она хранит в каждом кадре только то, что поменялось, сокращает палитру, меняет размер, скорость и обрезает кадры. Агент так готовит лёгкую анимацию для сайта, письма или инструкции и вынимает из неё отдельный кадр.

  • Ключ -O3 перебирает несколько способов сжатия. В прогоне анимация из 24 кадров уменьшилась с 304 420 до 22 113 байт, gifdiff и покадровая сверка в ImageMagick расхождений не нашли.
  • Ключи --lossy, --colors и --resize-width уменьшают файл ещё сильнее ценой искажений. Та же анимация с --lossy=80, палитрой 64 цвета и шириной 320 точек заняла 12 133 байт.
  • Ключ -d меняет задержку между кадрами в сотых долях секунды, --crop обрезает кадры, запись '#0' вынимает первый кадр отдельным файлом.
  • Ключ -b переписывает сразу несколько файлов на месте. Вторая программа из набора, gifdiff, сравнивает две анимации по виду. В прогоне на совпавших файлах она вернула код 0, на разных код 1.

Пример результата

Говоришь агенту

Сожми анимацию anim.gif для сайта: ширина 320 точек, не больше 64 цветов, результат положи в out/anim-320.gif, исходник не трогай.

Что получится

Мы прогнали этот сценарий на тестовой анимации из 24 кадров 480x270, которую скрипт сам нарисовал. Команда gifsicle -O3 --lossy=80 --colors 64 --resize-width 320 anim.gif -o out/anim-320.gif завершилась с кодом 0. Файл уменьшился с 304 420 до 12 133 байт, в нём те же 24 кадра, логический экран 320x180 и общая палитра на 64 цвета. Сумма sha256 исходника не изменилась.

Паспорт

Кто делает
Eddie Kohler (автор программы)
Исходный код
github.com/kohler/gifsicle
Инструкция
lcdf.org/gifsicle/man.html
Лицензия
GPL-2.0
Версия
1.98 на 19.10.2026
Системы
macOS · Linux
Где работает
На компьютере, на сервере и в контейнере
Цена
Бесплатно
Проверка
Проверено 19.10

Установить агентом

Для Claude Code, Codex, Hermes и любого агента с терминалом
Установи программу «Gifsicle». Работай по шагам и после каждого коротко говори, что сделал.

Что это за программа (каталог smyslokod.ru, официальные источники сверены 19.10.2026):
- официальный сайт: https://www.lcdf.org/gifsicle/
- исходный код: https://github.com/kohler/gifsicle
- инструкция по установке: https://www.lcdf.org/gifsicle/man.html
- актуальная версия на 19.10.2026: 1.98
- лицензия: GPL-2.0
- для работы нужно (в отдельных случаях): Компилятор C и make (пакет build-essential в Ubuntu) - Нужны при сборке из архива автора. Пакет apt приходит собранным, у Homebrew готовые сборки есть для Mac на Apple Silicon.

Правила:
1. Ничего не устанавливай и не меняй, пока я не скажу «да» на твой план.
2. Ставь только способами из этого промпта. Сторонние сборки, скрипты с форумов и из чужих репозиториев не бери.
3. Мои проекты не трогай: не меняй их файлы, виртуальные окружения и списки зависимостей (package.json, requirements.txt, pyproject.toml).
4. Команды с sudo, правку профиля оболочки (~/.zshrc, ~/.bashrc) и переменной PATH делай только после моего отдельного «да» на каждую.
5. Не проси у меня пароли и ключи и не выводи их. Если нужен пароль администратора, дай команду, я выполню её сам.
6. Пиши результат в новый файл через -o.
7. Ключ -b ставь только после «да» человека. Он переписывает исходные файлы без копии.
8. После сжатия покажи человеку размер файла до и после и прочитай stderr. По NEWS.md 1.98 ошибки чтения GIF не меняют код выхода без ключа --no-ignore-errors. В нашем прогоне обрезанный файл дал код 0.

Шаги:
0. Определи, где ты работаешь: мой компьютер, сервер или контейнер. Какая система и процессор, какие менеджеры пакетов есть (Homebrew, apt, winget, uv, pipx). Ставить нужно туда, где ты сам запускаешь команды.
   - на компьютере: подготовить анимацию к выкладке на сайт или в письмо.
   - на сервере: сжимать GIF пачкой там, где лежат файлы сайта.
   - в контейнере: мы проверяли в контейнере Ubuntu 24.04 от root.
1. Проверь, не стоит ли программа уже: gifsicle --version. Если стоит и запускается, ничего не ставь и переходи к шагу 5.
2. Обязательных зависимостей у программы нет, то, что нужно в отдельных случаях, перечислено выше. Проверь свободное место на диске: нужно После сборки из архива: gifsicle 804 920 байт и gifdiff 226 536 байт в /usr/local/bin плюс две страницы справки. Пакет Ubuntu 1.94 по данным dpkg занимает 359 КиБ. Сколько места заняли инструменты сборки, мы не мерили..
3. Составь план: каким одним способом из списка ниже будешь ставить, что появится на диске и сколько места займёт, что поменяется в системе и как потом удалить. Покажи план и жди моего «да».
   Способы из официальных источников:
   - macOS, Homebrew: brew install gifsicle (Сайт автора ссылается на Homebrew. Формула gifsicle, описание «GIF image/animation creator/editor», зависимостей нет. Команда ставит текущую версию формулы, на 19.10.2026 это 1.98, позже она может смениться. Версию 1.98 мы проверяли только сборкой из архива, brew install не запускали.)
   - Linux, сборка из архива автора: curl -fsSLO https://www.lcdf.org/gifsicle/gifsicle-1.98.tar.gz && echo "e9d4cc0816db95c64d32e79f778836db0f1f7eb15868490bd330104e5146b66e  gifsicle-1.98.tar.gz" | sha256sum -c - && tar xzf gifsicle-1.98.tar.gz && cd gifsicle-1.98 && ./configure && make && sudo make install (Архив 599 710 байт. Автор не публикует рядом сумму или подпись, сумма sha256 взята из формулы Homebrew, скачанный нами файл с ней совпал. По README программа ставится в /usr/local. Без библиотек X11 configure пропускает программу просмотра gifview. gifsicle и gifdiff собираются и без них. Мы ставили от root без sudo, из пакетов доставили только build-essential. Папку gifsicle-1.98 сохрани: команда удаления запускается из неё.)
   - Linux, apt: sudo apt-get install -y gifsicle (Команда ставит текущую версию пакета из репозитория дистрибутива. В нашем прогоне на Ubuntu 24.04 это была 1.94, она старше версии из карточки. В прогоне пакет поставил gifsicle, gifdiff и gifview в /usr/bin, по dpkg он зависит от libc6 и libx11-6.)
4. Установи по согласованному плану. Если что-то идёт не так, как в плане, остановись и спроси.
5. Проверь результат:
   - gifsicle --version: программа запускается без ошибки;
   - Во временной папке нарисуй тестовую анимацию из 24 кадров и собери её в GIF командой convert из ImageMagick (в нашем контейнере она уже стояла). Сожми её с -O3 и проверь gifdiff, что картинка не изменилась. Потом получи уменьшенную копию с --lossy, --colors и --resize-width, вынь первый кадр, ускорь анимацию, обрежь кадры, перепиши две копии ключом -b. Сверь размеры, число кадров, задержку и сумму исходника, посмотри коды выхода на обрезанном и отсутствующем файле. Делай это во временной папке и не трогай мои файлы.
     mkdir -p /tmp/gif-test/frames /tmp/gif-test/out && cd /tmp/gif-test
     python3 -c "W,H=480,270;bg=lambda x,y:((x//30)*15,(y//30)*25,128);[open('frames/f%02d.ppm'%i,'wb').write(b'P6 %d %d 255 '%(W,H)+bytes(v for y in range(H) for x in range(W) for v in ((250,250,250) if (20+i*17<=x<60+i*17 and 100<=y<140) else (40,160,60) if (y>=250 and x<i*20) else bg(x,y)))) for i in range(24)]"
     convert -delay 8 -loop 0 +dither frames/f*.ppm anim.gif
     sha256sum anim.gif > anim.sha256 && gifsicle --info anim.gif | head -4
     gifsicle -O3 anim.gif -o out/anim-o3.gif && gifdiff anim.gif out/anim-o3.gif && echo same
     gifsicle -O3 --lossy=80 --colors 64 --resize-width 320 anim.gif -o out/anim-320.gif
     ls -l anim.gif out/anim-o3.gif out/anim-320.gif && gifsicle --info out/anim-320.gif | head -4
     gifsicle anim.gif '#0' -o out/first.gif
     gifsicle -d 4 anim.gif -o out/fast.gif && gifsicle --info out/fast.gif | grep -m1 delay
     gifsicle --crop 0,0+240x135 anim.gif -o out/crop.gif && gifsicle --info out/crop.gif | head -2
     mkdir -p batch && cp anim.gif batch/a.gif && cp anim.gif batch/b.gif && gifsicle -b -O3 batch/a.gif batch/b.gif && ls -l batch
     sha256sum -c anim.sha256
     head -c 20000 anim.gif > broken.gif; gifsicle -O3 broken.gif -o out/broken-o3.gif; echo code=$?
     gifsicle --no-ignore-errors -O3 broken.gif -o out/broken2.gif; echo code=$?
     gifsicle nope.gif -o out/nope.gif; echo code=$?
   - если ты работаешь в папке моего проекта, покажи git status: от установки в проекте не должно появиться изменений.
6. Итог одним сообщением: что установлено, какой версии и куда, сколько места заняло, что поменялось в системе и как всё удалить (macOS, Homebrew: brew uninstall gifsicle; Linux, сборка из архива автора: cd gifsicle-1.98 && sudo make uninstall; Linux, apt: sudo apt-get purge -y gifsicle).

Если на любом шаге ошибка, не чини наугад: покажи текст ошибки и скажи, что, по-твоему, случилось. Частые проблемы: https://smyslokod.ru/cli/gifsicle#problemy

Промпт собран из официальных инструкций, сверенных 19.10.2026. Агент сначала проверит, что уже стоит, покажет план с местом на диске и способом удаления и без твоего «да» ничего не поставит.

Как ставят вручную

Способы из официальных источников, у каждого ссылка на первоисточник.

  • macOS · Homebrew · источник

    brew install gifsicle

    Сайт автора ссылается на Homebrew. Формула gifsicle, описание «GIF image/animation creator/editor», зависимостей нет. Команда ставит текущую версию формулы, на 19.10.2026 это 1.98, позже она может смениться. Версию 1.98 мы проверяли только сборкой из архива, brew install не запускали.

  • Linux · сборка из архива автора · источник

    curl -fsSLO https://www.lcdf.org/gifsicle/gifsicle-1.98.tar.gz && echo "e9d4cc0816db95c64d32e79f778836db0f1f7eb15868490bd330104e5146b66e gifsicle-1.98.tar.gz" | sha256sum -c - && tar xzf gifsicle-1.98.tar.gz && cd gifsicle-1.98 && ./configure && make && sudo make install

    Архив 599 710 байт. Автор не публикует рядом сумму или подпись, сумма sha256 взята из формулы Homebrew, скачанный нами файл с ней совпал. По README программа ставится в /usr/local. Без библиотек X11 configure пропускает программу просмотра gifview. gifsicle и gifdiff собираются и без них. Мы ставили от root без sudo, из пакетов доставили только build-essential. Папку gifsicle-1.98 сохрани: команда удаления запускается из неё.

  • Linux · apt · источник

    sudo apt-get install -y gifsicle

    Команда ставит текущую версию пакета из репозитория дистрибутива. В нашем прогоне на Ubuntu 24.04 это была 1.94, она старше версии из карточки. В прогоне пакет поставил gifsicle, gifdiff и gifview в /usr/bin, по dpkg он зависит от libc6 и libx11-6.

Как удалить

  • macOS, Homebrew: brew uninstall gifsicle
  • Linux, сборка из архива автора: cd gifsicle-1.98 && sudo make uninstall
  • Linux, apt: sudo apt-get purge -y gifsicle

Что нужно для работы

Системы

  • macOS - через Homebrew, у формулы есть готовые сборки для Mac на Apple Silicon. На Mac мы не проверяли.
  • Linux - сборка из архива автора или пакет дистрибутива. Мы проверяли Ubuntu 24.04 на x86_64.

Где запускать

Ставить нужно туда, где работает агент: на твой компьютер, сервер или в контейнер.

  • На компьютере - подготовить анимацию к выкладке на сайт или в письмо.
  • На сервере - сжимать GIF пачкой там, где лежат файлы сайта.
  • В контейнере - мы проверяли в контейнере Ubuntu 24.04 от root.

Сколько ресурсов нужно

Место на диске
После сборки из архива: gifsicle 804 920 байт и gifdiff 226 536 байт в /usr/local/bin плюс две страницы справки. Пакет Ubuntu 1.94 по данным dpkg занимает 359 КиБ. Сколько места заняли инструменты сборки, мы не мерили.
Память
Отдельно не мерили. С версии 1.98 программа по умолчанию отказывается создавать логический экран больше 16384x16384 точек, так автор бережёт память (NEWS.md). Ключ --max-screen меняет этот предел.
Сеть
Самой программе сеть не нужна: во время задачи запись соединений пустая. При установке были соединения с www.lcdf.org (3.233.166.34, порт 443), архивами Ubuntu (91.189.91.81-83, 91.189.92.22-24, 185.125.190.81-83, порт 80) и deb.nodesource.com (104.20.45.190, 172.66.150.169, порт 443). Последний нужен для Node.js в образе нашей песочницы, к Gifsicle он не относится. DNS контейнера отвечал на 127.0.0.11. Доступ из России мы не проверяли.

Пакет build-essential ставился 30 с, скачивание и сборка Gifsicle заняли 6 с. Сжатие с -O3 тестовой анимации 480x270 из 24 кадров заняло 27 мс.

Лицензия и платные замены

Лицензия GPL-2.0. Свободная лицензия GNU GPL версии 2: пользоваться можно бесплатно, в том числе в работе. Условия касаются тех, кто распространяет программу или её изменённую версию. Гарантий автор не даёт. Текст лицензии

Цена: Бесплатно. Бесплатно, GPL-2.0.

Платные замены

Платную замену мы не указываем: тарифы платных сервисов сжатия GIF мы не сверяли.

Бесплатные замены

  • ImageMagick - Консольная программа для картинок многих форматов, есть в каталоге. В нашем прогоне ею собирали тестовую анимацию из кадров и сверяли кадры после сжатия.

О чём помнить

  • Безопасность. Агент запускает gifsicle в терминале сам (exec). Программа читает файлы GIF, которые ей назвали (read), и пишет результат по пути из -o с правами пользователя (write). Ключ -b переписывает сами исходные файлы на месте без вопроса и без копии (acts): в прогоне так переписались две тестовые копии. Входа в учётные записи и ключей программа не просит.
  • По справке -O не обещает уменьшить файл, в редких случаях даже -O3 его увеличивает. Сравнивай размер до и после.
  • Ключ --lossy меняет цвета точек, искажения растут вместе с числом, по умолчанию оно 20. С версии 1.96 --lossy считает искажения иначе, и то же число может сжимать слабее, чем в старых версиях (NEWS.md).
  • В прогоне обрезанный файл программу не остановил. Она написала «read error: GIF truncated», записала результат и вышла с кодом 0. С ключом --no-ignore-errors тот же файл дал код 1.
  • Готовых файлов для Windows автор не выпускает. Сайт ссылается на сборки стороннего человека и сам предупреждает, что не проверял их, поэтому способа для Windows в карточке нет.

Частые проблемы

gifsicle:file.gif: read error: GIF truncated, код 0

Файл обрезан, например не докачался. В прогоне программа записала результат из той части, которую успела прочитать. Скачай файл заново. Чтобы такой файл давал ошибку, добавь --no-ignore-errors.

configure: WARNING: Not compiling gifview since X is not available.

В системе нет библиотек X11 для программы просмотра gifview. Сборка продолжится: gifsicle и gifdiff от X11 не зависят. Чтобы убрать предупреждение, запусти ./configure --disable-gifview.

gifsicle:nope.gif: No such file or directory, код 1

Файла по этому пути нет. Проверь путь и имя файла.

Проверка

✓ Проверено 19.10.2026: Ubuntu 24.04 в одноразовом контейнере Docker на сервере, от root: Gifsicle 1.98, собранный из архива автора с www.lcdf.org после apt-get install build-essential; тестовую анимацию собирал convert из ImageMagick, который уже был в контейнере.

Когда
19.10.2026
Среда
Ubuntu 24.04 в одноразовом контейнере Docker на сервере, от root: Gifsicle 1.98, собранный из архива автора с www.lcdf.org после apt-get install build-essential; тестовую анимацию собирал convert из ImageMagick, который уже был в контейнере
Объём
Установили и прогнали задачу на тестовых данных
Что именно сделали
  1. Одноразовый контейнер Ubuntu 24.04 без данных и ключей, gifsicle в нём не было. Поставили build-essential через apt. Скачали gifsicle-1.98.tar.gz с www.lcdf.org (599 710 байт), sha256sum -c сверила сумму из формулы Homebrew. ./configure, make и make install поставили gifsicle и gifdiff в /usr/local/bin, gifview без X11 не собрался. gifsicle --version вывела LCDF Gifsicle 1.98.
  2. Скрипт сам нарисовал 24 кадра 480x270 с движущимся квадратом и полосой и собрал их командой convert -delay 8 -loop 0 +dither frames/f*.ppm anim.gif в файл 304 420 байт. Сумму sha256 исходника записали.
  3. gifsicle -O3 anim.gif -o out/anim-o3.gif дала 22 113 байт. gifdiff anim.gif out/anim-o3.gif вернула код 0, все 24 кадра после -coalesce в ImageMagick совпали с исходными побайтно.
  4. Сценарий примера: gifsicle -O3 --lossy=80 --colors 64 --resize-width 320 anim.gif -o out/anim-320.gif дала 12 133 байт, код 0. gifsicle --info показала 24 кадра, экран 320x180 и палитру на 64 цвета, gifdiff с исходником вернула код 1: картинка изменилась, как и ожидали.
  5. Запись '#0' вынула первый кадр, он совпал с кадром 0 исходника. -d 4 поставила всем 24 кадрам задержку 0.04 с, --crop 0,0+240x135 обрезала кадры до 240x135. gifsicle -b -O3 batch/a.gif batch/b.gif переписала обе копии на месте без вопроса, по 22 113 байт.
  6. Сумма исходника anim.gif не изменилась. Обрезанный до 20 000 байт файл без ключей дал «read error: GIF truncated» и код 0, с --no-ignore-errors код 1. Отсутствующий файл дал код 1. Все 15 команд taskCommands выполнили по очереди из папки /tmp/gif-test, каждая завершилась с кодом 0, соединений во время задачи не было.
  7. Удалили командой make uninstall из папки исходников: gifsicle, gifdiff и их справка ушли, после hash -r файлов в /usr/local/bin нет. Отдельно apt-get install gifsicle поставил 1.94, purge его убрал. Все проверки скрипт делал сам и только после них печатал TASK_OK.
ДатаВерсияОбъёмГдеИтог
19.10.20261.98задачаконтейнер, Linuxполучилось

«Проверено» ставим, только когда сами поставили программу и прогнали её на задаче. Сверка ссылок и вывод версии так не называются.

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

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