Pre-compiled gifsicle binary for GIF optimization
Project description
gifsicle-bin
Pre-compiled gifsicle binary distributed as a Python wheel and as WASM/JS for browser use.
- Python developers: Let your app take advantage of
gifsicleoptimization without forcing users to do an OS-level installation of it. - Frontend developers: Add trustworthy Gifsicle optimization without needing a backend (or requiring heavy processing server-side).
- End users: Get GIF optimization powers easily on multiple OSes without needing package installation permissions.
Built for agent-log-gif.
How is this different from pygifsicle?
pygifsicle requires users to install the gifsicle binary separately (brew install gifsicle, apt install gifsicle, etc.). While pygifsicle helps automate this somewhat, this still requires root permissions on most GNU/Linux distributions, and requires users to have Homebrew or manually install gifsicle themselves on Mac.
Use pygifsicle if you want to leverage the gifsicle on user's systems already, and if you don't care which specific version they have.
gifsicle-bin bundles the compiled gifsicle binary inside the wheel at a deterministic version and makes it available via the pip/uv dependency resolution mechanisms your Python code already uses.
Use gifsicle-bin if you want end users to be able to use gifsicle without needing a precondition of brew install or apt installing it, or if you want to use a deterministic version of gifsicle.
Manual Installation
pip install gifsicle-bin
# or
uv add gifsicle-bin
Usage
Once installed, gifsicle is available as a command:
gifsicle -O2 --lossy=80 input.gif -o output.gif
Or from Python:
import subprocess
subprocess.run(["gifsicle", "-O2", "--lossy=80", "input.gif", "-o", "output.gif"])
To use gifsicle provided by gifsicle-bin as a one off (in a CI build step, etc.):
uvx gifsicle-bin
(eg uvx gifsicle-bin -O2 input.gif -o output.gif)
WASM build
In addition to native wheels, gifsicle-bin builds gifsicle as a WebAssembly module for browser use. See wasm/README.md.
Development instructions for gifsicle-bin
Updating gifsicle version
gifsicle's original source is used via a clean git submodule without patching or modification.
cd vendor/gifsicle && git fetch --tags && git checkout vX.Y && cd ../..
Update the version in wasm/package.json, pyproject.toml and config.h.cmake.in (grep for the old version). If configure.ac changed between versions, check for new HAVE_* defines and add matching entries to CMakeLists.txt + config.h.cmake.in.
To publish, create a new tag and release for vX.Y. CI will build native wheels for all platforms (published to PyPI via OIDC), and WASM artifacts (attached to the GitHub Release and published to npm via OIDC).
License
gifsicle is Copyright (C) 1997-2025 Eddie Kohler and distributed under the
GNU General Public License, Version 2.
This package redistributes gifsicle as a compiled binary. The source code is
available at https://github.com/kohler/gifsicle.
GPL Information:
gifsicle-bin is a convenience package that puts the gifsicle CLI on your PATH.
gifsicle-bin still requires calling gifsicle externally (eg via subprocess.run)
as a separate program at arms length. See the FSF's
Plugins and
Proprietary Systems
FAQs.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gifsicle_bin-1.96.4.tar.gz.
File metadata
- Download URL: gifsicle_bin-1.96.4.tar.gz
- Upload date:
- Size: 491.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d08c00f887129efc93de83a8c9a20c346ed48dcf0aae1987aa19427e21eae8c
|
|
| MD5 |
83e3f3426a900b6a61261813862582dd
|
|
| BLAKE2b-256 |
76c38a0c9785807d17881dd009c7cfca663c43083ae3977c76f6e6cf5ede1bbf
|
Provenance
The following attestation bundles were made for gifsicle_bin-1.96.4.tar.gz:
Publisher:
build.yml on ysamlan/gifsicle-bin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gifsicle_bin-1.96.4.tar.gz -
Subject digest:
0d08c00f887129efc93de83a8c9a20c346ed48dcf0aae1987aa19427e21eae8c - Sigstore transparency entry: 1168309489
- Sigstore integration time:
-
Permalink:
ysamlan/gifsicle-bin@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Branch / Tag:
refs/tags/v1.96.4 - Owner: https://github.com/ysamlan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Trigger Event:
push
-
Statement type:
File details
Details for the file gifsicle_bin-1.96.4-py3-none-win_arm64.whl.
File metadata
- Download URL: gifsicle_bin-1.96.4-py3-none-win_arm64.whl
- Upload date:
- Size: 104.7 kB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42e2841ea8a7f39c7de813f75d9be1735efd4596d64e33bc5d4023b4a0e2375a
|
|
| MD5 |
c32562db09431e7c611ec1ef685df255
|
|
| BLAKE2b-256 |
1a600e427aade992b67cac181c0793e8cdf31847f630fc2325eb78ecd52a37cb
|
Provenance
The following attestation bundles were made for gifsicle_bin-1.96.4-py3-none-win_arm64.whl:
Publisher:
build.yml on ysamlan/gifsicle-bin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gifsicle_bin-1.96.4-py3-none-win_arm64.whl -
Subject digest:
42e2841ea8a7f39c7de813f75d9be1735efd4596d64e33bc5d4023b4a0e2375a - Sigstore transparency entry: 1168309561
- Sigstore integration time:
-
Permalink:
ysamlan/gifsicle-bin@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Branch / Tag:
refs/tags/v1.96.4 - Owner: https://github.com/ysamlan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Trigger Event:
push
-
Statement type:
File details
Details for the file gifsicle_bin-1.96.4-py3-none-win_amd64.whl.
File metadata
- Download URL: gifsicle_bin-1.96.4-py3-none-win_amd64.whl
- Upload date:
- Size: 117.5 kB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f37cb6ab46981ef8fcdf2bdff7ccc6d911954edcb830b47a40624f7c6d9b5940
|
|
| MD5 |
593689acee20504ed8d33883ba31b4d4
|
|
| BLAKE2b-256 |
7ccad9b8bac10c623baa2de0f8d7d22a210a8bea705b085bdd07ab016ce4300e
|
Provenance
The following attestation bundles were made for gifsicle_bin-1.96.4-py3-none-win_amd64.whl:
Publisher:
build.yml on ysamlan/gifsicle-bin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gifsicle_bin-1.96.4-py3-none-win_amd64.whl -
Subject digest:
f37cb6ab46981ef8fcdf2bdff7ccc6d911954edcb830b47a40624f7c6d9b5940 - Sigstore transparency entry: 1168309629
- Sigstore integration time:
-
Permalink:
ysamlan/gifsicle-bin@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Branch / Tag:
refs/tags/v1.96.4 - Owner: https://github.com/ysamlan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Trigger Event:
push
-
Statement type:
File details
Details for the file gifsicle_bin-1.96.4-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: gifsicle_bin-1.96.4-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 140.4 kB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3f1018730b7249339f575295dcd11926e184b8e16572e8ade45a76a985c5154
|
|
| MD5 |
dc9f947381a7b88ac0e5c6b765c82709
|
|
| BLAKE2b-256 |
6c8699f8649edacffa2fcd571f50b5c42f234817b6357fb599a88ee0e8efb626
|
Provenance
The following attestation bundles were made for gifsicle_bin-1.96.4-py3-none-musllinux_1_2_x86_64.whl:
Publisher:
build.yml on ysamlan/gifsicle-bin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gifsicle_bin-1.96.4-py3-none-musllinux_1_2_x86_64.whl -
Subject digest:
e3f1018730b7249339f575295dcd11926e184b8e16572e8ade45a76a985c5154 - Sigstore transparency entry: 1168309515
- Sigstore integration time:
-
Permalink:
ysamlan/gifsicle-bin@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Branch / Tag:
refs/tags/v1.96.4 - Owner: https://github.com/ysamlan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Trigger Event:
push
-
Statement type:
File details
Details for the file gifsicle_bin-1.96.4-py3-none-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: gifsicle_bin-1.96.4-py3-none-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 138.2 kB
- Tags: Python 3, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e37d5efb039f1e2e5fa3a96e444fe79d7c05afcd747dd440879abd350dd5028
|
|
| MD5 |
681ef635cc678dfe85ffb23088ce9545
|
|
| BLAKE2b-256 |
7af8b14d191a3f4833fcee2e9ec5c886e969a34f4928b92b73f9953138ab279b
|
Provenance
The following attestation bundles were made for gifsicle_bin-1.96.4-py3-none-musllinux_1_2_aarch64.whl:
Publisher:
build.yml on ysamlan/gifsicle-bin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gifsicle_bin-1.96.4-py3-none-musllinux_1_2_aarch64.whl -
Subject digest:
8e37d5efb039f1e2e5fa3a96e444fe79d7c05afcd747dd440879abd350dd5028 - Sigstore transparency entry: 1168309730
- Sigstore integration time:
-
Permalink:
ysamlan/gifsicle-bin@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Branch / Tag:
refs/tags/v1.96.4 - Owner: https://github.com/ysamlan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Trigger Event:
push
-
Statement type:
File details
Details for the file gifsicle_bin-1.96.4-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: gifsicle_bin-1.96.4-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 136.9 kB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7393739383bfc73d62dbef559c0689afbd6b6a2bdf550c1323eaa9a892e3284a
|
|
| MD5 |
8646c3f121c8e8cefde259746b845368
|
|
| BLAKE2b-256 |
f6d76be0647f1e4027b1e886883915cdaea3021e8a23baa3315943b132ad80df
|
Provenance
The following attestation bundles were made for gifsicle_bin-1.96.4-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on ysamlan/gifsicle-bin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gifsicle_bin-1.96.4-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
7393739383bfc73d62dbef559c0689afbd6b6a2bdf550c1323eaa9a892e3284a - Sigstore transparency entry: 1168309653
- Sigstore integration time:
-
Permalink:
ysamlan/gifsicle-bin@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Branch / Tag:
refs/tags/v1.96.4 - Owner: https://github.com/ysamlan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Trigger Event:
push
-
Statement type:
File details
Details for the file gifsicle_bin-1.96.4-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: gifsicle_bin-1.96.4-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 133.8 kB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2aa25e1af983d6b55ac6827af6a350aa05659b83e3179473b8a34f50e6f52bea
|
|
| MD5 |
baa913d0f9426bd07d59dac87122d3a6
|
|
| BLAKE2b-256 |
dfa76eff0b7dd839aebd1e30ce7ab291d60c82e160c02d7725ce2745201b476e
|
Provenance
The following attestation bundles were made for gifsicle_bin-1.96.4-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
build.yml on ysamlan/gifsicle-bin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gifsicle_bin-1.96.4-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
2aa25e1af983d6b55ac6827af6a350aa05659b83e3179473b8a34f50e6f52bea - Sigstore transparency entry: 1168309589
- Sigstore integration time:
-
Permalink:
ysamlan/gifsicle-bin@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Branch / Tag:
refs/tags/v1.96.4 - Owner: https://github.com/ysamlan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Trigger Event:
push
-
Statement type:
File details
Details for the file gifsicle_bin-1.96.4-py3-none-macosx_10_9_universal2.whl.
File metadata
- Download URL: gifsicle_bin-1.96.4-py3-none-macosx_10_9_universal2.whl
- Upload date:
- Size: 230.8 kB
- Tags: Python 3, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d40c5c92bc6559af4056a37b1c7912f3960fe1da9c5063f1fe6daf907c935db5
|
|
| MD5 |
b4a2328c2118fdd0f2b69f6fddbdaec8
|
|
| BLAKE2b-256 |
fa6053fcfeb1bb60783c82e140db5fcaa11502eb45ba8c3e05ce629406556e96
|
Provenance
The following attestation bundles were made for gifsicle_bin-1.96.4-py3-none-macosx_10_9_universal2.whl:
Publisher:
build.yml on ysamlan/gifsicle-bin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gifsicle_bin-1.96.4-py3-none-macosx_10_9_universal2.whl -
Subject digest:
d40c5c92bc6559af4056a37b1c7912f3960fe1da9c5063f1fe6daf907c935db5 - Sigstore transparency entry: 1168309694
- Sigstore integration time:
-
Permalink:
ysamlan/gifsicle-bin@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Branch / Tag:
refs/tags/v1.96.4 - Owner: https://github.com/ysamlan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@6cc8db45526f0f805fae96c85fe9ce2fda442bba -
Trigger Event:
push
-
Statement type: