Skip to content

Add Raspberry Pi / ARM support (glibc compatibility) #74

Description

@raulpuente

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:

  1. 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.
  2. Update build.yaml to point ARM architectures to Debian base images.

  3. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions