Problem
The Claude Terminal add-on currently doesn't work on Raspberry Pi and other ARM devices (aarch64/armv7).
The root cause is that the Claude Code CLI ships native binaries that require glibc, but the Home Assistant base images for ARM architectures use Alpine Linux, which relies on musl instead. This makes the CLI crash on startup on any ARM-based installation.
Proposed solution
Use Debian Bookworm base images for ARM architectures while keeping Alpine for amd64 (where musl works fine). This requires:
-
Split the single Dockerfile into per-architecture Dockerfiles:
- Dockerfile.amd64 — keeps the current Alpine-based setup (no changes).
- Dockerfile.aarch64 — uses ghcr.io/home-assistant/aarch64-base-debian:bookworm, installs packages via apt-get, and fetches yq from * GitHub releases (not available in Debian repos).
- Dockerfile.armv7 — same as aarch64 but for 32-bit ARM.
-
Update build.yaml to point ARM architectures to Debian base images.
-
Adapt run.sh to support both package managers:
- Add a
detect_package_manager() function that detects apk (Alpine) vs apt-get (Debian) at startup.
install_tools() uses the appropriate package manager and installs ttyd from GitHub releases on Debian (not available in Debian repos).
- Persistent package management works with both
apk and apt-get.
Impact
ARM users (Raspberry Pi, etc.): the add-on becomes fully functional.
amd64 users: zero changes, the build and runtime are identical to the current version.
Implementation
I have a working implementation in my fork: https://github.com/raulpuente/home-assistant-addons
The changes are contained in 3 commits and only touch files inside claude-terminal/. I'll open a PR referencing this issue.
Problem
The Claude Terminal add-on currently doesn't work on Raspberry Pi and other ARM devices (aarch64/armv7).
The root cause is that the Claude Code CLI ships native binaries that require glibc, but the Home Assistant base images for ARM architectures use Alpine Linux, which relies on musl instead. This makes the CLI crash on startup on any ARM-based installation.
Proposed solution
Use Debian Bookworm base images for ARM architectures while keeping Alpine for amd64 (where musl works fine). This requires:
Split the single Dockerfile into per-architecture Dockerfiles:
Update
build.yamlto point ARM architectures to Debian base images.Adapt
run.shto support both package managers:detect_package_manager()function that detects apk (Alpine) vsapt-get(Debian) at startup.install_tools()uses the appropriate package manager and installsttydfrom GitHub releases on Debian (not available in Debian repos).apkandapt-get.Impact
ARM users (Raspberry Pi, etc.): the add-on becomes fully functional.
amd64 users: zero changes, the build and runtime are identical to the current version.
Implementation
I have a working implementation in my fork: https://github.com/raulpuente/home-assistant-addons
The changes are contained in 3 commits and only touch files inside
claude-terminal/. I'll open a PR referencing this issue.