Open Source · ARM64 · Android Native binary. No emulator.

Claude Code on Termux.

Run Claude Code directly on Android ARM64 with Termux. No Ubuntu, no proot distro, no cloud VM. Choose shell, npm, or a Rust wrapper.

termux — bash
$

Claude Code is not built
for Android.

A normal install fails because Android is not a standard glibc Linux environment.

01 / 03
⚙️
Binary glibc vs Bionic

The official Anthropic binary is built for glibc Linux. Android uses Bionic libc, so the binary cannot be executed directly.

02 / 03
📁
Termux paths differ

Android and Termux use different filesystem paths and runtime behavior than a normal Linux distribution.

03 / 03
Old pins are fragile

Pinning old JavaScript-only versions avoids the native binary problem, but it leaves users behind official Claude Code releases.

Native binary +
glibc-runner.

This project combines the official Linux ARM64 binary with Termux-specific launchers.

glibc-runner

Run the official glibc binary on Android through grun, without a full Linux container, proot distro, or Ubuntu install.

grun · Termux pkg
🔧
Platform Patch

The npm wrapper detects Android, installs the Linux ARM64 native package with the right flags, and launches it through grun.

npm · grun · android
🚀
Latest Version

Use the latest official ARM64 binary from @anthropic-ai/claude-code-linux-arm64, with update support from the wrapper.

npm latest · ARM64

How it runs.

The launcher stays small: Termux calls grun, and grun starts the official Linux ARM64 binary.

claude
Launcher
shell/npm/rust
calls
grun
glibc-runner
Bionic bridge
loads
linux-arm64
Official binary
Anthropic NPM
calls
API
Anthropic
official API

Native ARM64. No VM and no Linux container. The official binary runs through the Termux glibc bridge.

Choose an install method.

Shell is best for beginners. NPM is best for npm-managed updates. Rust is for developers who want a compiled launcher.

bash · termux
$ curl -fsSL https://raw.githubusercontent.com/DamnSit/claude-code-termux/main/install-secure.sh | bash
Recommended for beginners. Verifies checksums, installs Termux dependencies, downloads the native ARM64 binary, and creates the claude launcher.
npm · termux
$ pkg update && pkg install nodejs-lts
$ npm install -g @xurxuo/claude-code-termux@latest
Installs the npm-managed wrapper. It updates the official native package and launches it through grun on Android.
cargo · termux
$ pkg update && pkg install git rust
$ git clone https://github.com/DamnSit/claude-code-termux.git
$ cd claude-code-termux/rust-wrapper && cargo build --release
For developers. Copy target/release/claude-termux to $PREFIX/bin/claude after the build finishes.
~/.claude/settings.json — optional environment
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://opencode.ai/zen",
    "ANTHROPIC_MODEL": "claude-sonnet-4-5",
    "ANTHROPIC_API_KEY": "sk-ant-..."
  },
  "autoUpdatesChannel": "latest"
}

Compared with other setups.

Why this is different from old pinned installs or a full proot Ubuntu environment.

Aspect This project ✦ Pin v2.1.112 proot Ubuntu
Binary 🔥 Native ARM64 JS (cli.js via node) x86_64 emulated
Version Latest Frozen old version Latest
Performance 🔥 Native ⚠ Node.js 🐢 Emulated/containerized
Needs Ubuntu No No Yes
Setup 1 command Manual multi-step Large manual setup (1GB+)
Custom endpoint Built-in Manual
Startup time Fast (native) Slow (Node init) Very slow (proot)

Start on Android.
One command.

Android ARM64 · No root · No emulator · No Ubuntu

$ curl -fsSL https://raw.githubusercontent.com/DamnSit/claude-code-termux/main/install-secure.sh | bash