All news
productsaas

Kakehashi: Run macOS CLI Tools on Cheap Linux ARM CI

08 Aug 2026

The pitch: cut macOS CI bills by running Darwin binaries on Linux ARM

A new open-source project called Kakehashi is targeting one of the more persistent cost headaches in CI pipelines: macOS runners. The tool, released as a Show HN project (installable via cargo install kakehashi), is an experimental userspace translation layer that lets Darwin Mach-O binaries — compiled for macOS ARM64 — execute directly on Linux aarch64 machines.

The core idea is straightforward: instead of paying for scarce and expensive macOS CI capacity, teams could run their existing macOS CLI tools on cheap Linux ARM servers. Kakehashi runs guest code natively on the CPU, with syscall boundary overhead cited as the primary performance cost of the translation approach.

What it can (and can't) do today

According to the project's own documentation, Kakehashi has been verified to run on Docker/Colima and UTM environments with Linux aarch64, and has successfully executed real-world guest binaries including clang probes, 7-Zip's 7zz, curl, and threaded applications.

Setup friction is reportedly minimal: the guest dylib libSystem.B.dylib is vendored and compiled directly into the runtime via include_bytes!, meaning users don't need a separate download step. Data is stored by default in ~/.local/share/kakehashi/bottle/, with override options via environment variables. The project is licensed under Apache License 2.0.

That said, the tool is explicitly labeled experimental, and its current scope is narrow. It does not support GUI applications, codesigning/notarization, Xcode UI tests, or any non-CLI Darwin workloads outside of freestanding libSystem calls. Live operations (kh run and kh trace) require Rust 1.88 or later and a Linux aarch64 environment — meaning adoption is currently limited to specific CLI/CI use cases rather than general-purpose Mac emulation.

A planned future feature — git support via kh install xcode-tools — suggests the maintainers intend to expand toward broader Darwin toolchain coverage, though no roadmap timeline has been published.

The cost math

The headline appeal is economic. Per the report, standard macOS GitHub Actions runners cost roughly 10–12x more per minute than Linux arm64 runners, based on an Ubuntu aarch64 bare-metal test using multi-file 7zz compression.

An illustrative example lays out the tradeoff: running a task on Linux arm64 under Kakehashi costs around $0.025 at 5x slower execution, versus $0.062 for the same task running at native (1x) speed on a macOS runner. In other words, even with a meaningful performance penalty, the per-task cost could still come out lower — assuming that 5x slowdown figure holds across your specific workload, which hasn't been independently verified or detailed in terms of methodology.

Why founders should care

For early-stage teams running CI pipelines with macOS-dependent steps — particularly CLI-only build or test tasks — Kakehashi's approach could plausibly reduce runner spend, given the stated 10–12x per-minute cost gap between macOS and Linux arm64 runners. Teams whose CI already leans on tools like 7zz, clang, or curl may have reasonable grounds to test it as an early cost-optimization experiment.

However, several factors suggest founders should treat this as exploratory rather than production-ready:

  • The project's experimental status and lack of support for GUI, codesigning, notarization, or Xcode UI tests mean it's unlikely to be viable yet for teams whose pipelines depend on those capabilities.
  • The claimed 5x slowdown is illustrative, not independently benchmarked across varied workloads — actual savings will depend heavily on how syscall-intensive a given workload is, since syscall boundary overhead is described as the main performance tax.
  • There's no publicly available information on adoption numbers, community feedback, funding, or team size behind the project, making it hard to gauge maturity or long-term maintenance likelihood.
  • Dependence on Rust 1.88+ and Linux aarch64 specifically narrows the environments where this can currently be deployed.

Founders with heavy macOS CI costs and narrow, CLI-focused build/test steps may find it worth a pilot test to model potential savings against their own throughput needs — but should hold off on treating Kakehashi as a drop-in replacement for macOS runners until the project matures beyond its current experimental label.

Sources