ADR 0111 — Intel Macs are not supported
- Status: Accepted
- Date: 2026-10-29
- Supersedes: ADR 0106
- Amends:
- ADR 0012 — the Intel macOS ONNX Runtime 1.23.2 pin is gone; every target installs the current runtime
- ADR 0044 — the native speech worker no longer has a macOS Intel target
- ADR 0055 — the macOS desktop app is built for arm64 only, not as a universal binary
- ADR 0076 — the Intel macOS OpenCV 4.11 pin is gone
- ADR 0083 — no Intel macOS jobs remain, hosted or self-hosted
- ADR 0090 — only the Apple silicon wheel is built and pinned
- Related: ADR 0007 (macOS 13 floor, unchanged), ADR 0023, ADR 0104, docs/installation.md
Context
Section titled “Context”The owner asked for Intel macOS support to be removed completely: no Intel macOS release builds or packages and no self-hosted Intel Mac runner, while Apple silicon, Linux and Windows stay supported.
Intel macOS was the one target that needed its own exceptions throughout the tree:
- ONNX Runtime 1.24+ publishes no Intel macOS wheel, so
requirements/cpu.txtpinned 1.23.2 there through platform markers (ADR 0012), an older runtime line whose support for the privacy filter’sQMoEkernel was never verified (platform validation). - Newer OpenCV Intel Mac wheels need macOS 14, so
requirements/base.txtpinned OpenCV 4.11 there (ADR 0076). - The llama.cpp binding needed its own Intel wheel, built by this repository
(ADR 0090), and the voice engine its own
macos-x64build (ADR 0044). - CI, voice, release packaging and the wheel build ran on a 2017 Intel laptop on
macOS 13.6 whose
rsvg-converthad to come from MacPorts (ADR 0106).
Decision
Section titled “Decision”Intel Macs (darwin/amd64) are not a supported platform.
- Releases ship no
imprint-darwin-amd64.tar.gzor.pkg.make all,make packageandscripts/package-platform.shhave no darwin/amd64 target,make installer-macosbuilds arm64 only, and the macOS desktop app is built for arm64 only. - Workflows have no Intel macOS jobs: CI, voice engine and native voice checks, the
release
.pkgjob and the llama.cpp wheel build run on Apple silicon only. Theimprint-intelrunner label is retired. - Requirements and locks carry no darwin x86_64 entries: no ONNX Runtime 1.23.2 or OpenCV 4.11 pins, no Intel llama.cpp wheel. An Intel Mac would fall through to the generic source-build line of the binding like any other unlisted platform. The runtime manifest drops the Intel macOS uv and Qdrant digests, and Qdrant’s auto-download refuses an Intel Mac.
install.shon an Intel Mac stops before downloading anything, with “Intel Macs are no longer supported”. A shell running under Rosetta on Apple silicon reportsx86_64; the script checkshw.optional.arm64and installs the Apple silicon build there.imprint update(and--check, which the dashboard reads) on a darwin/amd64 binary reports the same refusal. Under Rosetta it tells the user to install the Apple silicon build instead, because an in-place update cannot change the installation’s architecture.- The website offers no Intel macOS download and tells a visitor whose browser looks like an Intel Mac that it is not supported.
Rejected alternatives
Section titled “Rejected alternatives”No alternative evaluation was recorded.
Consequences
Section titled “Consequences”- Existing Intel Mac installations keep working on the version they have but get no
further releases. Their
imprint updatepredates this record: it finds noimprint-darwin-amd64asset in a new release and stops with “release … has no asset named …”, without changing the installation. - Release assets shrink by two files, and the release workflow no longer waits on the Intel laptop.
- Older releases keep their Intel assets on GitHub; the website lists them only as unclassified files in the release history.
- The Apple silicon llama.cpp wheel release (
llama-cpp-python-v0.3.36) still holds the previously published Intel wheel; nothing pins it any more. - Dependency locks are simpler: the CPU lock loses ONNX Runtime 1.23.2 and its
Intel-only dependencies (
coloredlogs,humanfriendly,mpmath,sympy). - The self-hosted Intel runner registration and the laptop’s runner service are outside the repository and must be removed by the owner.
Invalidation conditions
Section titled “Invalidation conditions”- If Intel Mac users must be supported again, then a new record restores the target together with its dependency pins, a native builder and native validation.
- If the Apple silicon desktop app must also run on Intel through a universal binary for another reason (for example a distribution channel that requires one), then revisit the arm64-only Electron build without restoring the Intel runtime.
Validation
Section titled “Validation”On Linux x64: go vet ./... and go test ./... passed, including a unit test that
imprint update refuses darwin/amd64 natively and under Rosetta and accepts every
supported target. The touched Python tests (release validation with arm64-only macOS
bundles, voice targets, download manifest and the Qdrant Intel refusal) and the ADR
record tests passed. The locks were regenerated with uv 0.13.6 using the commands in
building.
Not verified: install.sh on a real Intel Mac or under Rosetta, the arm64-only
Electron build and .pkg on the Apple silicon runner, a full build-release run
without the Intel jobs, and the website build.