Bucky Builder
June 1, 2026 · View on GitHub
Prebuilt whisper.cpp binaries for Linux, macOS, and Windows
This repo builds binary versions of whisper.cpp shared libraries for
every platform bucky supports, so
bucky install has a single source of truth and a single release cadence.
That includes architectures upstream does not ship at all (Linux CUDA /
Vulkan / arm64 CPU) and the macOS / Windows variants we want pinned to
the same tag.
New releases are automatically built for the latest release version of
whisper.cpp. The latest release is checked once per hour.
Used by bucky's bucky install
command. bucky lets you write Go applications that directly integrate the
latest whisper.cpp libraries.
Mirrors the role hybridgroup/llama-cpp-builder plays for yzma.
CUDA
Currently supported CUDA build configurations:
| CPU arch | OS | CUDA | Nvidia Compute arch |
|---|---|---|---|
| amd64 | Ubuntu 24.04 | 12.9.1 | 86, 89 |
| arm64 | Ubuntu 22.04 | 12.9.1 | 87 |
Compute architectures 86 and 89 are those used by consumer video cards
(RTX 3090 / 4090).
Compute architecture 87 is used by Jetson Orin and Jetson AGX.
Vulkan
Currently supported Vulkan build configurations:
| CPU arch | OS | Vulkan SDK |
|---|---|---|
| amd64 | Ubuntu 24.04 | latest LunarG noble package |
| arm64 | Ubuntu 22.04 | 1.4.335.0 |
The arm64 prebuilt Vulkan SDK comes from https://github.com/jakoch/vulkan-sdk-arm.
CPU
Currently supported CPU build configurations:
| CPU arch | OS | Notes |
|---|---|---|
| amd64 | Ubuntu 24.04 | GGML_CPU_ALL_VARIANTS=ON runtime dispatch |
| arm64 | Ubuntu 22.04 | |
| x64 | Windows | GGML_CPU_ALL_VARIANTS=ON runtime dispatch |
macOS
Currently supported macOS build configurations:
| CPU arch | OS | Notes |
|---|---|---|
| arm64 + x86_64 | macOS 13.3+ | Universal xcframework; Metal + CoreML |
Built on macos-latest by running upstream's build-xcframework.sh and
then repackaging with only the macOS slice via xcodebuild -create-xcframework, so the artifact is small even though the build is
the canonical upstream one.
Artifacts
For each whisper.cpp release tag (e.g. v1.8.4), this repo publishes:
| Filename |
|---|
whisper-vX.Y.Z-bin-ubuntu-cpu-x64.tar.gz |
whisper-vX.Y.Z-bin-ubuntu-cpu-arm64.tar.gz |
whisper-vX.Y.Z-bin-ubuntu-cuda-x64.tar.gz |
whisper-vX.Y.Z-bin-ubuntu-cuda-arm64.tar.gz |
whisper-vX.Y.Z-bin-ubuntu-vulkan-x64.tar.gz |
whisper-vX.Y.Z-bin-ubuntu-vulkan-arm64.tar.gz |
whisper-vX.Y.Z-bin-darwin-metal-universal.zip |
whisper-vX.Y.Z-bin-windows-cpu-x64.zip |
All tarballs unpack to whisper-vX.Y.Z/ containing libwhisper.so,
libggml.so, libggml-base.so, libggml-cpu.so, the per-microarch CPU
variants from GGML_CPU_ALL_VARIANTS=ON (libggml-cpu-x64.so,
libggml-cpu-haswell.so, libggml-cpu-skylakex.so, libggml-cpu-zen4.so,
…), and (where applicable) libggml-cuda.so / libggml-vulkan.so. The
backend MODULEs are installed alongside the core libs via
-DCMAKE_INSTALL_BINDIR=lib so the dlopen-based registry
(ggml_backend_load_all_from_path) finds them on a single path. RPATH is
$ORIGIN, so the libraries are self-contained regardless of where bucky
drops them.
How to check the latest version
VERSION=$(curl -s https://ardanlabs.github.io/bucky-builder/version.json | jq -r '.tag_name')
bucky reads this instead of the GitHub releases API to avoid the unauthenticated rate limit.
Manually rebuilding a single tag
gh workflow run Build --repo ardanlabs/bucky-builder
Or via the Actions tab → Build → Run workflow.
Adding a new build target
Add a new job to .github/workflows/build.yml
that copies one of the existing CUDA / Vulkan / CPU jobs as a starting
point, then add it to the release job's needs: list. Keep the artifact
filename pattern whisper-${TAG}-bin-ubuntu-${backend}-${arch}.tar.gz so
bucky's resolver in pkg/download/download.go
can find it.
License
Apache-2.0 — see LICENSE. The whisper.cpp binaries inside each tarball are MIT-licensed by their upstream authors; this repo only packages them.