feat: add linux-arm64 (aarch64) CLI build and install support#93
Merged
Conversation
Add a release-cli-linux-arm64 job that builds the hk CLI for aarch64-unknown-linux-musl on GitHub's free ubuntu-24.04-arm public runner, mirroring the existing x86_64 musl job, and uploads the artifact as hk-linux-arm64. Teach install.sh to map aarch64/arm64 on Linux to that binary instead of erroring with "unsupported architecture". This unblocks ARM64 Linux servers (e.g. Oracle Cloud Ampere A1), where install.sh previously failed on aarch64. Built and verified on a native aarch64 Ubuntu 24.04 box: the binary detects agents and runs the read-only commands (status, list, audit).
Owner
|
Thanks for the PR! Merged. |
2 tasks
RealZST
added a commit
that referenced
this pull request
Jun 26, 2026
Follow-up to #93, which added the Linux ARM64 CLI build. Split the single Linux row in the manual-download table into x64 / ARM64 so the new hk-linux-arm64 release asset is documented.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Linux ARM64 servers cannot install HarnessKit today. The release ships
hk-linux-x64,hk-macos-arm64,hk-macos-x64and Windows, but no aarch64 Linux CLI, soinstall.shexits withError: unsupported architecture: aarch64on ARM boxes (for example an Oracle Cloud Ampere A1instance).
This adds the missing target:
release-cli-linux-arm64job that builds thehkCLI foraarch64-unknown-linux-muslanduploads it as
hk-linux-arm64. It is a near line-for-line mirror of the existingrelease-cli-linuxjob, and runs natively on GitHub's freeubuntu-24.04-armpublic runner, sothere is no cross-compilation and no self-hosted runner.
install.shcase mappingaarch64/arm64on Linux tohk-linux-arm64, instead of erroring.No Rust source changes. The CLI is platform-agnostic; this is purely the build target plus the
installer mapping.
Linked issue
No existing issue (I searched open and closed issues and PRs for arm64/aarch64 first). This is a
small, self-contained platform addition, but I am happy to open an issue first if you prefer that
flow.
Type of change
How to test
On a native aarch64 Linux box:
npm ci && npm run buildcargo build --release -p hk-cli --target aarch64-unknown-linux-musl./target/aarch64-unknown-linux-musl/release/hk status(andlist,audit --no-scan)For the installer mapping: on aarch64 Linux,
install.shnow resolves tohk-linux-arm64(thefull curl install works once a release carries that asset; before this change the script errored).
Checklist
Built and verified on a native aarch64 Ubuntu 24.04 box: the resulting static binary
(
statically linked, ARM aarch64) runs and correctly detects agents (claude, cursor, opencode,hermes) and 159 extensions.
npm test(234 passing) andcargo testforhk-core,hk-cli,hk-webpass locally. I did not run the fullcargo test --workspacelocally because thehk-desktop(Tauri) crate needs a desktop build environment that is not present on a headless ARMLinux server; the repo's PR CI runs the full workspace on
macos-latest, which covers it.Model used
Claude Code (Claude Opus 4.8), used to write the CI job and installer change, and to build and
verify the binary on a native aarch64 box.
🤖 Generated with Claude Code (Claude Opus 4.8)
🧑💻 Ideated, directed and reviewed by a human, @Omee11