Claude Code for Android
Run the real Claude Code CLI natively on an Android phone through Termux or AVF, with no desktop, SSH, or root.
- Source repo
- ferrumclaudepilgrim/claude-code-android
- Stars
- ★ 303
- Last updated
- 3d ago
- License
- MIT
- Primary language
- Shell
- FA score
- 69/100 · Some gaps
At a glance
- How it runs
- Works with
- Platform-specificClaude Code · Claude API
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A developer whose only device at hand is an Android phone and who needs a coding agent that can read and edit project files.
- Not a fit if
- Users unwilling to give an AI agent access to phone photos, messages and accounts
- Owners of 32-bit Android phones or anyone refusing to install Termux
- Teams that need official Anthropic support and endorsement
- Source review
- 69/100 · Some gaps
What does this agent do, and when should you use it?
This is a community-maintained installer and compatibility layer that gets Anthropic's official Claude Code CLI running on-device on Android. It offers three routes: Path A runs the official Linux binary through a small Termux compatibility layer, with a repo-provided launcher that checks for updates daily, verifies downloads, keeps a backup version, and rolls back on startup crashes; Path B installs Ubuntu inside Termux via proot-distro and hands off to Anthropic's own installer at a cost of about 2 GB of storage; Path C uses Android's built-in Linux development environment (AVF) to run a real Debian VM. The repository is at version 2.9.5 under the MIT license, maintained solo by Ferrum_Flux_Fenice (Erin), and states it is not affiliated with or endorsed by Anthropic, Google, or OpenAI. Alongside the scripts it ships device-compatibility evidence, a security model, troubleshooting, and an FAQ, and notes that the installer turns on no extra permissions by itself.
The center of the repo is install.sh: after being fetched from GitHub raw it asks two yes/no questions, configures Termux, installs Node.js and Claude Code, and replaces the claude command with the repo's launcher. That launcher checks once a day for a new Claude Code, smoke-tests it for startup crashes, keeps a previous version as backup where available, and falls back to a saved version if the startup check fails; claude --update-now forces an immediate check. On Android 8/9/10, install-pinned.sh instead installs a pinned Claude Code 2.1.112, and Path B builds a proot-distro Ubuntu rootfs where Anthropic's installer runs untouched. Path A also points Claude Code's own DNS resolver at 8.8.8.8 and 8.8.4.4 to avoid a known connection hang. Once installed, claude is a normal interactive CLI agent that reads files, runs commands, and goes online from the phone; combined with Termux:API and wireless ADB it can reach the microphone, location, SMS, notifications, and other apps — the maintainer used exactly that to fix voice mode recording silence on Android 16, and even compiled C/C++ audio code on the device.
- A developer whose only device at hand is an Android phone and who needs a coding agent that can read and edit project files.
- Someone who wants to keep Claude Code sessions going during a commute without running the work on a remote computer.
- Heavy users who want several concurrent Claude Code sessions, multi-agent workflows, or even on-device C/C++ compilation.
- Owners of AVF-capable phones like the Pixel 6 or Pixel 10 Pro who prefer an isolated Debian VM over touching the host Android system.
- People on older handsets such as the Moto G7 Power (Android 10) or Galaxy S7 (Android 8) who accept the pinned 2.1.112 build or Path B.
- Tinkerers who want to wire Claude Code to Termux:API and ADB for geofence alerts, voice chat, or notification triage.
How do you install or deploy this agent?
Prerequisites: install Termux from F-Droid or GitHub (not Google Play), use a 64-bit phone (uname -m inside Termux should print aarch64), and have a Claude subscription or Console/API account ready.
In Termux run:
curl -fsSL https://raw.githubusercontent.com/ferrumclaudepilgrim/claude-code-android/main/install.sh -o install.sh
bash install.shThe script asks two yes/no questions and then runs unattended; expect roughly 5 to 10 minutes on a good connection. On Android 8, 9, or 10 use the pinned script instead:
curl -fsSL https://raw.githubusercontent.com/ferrumclaudepilgrim/claude-code-android/main/install-pinned.sh -o install-pinned.sh
bash install-pinned.shPath B (proot-distro Ubuntu inside Termux, about 2 GB of storage) and Path C (enable Developer options, find "Linux development environment" under Settings → System → Developer options, then follow the AVF guide on supported devices) are the documented alternatives.
How do you use this agent?
Open a new Termux session (or close and reopen Termux) after the installer finishes, then start the agent:
claudeForce an update check without waiting for the daily one:
claude --update-nowTo upgrade an existing Path A install, rerun the install commands; the launcher is refreshed and your login and settings persist. If you are migrating from the old npm-based pinned 2.1.112 install, follow the migration steps in docs/install.md rather than installing over it. For launch crashes, the "Checking connectivity" hang, or sign-in trouble, start with docs/troubleshooting.md. Grant microphone, location, SMS, notification, or cross-app access only when a task needs it, by adding Termux:API and wireless ADB per the security model.
What are this agent's strengths and limitations?
- Genuinely on-device: Claude Code runs on the phone itself with no desktop, SSH, cloud VM, or root.
- The bundled launcher adds daily update checks, download integrity verification, a retained backup version, and startup-crash fallback rather than just swapping a binary.
- Three distinct paths — native Termux, proot-distro Ubuntu, and an AVF Debian VM — span current flagships down to Android 8 handsets.
- The security tradeoffs are stated plainly: default Google DNS for Claude Code's lookups, the exposure surface of Termux:API and ADB permissions, and prompt-injection risk, with an explicit note that nothing is enabled by default.
- Compatibility claims rest on real-device evidence (Pixel 6, Pixel 10 Pro, Galaxy S26 Ultra, Moto G7 Power, Galaxy S7) rather than Android version numbers.
- Locked to a single vendor: it requires Claude Code plus a Claude subscription or API account, with no path to other model providers.
- Requires Termux from F-Droid or GitHub and an aarch64 device; 32-bit phones and the Play Store Termux build are out.
- Path B costs about 2 GB of storage and noticeably more memory and disk use; Path C is still experimental and limited to specific devices on Android 17.
- Path A redirects Claude Code's DNS lookups to 8.8.8.8/8.8.4.4 by default, so those lookups skip your VPN's or Pi-hole's resolver.
- Path A trusts the repo's launcher to download and patch every new Claude Code; it verifies integrity but cannot prove the source was not tampered with, and older devices are frozen at 2.1.112.
- Maintained by one person who states they are not a security professional, so the docs are presented as evidence-backed guidance rather than a guarantee.
How does this agent compare with similar options?
The README names real alternatives. gtbuchanan/claude-code-termux packages the same patched-binary approach as an apt .deb, and this project's method started from that work; Ishabdullah/claude-code-termux covers the older npm route, the same family as this repo's pinned fallback. If you already have a computer running Claude Code, Anthropic's official Remote Control lets the work run there with the phone as a screen — the maintainer began looking for a local route largely because of that option's limits. The repo also cites google/artemis and openai/codex as ecosystem references rather than substitutes.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Claude Code for Android This agent | 69 · Some gaps | CLIFree + model costs | ★ 303 | 3d ago | Shell | Claude Code · Claude API |
| OpenClaw on Android | 46 · Major gaps | CLIFree + model costs | ★ 1.8k | 15d ago | Kotlin | — |
| Harness Remote | 69 · Some gaps | Desktop app | ★ 429 | today | JavaScript | Codex · Claude Code |
| TermFold Debian Coding Terminal | 51 · Major gaps | Desktop appFree + model costs | ★ 26 | 28d ago | Kotlin | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
The security model states the installer grants no Android permissions and does not enable storage/ADB/MCP, advising least-privilege grants (2). However the recommended bundle includes termux-api by default and Path A defaults Claude's resolver to Google 8.8.8.8/8.8.4.4, a default external data flow (data_flow_transparency 2, external_effects 1). Dependency security is only described via glibc-runner/patchelf and checksum verification, with no pinned versions or vulnerability review (1). Rollback exists via cached versions, .blocklist, migration backup and restore.sh, but is explicitly not guaranteed (2). Source attribution to Anthropic/Termux/gtbuchanan and non-affiliation is clear (2).
Docs consistently distinguish repo version 2.9.x from Claude 2.1.x and repeatedly self-qualify claims (2). Dependency availability rests on Termux mirrors, glibc-runner, upstream binaries and npm registry, all external and mutable, with only estimates and mirror-switch advice (1). Failure messages are exceptionally detailed with exact error text, cause and fix (3).
Targets Android 8+ ARM64 users with three install paths and device evidence, covering scenarios well (3). Capability boundaries are thorough: no OS sandbox, hooks are not enforcement, Bash still reaches network (3). Trigger precision is not applicable: this is an installer/wrapper, not an agent manifest with trigger rules (1). Environment fit covers Termux/proot/AVF, but AVF is experimental and older devices need a pinned build (2).
README and docs are well structured with anchors and cross-links (3). Install notes are thorough: prerequisites, disk estimates, uninstall and migration (3). Naming stability is moderate: dual version numbers are confusing though explained (2). FAQ and examples are rich (3). Known limitations are extensive (3). MIT license is complete (3). No CHANGELOG file exists, only referenced in a workflow comment (1). Maintenance responsibility is declared by a single maintainer who states they are not a security professional (2).
Output usability depends on external binaries and network; verification steps are given but no runnable artifact is provided (2). Marginal value is real (native Claude Code on Android) but it is a community workaround (2). Cost/benefit: ~280MB install, auto-updates and cache overhead, honestly disclosed (2).
Most claims carry dates, upstream issue links and device-evidence references (2). Cross-source corroboration is limited: device results are largely maintainer self-tests and Path B explicitly lacks saved transcripts (1). Fact/inference separation is strong, with explicit 'not verified', 'not guaranteed', 'estimates not benchmarks' labels (3).
- Path A defaults Claude's runtime DNS to Google 8.8.8.8/8.8.4.4, bypassing private/VPN resolvers; review or edit setdns.js.
- The recommended bundle includes termux-api by default; if the companion app is already granted permissions, any Termux process may use them.
- The installer and launcher download and patch upstream binaries; checksums only catch transfer corruption, not a compromised source.
- Auto-updates cannot be disabled and retain prior binaries, consuming hundreds of MB; rollback depends on a usable cached version.
- Device compatibility evidence is largely maintainer self-testing; Path B lacks saved transcripts and AVF is experimental.
- Publisher identity is unverified by the FollowAgents registry — unknown, not suspicious — so update path and maintenance responsibility should be independently confirmed.
FAQ
Do I need root or a computer?
Why can't I install Termux from Google Play?
uname -m prints aarch64.How much extra data exposure does this create?
Does it work on older Android 8, 9, or 10 phones?
What happens if an update breaks the install?
claude --update-now triggers a check manually; as a last resort rerun install.sh, which keeps your login and settings.