Kakehashi - Run macOS binaries on Linux ARM
Show HN: Kakehashi – Experimental userspace to run macOS binaries on Linux ARM
Kakehashi is an experimental userspace translation layer that lets you run macOS ARM64 binaries on Linux aarch64 systems without a JIT or kernel modifications. It loads Darwin Mach-O executables, maps a freestanding libSystem, and translates BSD syscalls, enabling real applications like 7-Zip and curl to run natively. This project is ideal for CI environments where macOS runners are costly and scarce, offering a cost-effective alternative on Linux ARM hardware. With support for multi-threaded compression, HTTPS via OpenSSL, and a simple CLI (kh), Kakehashi provides a practical bridge for running Darwin CLI tools on Linux.
Even if a job runs 5x slower under Kakehashi on Linux arm64 than on a macOS runner, billable cost can still be lower because the macOS minute is an order of magnitude more expensive.
- 13rac1
Interesting project! A long term vision for MacOS applications is feasible given the success of WINE/Proton with Windows applications.
Are you familiar with the Darling project? https://github.com/darlinghq/darling There's an open PR for ARM64 support https://github.com/darlinghq/darling/pull/1753 Could you combine efforts or do your goals differ too much?
- vlad_kalinkin
Hi HN,
I started developing an experimental project with the goal of running macOS CLI binaries natively on Linux ARM machines.
As of now, we have working prototypes for:
- 7-Zip: Passes multi-threaded compression tests on an 8k-file tree. Currently ~5.2x slower than native Linux execution, but I already mapped out a clear optimization plan to cut this gap down.
- curl: Over 200 commands and options successfully pass our automated Docker test script.
- Xcode Tools Git: Basic version control commands (init, add, commit) are up and running, though 100% stability is not yet guaranteed.
I would be highly grateful for your constructive criticism, architectural ideas, and feedback!
Thank you!
- idieifkiwdu
Really cool project, but honest question though: why do people tend to name these projects so horribly? I know software engineers aren’t actually known for their creative acuity when it comes to naming, but damn, Kakehashi is just bad.
- Arshad-Talpur
This is something i have been looking for long time, however i have gone through repository and docs and the problem is bigger and solution still seems to be early, I am curious how you gonna take further, will be watching it
- derefr
If you didn't care about having a fully-redistributable image, but were okay with doing things more like modern old-console-game decompilation projects do (where compiling the project requires the original game ROM as an input), would a project like this be more trivial?
I.e. how hard would it be, comparatively, to design a virtualization framework that doesn't actually ship with any ground-up-rewritten libraries, but instead just expects to execute the binary in question in the context of a full rootfs copied over from a "real" macOS install?