Claude Code CLI setup for Termux/Android - scripts, workarounds and docs
Go to file
Andrés Eduardo García Márquez 5c4e41f6b0 feat(mdns): añadir resolver genérico + helpers de shell
- bin/resolve: hostname -> IP con orden mDNS (LAN) -> Tailscale -> caché.
  Reutilizable en cualquier comando (ping, curl, kubectl, nc).
- bin/ssh-mdns-proxy: arreglar shebang (#\! -> #!) que hacía fallar
  declare -A al caer en sh; y reemplazar getent (inexistente en Termux)
  por python socket.gethostbyname, con detección para portabilidad.
- config/bashrc.snippet: añadir aliases r/pingr/sshr/curlr. sshr usa
  HostKeyAlias para que SSH-por-IP no falle verificación de known_hosts.
- docs/03-ssh-mdns-tailscale.md: sección nueva sobre resolve + gotchas
  (getent ausente, shebang bash-only, mDNS no cruza redes).
- install.sh: incluir resolve en la lista de scripts a instalar.
- README.md: nueva fila en la tabla de componentes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-07-17 09:35:59 -05:00
bin feat(mdns): añadir resolver genérico + helpers de shell 2026-07-17 09:35:59 -05:00
config feat(mdns): añadir resolver genérico + helpers de shell 2026-07-17 09:35:59 -05:00
docs feat(mdns): añadir resolver genérico + helpers de shell 2026-07-17 09:35:59 -05:00
.gitignore feat: setup inicial para Claude Code en Termux 2026-04-26 17:30:25 -05:00
README.md feat(mdns): añadir resolver genérico + helpers de shell 2026-07-17 09:35:59 -05:00
install.sh feat(mdns): añadir resolver genérico + helpers de shell 2026-07-17 09:35:59 -05:00

README.md

Claude Code for Termux

Run Claude Code CLI on Android via Termux.

Why

Claude Code v2.1.113+ switched to native binaries, breaking Termux/Android compatibility. This repo provides:

  • v2.1.112 (last pure Node.js release) with auto-update protection
  • termux-chroot wrapper that fixes the /tmp permission issue
  • mDNS resolver for SSH without hardcoded IPs
  • Safe updater that respects the version ceiling

Requirements

  • Termux (F-Droid recommended)
  • Android 10+ (ARM64)
  • ~500MB free storage
  • An Anthropic API key or Claude subscription

Quick Install

git clone <your-git-host>/<your-user>/claude-code-termux.git
cd claude-code-termux
bash install.sh

Or dry-run first:

bash install.sh --dry-run

What Gets Installed

Component Location Purpose
Claude Code v2.1.112 npm global The CLI itself
clauded ~/.local/bin/ Wrapper with termux-chroot for /tmp
claude-check-env ~/.local/bin/ Environment validator
claude-update ~/.local/bin/ Safe updater (ceiling-aware)
mdns-resolve ~/.local/bin/ Pure Python mDNS resolver
mdns-publish.py ~/.local/bin/ Publish this device as movil.local (needs zeroconf)
ssh-mdns-proxy ~/.local/bin/ SSH ProxyCommand: mDNS → Tailscale
ssh-fallback ~/.local/bin/ SSH ProxyCommand: Tailscale → LAN fallback
resolve ~/.local/bin/ Generic host resolver: mDNS → Tailscale → cache (for any command)
settings.json ~/.claude/ Disables auto-updater

Usage

# Start Claude Code (always use this, not `claude` directly)
clauded

# Check environment
claude-check-env

# Update (safe, respects version ceiling)
claude-update

SSH with Dynamic Resolution

The included ssh-mdns-proxy resolves hostnames via mDNS first, then Tailscale DNS, then cache. See config/ssh_config.example for setup.

# Set your Tailscale domain (optional, has a default)
export TAILSCALE_DOMAIN="your-tailnet.ts.net"

Version Ceiling

v2.1.112 is the last compatible version. Starting v2.1.113, Claude Code ships native binaries requiring glibc/musl linkers that don't exist on Android (Bionic libc).

claude-update enforces this automatically. See docs/TROUBLESHOOTING.md for details.

Docs

Step-by-step guides for each piece of the stack:

# Doc Covers
01 docs/01-termux-fresh-install.md Clean Termux install (F-Droid / GitHub Releases, not Play)
02 docs/02-base-packages.md Required pkg / pip / npm packages
03 docs/03-ssh-mdns-tailscale.md SSH, .local resolution, Tailscale
04 docs/04-samba.md Samba server on port 4450 + msg.lock gotcha
05 docs/05-claude-code.md Claude Code internals (version ceiling, clauded, settings)
docs/TROUBLESHOOTING.md Common errors and fixes

Troubleshooting

See docs/TROUBLESHOOTING.md for:

  • /tmp permission errors
  • Native binary errors
  • Auto-updater issues
  • SSH resolution problems

License

MIT