Remote Host install fails on Termux/Android (aarch64): "Couldn't install the Claude CLI on the remote (cli archive)" — no Android release channel
Title
Remote Host install fails on Termux/Android (aarch64): "Couldn't install the Claude CLI on the remote (cli archive)" — no Android release channel
Environment
- Device: Samsung Galaxy S24 Ultra, Android 14, Termux (aarch64)
- Node.js in Termux: v26.4.0 (via
pkg install nodejs) @anthropic-ai/claude-code: 2.1.220- Client: Claude Desktop (Windows), "Remote Hosts" (SSH) feature
- Connecting via SSH (key-based) from Windows to Termux's
sshdon port 8022
Summary
Adding a Termux/Android host as a Remote Host in the Claude Desktop app always fails with:
Couldn't install the Claude CLI on the remote (cli archive)
Root cause: @anthropic-ai/claude-code has no published native binary for the Android target. The remote-host SSH connector itself (a small Go binary, claude-ssh) installs and runs fine on Termux — the failure is specific to installing the claude CLI binary.
Steps to reproduce
- Set up Termux with sshd, generate an SSH key, confirm
ssh user@phone -p 8022 "echo ok"works. - In Claude Desktop (Windows) → Remote Hosts → Add host → point it at the Termux SSH endpoint.
- Installer connects successfully (the connector/server binary installs and runs — confirmed working, statically-linked Go binary for aarch64), but the CLI-archive install step fails with the error above.
Root cause (confirmed by manual reproduction)
Manually running the npm package's postinstall on the same device:
npm install -g @anthropic-ai/claude-code
node $(npm root -g)/@anthropic-ai/claude-code/install.cjs
produces:
[@anthropic-ai/claude-code postinstall] Native binaries for linux-arm64-android are not available on this release channel.
Available: darwin-arm64, darwin-x64, linux-x64, linux-arm64, linux-x64-musl, linux-arm64-musl, win32-x64, win32-arm64
So platform detection correctly identifies Termux as linux-arm64-android, but no archive is published for that target, and there's no fallback. This is very likely the exact same platform-detection/install code path used by the Remote Host feature's "cli archive" install step in Claude Desktop, which is why it fails identically and immediately (not a network/download error).
I also tried manually forcing the linux-arm64-musl optional-dependency package (@anthropic-ai/claude-code-linux-arm64-musl) as a workaround: the binary downloads fine, but fails to execute (no such file or directory) because its ELF interpreter (/lib/ld-musl-aarch64.so.1) doesn't exist under Termux's Bionic-based filesystem layout — same for the plain linux-arm64 (glibc) variant, which expects /lib/ld-linux-aarch64.so.1 / /lib64/.... Neither can run directly under stock (non-rooted) Termux without a chroot/proot-style environment providing a standard FHS layout.
Impact
The Remote Host feature is currently unusable for any Termux/Android target, even when:
- The connector daemon (Go binary) installs and runs fine.
- A working, authenticated
claudeCLI already exists and is reachable on the remote's$PATH(e.g. installed manually inside a proot/chroot Linux userland running on the same device) — the installer does not appear to check for or fall back to an existingclaudebefore attempting (and failing) its own install.
Suggested fixes (any of these would help)
- Publish an Android-compatible native build (Termux commonly ships apps built against Bionic; alternatively a statically-linked musl build with a Termux-relative interpreter path, or distribute via the Termux
pkg/aptrepo). - Before attempting to install, have the Remote Host installer check whether
claudeis already present and working on the remote$PATH(command -v claude && claude --version), and use it instead of failing. - Surface a clearer error than "cli archive" when the platform simply isn't supported yet (e.g. "Android/Termux isn't supported for the CLI archive install; if
claudeis already installed and on PATH, we'll use that" vs. a hard failure).
Workaround currently in use
Installed a full Ubuntu 24.04 (aarch64, glibc) userland via proot inside Termux, installed @anthropic-ai/claude-code there natively (works fine — normal glibc userland), and authenticated it. Then replaced Termux's claude shim with a small wrapper script that execs into the proot environment and runs the real claude binary, forwarding all arguments and stdio. This makes claude fully usable over plain SSH (ssh user@phone -p 8022 claude ...) from any terminal, but the Remote Host GUI feature in Claude Desktop still fails at its install step regardless, since that step doesn't check for an existing working claude first.
Happy to provide more logs/details if useful.