SkillAgentSearch skills...

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-converter

Installs into whichever agent you are using.

About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center"> <img src="assets/icons/logo.svg" style="width: 120px; height: auto;"> <h3 align="center">XL Converter</h3>

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

Official website

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:

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-turbo
  • make libavif
  • make imagemagick
  • make libjxl
  • make oxipng
  • make 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:

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-turbo
  • make libjxl
  • make libavif
  • make oxipng
  • make 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 py launcher or pyenv-win.

Testing

Setup repo.

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

View on GitHub
GitHub Stars537
CategoryCustomer
Updated2d ago
Forks26

Languages

Python

Security Score

85/100

Audited on Aug 6, 2026

No findings