cibuildwheel
Build Python wheels on CI with minimal configuration.
What it is and what it does
cibuildwheel is a CI automation tool that builds and tests Python wheels across multiple operating systems and Python versions without manual per-platform configuration. It runs inside your CI service and handles the complexity of building wheels for macOS (Intel and Apple Silicon), Linux (manylinux and musllinux), Windows (64-bit, 32-bit, and ARM64), plus experimental support for Android, iOS, and Pyodide. The tool bundles shared library dependencies automatically using auditwheel on Linux, delocate on macOS, and delvewheel on Windows, then runs your library's tests against each built wheel to catch platform-specific issues early.
You configure it once in your CI workflow and it targets CPython 3.9 through 3.15, PyPy, and GraalPy across all supported architectures. It integrates directly with GitHub Actions, Azure Pipelines, CircleCI, and GitLab CI, eliminating the need to write separate build scripts for each platform. The package itself has nine runtime dependencies (bashlex, bracex, build, certifi, dependency-groups, filelock, humanize, packaging, platformdirs) and installs as a pure Python wheel with low friction.
Use it for:
- Build wheels for a Python package targeting multiple Python versions and platforms in a single CI run.
- Automatically test wheels on each platform before publishing to PyPI to catch binary incompatibilities.
- Bundle native library dependencies (C/C++ extensions) across Linux, macOS, and Windows without manual auditwheel/delocate configuration.
- Support PyPy or GraalPy alongside CPython in your wheel matrix without duplicating CI logic.
- Build wheels for experimental platforms like Android or iOS as part of a unified CI pipeline.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Automates building and testing Python wheels across multiple platforms (macOS, Linux, Windows) and Python versions directly from CI/CD pipelines.
Yes. This is a production-stable tool (Development Status 5) with active maintenance, no known vulnerabilities, and low install friction. Install it if you maintain a Python package with compiled extensions or multi-platform support and want to automate wheel building across CI services. Skip it only if you build wheels exclusively on a single platform or do not use a supported CI system.
Install
cibuildwheel on PyPI
pip
pip install cibuildwheeluv
uv add cibuildwheelpoetry
poetry add cibuildwheelInstalling cibuildwheel
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with a release 9 days ago and 2257 repository stars. Requires Python 3.11 or later to run.
License in practice
BSD-2-Clause is a permissive license with minimal restrictions; you can use this in commercial projects with standard attribution.
Quickstart
pip install cibuildwheel
# In your CI workflow (e.g., .github/workflows/wheels.yml):
# - uses: actions/setup-python@v6
# - run: pip install cibuildwheel
# - run: cibuildwheel --output-dir wheelhouse
Requires Python 3.11 or later to run; intended for use within CI/CD environments (GitHub Actions, Azure Pipelines, CircleCI, GitLab CI), not for local development.
Verify before relying
- Whether the package handles all edge cases for cross-compilation on Windows ARM64 (documented as experimental).
- Performance characteristics when building wheels for many Python versions simultaneously.
- Compatibility with CI systems beyond the four explicitly supported platforms.
Package facts
| License | BSD-2-Clause (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — bashlex, bracex, build, certifi, dependency-groups, filelock, humanize, packaging, platformdirs |
| Maintenance | actively maintained — 9 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 820,488/month — #4,974 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cibuildwheel-4.2.0-py3-none-any.whl
Keywords: ci, linux, macos, packaging, pypi, wheel, windows
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
embreexembreex provides Python bindings to Intel's…
unclear · top 5,000 on PyPI
nodejs-wheel-binariesDistributes Node.js prebuilt binaries as Python…
permissive · top 5,000 on PyPI
auditwheelAudits and repairs Linux and Android wheel…
permissive · top 5,000 on PyPI
repairwheelRepairs wheels for cross-platform distribution…
permissive · top 15,000 on PyPI
comfy-anglePackages redistributable ANGLE graphics…
permissive · top 5,000 on PyPI
rdkit-pypiProvides precompiled wheels for Linux, macOS,…
permissive · top 15,000 on PyPI
delvewheelBundles DLL dependencies into Windows Python…
permissive · top 15,000 on PyPI
charmcraftcacheAccelerates charmcraft builds by…
unclear · top 15,000 on PyPI
nodejs-wheelDistributes Node.js prebuilt binaries as Python…
unclear · top 15,000 on PyPI
delocateDelocate finds and relocates dynamic libraries…
permissive · top 15,000 on PyPI