Bucky Builder

June 1, 2026 · View on GitHub

Build

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 archOSCUDANvidia Compute arch
amd64Ubuntu 24.0412.9.186, 89
arm64Ubuntu 22.0412.9.187

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 archOSVulkan SDK
amd64Ubuntu 24.04latest LunarG noble package
arm64Ubuntu 22.041.4.335.0

The arm64 prebuilt Vulkan SDK comes from https://github.com/jakoch/vulkan-sdk-arm.

CPU

Currently supported CPU build configurations:

CPU archOSNotes
amd64Ubuntu 24.04GGML_CPU_ALL_VARIANTS=ON runtime dispatch
arm64Ubuntu 22.04
x64WindowsGGML_CPU_ALL_VARIANTS=ON runtime dispatch

macOS

Currently supported macOS build configurations:

CPU archOSNotes
arm64 + x86_64macOS 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.