Xl Converter
Easy-to-use image converter for modern formats. Supports fast parallel encoding, lossless JPEG transcoding, JPEG XL, AVIF, JPEGLI, ExifTool, and more.
Install / Use
npx skills add JacobDev1/xl-converterInstalls into whichever agent you are using.
README
Easy-to-use image converter for modern formats.
Available for Windows and Linux.

Read the Manual
</div>Features
JPEGLI
Generate fully compatible JPEG images with up to 35% better compression ratio.
Format Support
Maximize image compression with JPEG XL and AVIF. Also available: WebP, JPEG, and PNG.
Parallel Encoding
Run encoders in parallel for increased throughput.
Lossless JPEG Transcoding
Reduce the file size of your JPEG images by 16% - 22% with Lossless JPEG Transcoding. This process is reversible.
Downscaling
Scale down images to resolution, percent, shortest (and longest) side, and megapixels.
Download
Building from Source
[!NOTE] The recommended way of using XL Converter is through the official binary releases. The building process is time-consuming.
Windows 10
Prerequisites:
- Python 3.13 (check
Add python.exe to PATH) - git
- MSYS2
- Visual Studio 2022 (with Windows 10 or 11 SDK)
- Latest vc_redist
Launch MSYS2 MINGW64 and run:
pacman -Syu
If MSYS2 asks to restart, agree, and relaunch it.
Install packages:
pacman -S --needed \
git \
cmake \
wget \
make \
nasm \
base-devel \
mingw-w64-x86_64-gcc \
mingw-w64-x86_64-toolchain \
mingw-w64-x86_64-cmake \
mingw-w64-x86_64-ninja \
mingw-w64-x86_64-gtest \
mingw-w64-x86_64-giflib \
mingw-w64-x86_64-libpng \
mingw-w64-x86_64-libjpeg-turbo \
mingw-w64-x86_64-rust \
mingw-w64-x86_64-7zip
Relaunch MSYS2 MINGW64 again.
[!IMPORTANT] If you installed or upgraded any package, restart the MSYS2 environment. Otherwise, building will start failing for random reasons.
Clone the repo:
git clone -b stable --depth 1 https://github.com/JacobDev1/xl-converter.git
cd xl-converter
Run each target individually; each has additional requirements:
make libjpeg-turbomake libavifmake imagemagickmake libjxlmake oxipngmake exiftool
Launch CMD, enter the project's directory, and setup a virtual environment:
cd C:\msys64\home\user\xl-converter
python -m venv env_build
env_build\Scripts\activate
pip install -r requirements.txt
Run the application:
python main.py
Building
Launch CMD, and setup PyInstaller:
cd C:\msys64\home\user\xl-converter
env_build\Scripts\activate
%comspec% /k "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
git clone -b v6.11.1 --depth 1 https://github.com/pyinstaller/pyinstaller.git misc\pyinstaller
cd misc\pyinstaller\bootloader
python waf all
cd ..
pip install .
cd ..\..
env_build\Scripts\activate
The last line reloads the environment to avoid the ModuleNotFoundError.
Bundle:
python build.py
Linux (Ubuntu-based)
Prerequisites:
- Docker (set up to run without root)
- pyenv (add to shell)
Install packages:
sudo apt update
sudo apt install git make curl fuse p7zip-full
Install xcb QPA dependencies:
sudo apt install '^libxcb.*-dev' libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
Install Python build dependencies:
sudo apt install wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev liblzma-dev
Compile and setup Python 3.13:
pyenv install 3.13
pyenv global 3.13
Clone and set up the repo:
git clone -b stable --depth 1 https://github.com/JacobDev1/xl-converter.git
cd xl-converter
Compile dependencies:
make deps
Setup a virtual environment:
python -m venv env_build
source env_build/bin/activate
pip install -r requirements.txt
Run the program:
python main.py
Building
Setup PyInstaller:
source env_build/bin/activate
git clone -b v6.11.1 --depth 1 https://github.com/pyinstaller/pyinstaller.git misc/pyinstaller
cd misc/pyinstaller/bootloader
python waf all --gcc
cd ..
pip install .
cd ../..
source env_build/bin/activate
The last line reloads the environment to avoid the ModuleNotFoundError error.
Build:
python build.py
macOS
[!NOTE] The native macOS support is experimental. Use Wine instead.
Prerequisites:
Add the following line to /opt/local/etc/macports/macports.conf:
macosx_deployment_target 11.0
Install dependencies:
sudo port -s install nasm cmake git wget gtest coreutils ninja gmake gsed pkgconfig +universal llvm-17 clang-17 giflib5 +universal libjpeg-turbo +universal libpng +universal zlib +universal brotli +universal webp +universal libiconv +universal libomp +universal imath +universal glib2 +universal gettext +universal openjpeg +universal lcms2 +universal fontconfig +universal freetype +universal libjxl +universal libheif +universal liblqr +universal tiff +universal libtool +universal
Run each target individually:
make libjpeg-turbomake libjxlmake libavifmake oxipngmake imagemagick
Create and activate a virtual environment:
python -m venv env_build
source env_build/bin/activate
pip install -r requirements.txt
Run the application:
python main.py
Bundling support is limited. The exported bundle will not work on another machine!
Clone PyInstaller, recompile the bootloader, and install:
git clone -b v6.11.1 --depth 1 https://github.com/pyinstaller/pyinstaller.git misc/pyinstaller
cd misc/pyinstaller/bootloader
python waf all --clang
cd ..
pip install .
cd ../..
Bundle:
python build.py
Info
[!TIP] To manage multiple Python versions on Windows, you can use: the
pylauncher or pyenv-win.
Testing
Create a test environment.
python -m venv env_dev
source env_dev/bin/activate
pip install -r requirements.txt -r requirements_test.txt
Unit Tests
python test.py
You can control which tests to run. Run python test.py --help to learn more.
Functional Tests
test_convert.py is a separate test suite focusing on validating program's output.
Linux
sudo apt install xvfb
make test-convert
Windows
python test_convert.py
Contributing
Before contributing to issues or sending pull requests, please review CONTRIBUTING.md.
Related Skills
gortex
1.1kHigh-performance code-intelligence engine for AI agents and IDE, supports 257 languages, multi repositories, based on graph, with access via CLI, MCP Server, and API. AI coding agents teammate - expose only needed information, cutting token usage up to 50x. 100% local.
techrogue
TechRogue – Roguelike technical quiz for engineers. Usage: /techrogue | /techrogue build | /techrogue settings
cc-switch
125.6kA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
cc-switch
125.7kA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
