Termux 安装 AI 编程助手教程(手机版)
Termux 安装 AI 编程助手教程(手机版)
只需要一部手机,不用电脑,不用 ADB,全在 Termux 里操作 支持 Claude Code、OpenCode、Kiro CLI 和 Kilo Code,一套环境通吃 适用所有 Android 手机(ARM64)和模拟器(x86_64) 纯 Termux 环境,不使用 proot,不使用 musl 链接器
为什么不用 musl 链接器?
musl 是一个轻量级 C 标准库,但它的 DNS 解析实现与 Android 的网络栈不兼容。如果用 musl 链接器运行这些工具,会导致 DNS 解析错误,无法连接任何 API(报 DNS 或网络错误)。所以必须使用 glibc 链接器,它的 DNS 解析与 Android 完全兼容,网络功能正常。
纯 Termux 层的优势:
| 优势 | 说明 |
|---|---|
| 稳定运行 | 直接使用 Termux 原生进程管理,不会被 Android 系统 OOM 或强行杀死 |
| 极致接近原生 Linux | 无需 proot 虚拟化层,glibc 原生加载,性能无损耗,体验与 Linux 桌面版几乎一致 |
| 资源占用低 | 没有双层文件系统和进程虚拟化的开销,内存和 CPU 开销最小 |
| 兼容性好 | 不依赖 proot/musl 等额外兼容层,Termux 更新后依然可用 |
目录
- 前提:先配置好 Termux 基础环境
- 安装通用依赖
- 方案一:Claude Code
- 方案二:OpenCode
- 方案三:Kiro CLI
- 方案四:Kilo Code
- 一键脚本(懒人专用)
- 常见错误
- 多 API 配置(Claude Code)
- 架构参数对照
1. 前提:先配置好 Termux 基础环境
本教程假设你已经完成了 Termux 的基础配置。
如果你还没装 Termux,先看《Termux环境配置教程》,完成后再回来:
👉 Termux环境配置教程 🤖 浏览器自动化教程
包含:F-Droid 下载安装 → 更换国内源 → pkg update/upgrade → 存储权限
2. 安装通用依赖
以下步骤无论安装哪个工具都需要,只需执行一次。
打开 Termux,逐条输入下面的命令,输完一条按回车,等跑完再输下一条。
2.1 安装 Node.js
pkg install -y nodejs-lts2.2 安装 Python3
pkg install -y python32.3 添加 glibc 仓库
pkg install -y glibc-repo2.4 安装 glibc
pkg install -y glibc这一步会下载约 400MB,耐心等待。
2.5 查看手机架构
uname -m- 输出
aarch64→ ARM64(绝大多数手机) - 输出
x86_64→ x86_64(部分模拟器)
记住结果,后面要用。
3. 方案一:Claude Code
如果你是想用 Claude Code(Anthropic 官方),按这个方案。
3.1 安装 wrapper
npm install -g @anthropic-ai/claude-code3.2 安装原生二进制
ARM64 用户(uname -m 输出 aarch64):
npm install -g --force @anthropic-ai/claude-code-linux-arm64x86_64 用户(uname -m 输出 x86_64):
npm install -g --force @anthropic-ai/claude-code-linux-x643.3 修补平台检测
python3 << 'PYEOF'
import re
for f in ['install.cjs', 'cli-wrapper.cjs']:
path = f'/data/data/com.termux/files/usr/lib/node_modules/@anthropic-ai/claude-code/{f}'
with open(path) as fh: c = fh.read()
c = c.replace(
"if (platform === 'android') {\n return 'linux-' + cpu + '-android'\n }",
"if (platform === 'android') {\n return 'linux-' + cpu\n }"
)
with open(path, 'w') as fh: fh.write(c)
print(f'已修补: {f}')
PYEOF3.4 链接原生二进制
node /data/data/com.termux/files/usr/lib/node_modules/@anthropic-ai/claude-code/install.cjs3.5 创建 Python 启动器
ARM64 用户执行这一段:
cat > $PREFIX/bin/claude-launcher.py << 'PYEOF'
#!/data/data/com.termux/files/usr/bin/python3
import ctypes, os, sys
libc = ctypes.CDLL(None, use_errno=True)
LD = "/data/data/com.termux/files/usr/glibc/lib/ld-linux-aarch64.so.1"
CLAUDE = "/data/data/com.termux/files/usr/lib/node_modules/@anthropic-ai/claude-code-linux-arm64/claude"
LIB = "/data/data/com.termux/files/usr/glibc/lib"
env = {k: v for k, v in os.environ.items() if k != "LD_PRELOAD"}
env.setdefault("HOME", "/data/data/com.termux/files/home")
env.setdefault("PATH", "/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:/data/data/com.termux/files/usr/glibc/bin")
env.setdefault("TERM", "xterm-256color")
env.setdefault("LANG", "en_US.UTF-8")
...x86_64 用户执行这一段:
cat > $PREFIX/bin/claude-launcher.py << 'PYEOF'
#!/data/data/com.termux/files/usr/bin/python3
import ctypes, os, sys
libc = ctypes.CDLL(None, use_errno=True)
LD = "/data/data/com.termux/files/usr/glibc/lib/ld-linux-x86-64.so.2"
CLAUDE = "/data/data/com.termux/files/usr/lib/node_modules/@anthropic-ai/claude-code-linux-x64/claude"
LIB = "/data/data/com.termux/files/usr/glibc/lib"
env = {k: v for k, v in os.environ.items() if k != "LD_PRELOAD"}
env.setdefault("HOME", "/data/data/com.termux/files/home")
env.setdefault("PATH", "/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:/data/data/com.termux/files/usr/glibc/bin")
env.setdefault("TERM", "xterm-256color")
env.setdefault("LANG", "en_US.UTF-8")
...3.6 设置权限和软链接
chmod 755 $PREFIX/bin/claude-launcher.pyln -sf $PREFIX/bin/claude-launcher.py $PREFIX/bin/claude3.7 验证
claude --version看到类似 2.1.150 (Claude Code) 就成功了。
claude --help4. 方案二:OpenCode
如果你想用 OpenCode(开源 AI 编程助手),按这个方案。 通用依赖(Node.js、Python、glibc)已经在第 2 节装好了,这里直接开始。
4.1 下载二进制
用官方安装脚本下载(会自动识别你的架构并下载最新版):
curl -fsSL https://opencode.ai/install | bash安装脚本会把 OpenCode 安装到 ~/.opencode/bin/opencode。
安装完成后脚本可能会问是否修改 PATH,输入
n跳过,我们后面用 Python 启动器。
4.2 创建 Python 启动器
OpenCode 是 Linux 原生二进制,在 Termux 里不能直接运行。需要通过 glibc 链接器来启动。
ARM64 用户执行这一段:
cat > $PREFIX/bin/opencode << 'PYEOF'
#!/data/data/com.termux/files/usr/bin/python3
import ctypes, os, sys
libc = ctypes.CDLL(None, use_errno=True)
LD = "/data/data/com.termux/files/usr/glibc/lib/ld-linux-aarch64.so.1"
OC = os.path.expanduser("~/.opencode/bin/opencode")
LIB = "/data/data/com.termux/files/usr/glibc/lib"
env = {k: v for k, v in os.environ.items() if k != "LD_PRELOAD"}
env.setdefault("HOME", "/data/data/com.termux/files/home")
env.setdefault("PATH", "/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:/data/data/com.termux/files/usr/glibc/bin")
env.setdefault("TERM", "xterm-256color")
env.setdefault("LANG", "en_US.UTF-8")
...x86_64 用户执行这一段:
cat > $PREFIX/bin/opencode << 'PYEOF'
#!/data/data/com.termux/files/usr/bin/python3
import ctypes, os, sys
libc = ctypes.CDLL(None, use_errno=True)
LD = "/data/data/com.termux/files/usr/glibc/lib/ld-linux-x86-64.so.2"
OC = os.path.expanduser("~/.opencode/bin/opencode")
LIB = "/data/data/com.termux/files/usr/glibc/lib"
env = {k: v for k, v in os.environ.items() if k != "LD_PRELOAD"}
env.setdefault("HOME", "/data/data/com.termux/files/home")
env.setdefault("PATH", "/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:/data/data/com.termux/files/usr/glibc/bin")
env.setdefault("TERM", "xterm-256color")
env.setdefault("LANG", "en_US.UTF-8")
...4.3 设置权限
chmod 755 $PREFIX/bin/opencode4.4 验证
opencode --version看到版本号(如 1.x.x)就成功了。
opencode --help首次运行:
opencode第一次会进入配置向导,选择你的 AI 提供商和模型。
提示:如果想用 DeepSeek 等第三方 API,配置时选择自定义端点:
- API 地址:
https://api.deepseek.com- 模型:
deepseek-v4-flash
5. 方案三:Kiro CLI
如果你想用 Kiro CLI(Amazon 推出的 AI 编程助手),按这个方案。 通用依赖(Node.js、Python、glibc)已经在第 2 节装好了,这里直接开始。
注意:Kiro 的安装脚本在 Termux 上会错误检测为 musl 环境。我们手动下载 glibc 版本。
5.1 下载并安装二进制
ARCH=$(uname -m)[ "$ARCH" = "x86_64" ] && DARCH=x86_64 || DARCH=aarch64curl -fsSL -o /tmp/kirocli.zip "https://prod.download.cli.kiro.dev/stable/latest/kirocli-${DARCH}-linux.zip"unzip -q /tmp/kirocli.zip -d /tmp/kiroclimkdir -p ~/.local/bincp /tmp/kirocli/kirocli/kiro-cli ~/.local/bin/kiro-clichmod +x ~/.local/bin/kiro-clirm -rf /tmp/kirocli.zip /tmp/kirocli5.2 创建 Python 启动器
ARM64 用户执行这一段:
cat > $PREFIX/bin/kiro-cli << 'PYEOF'
#!/data/data/com.termux/files/usr/bin/python3
import ctypes, os, sys
libc = ctypes.CDLL(None, use_errno=True)
LD = "/data/data/com.termux/files/usr/glibc/lib/ld-linux-aarch64.so.1"
KIRO = os.path.expanduser("~/.local/bin/kiro-cli")
LIB = "/data/data/com.termux/files/usr/glibc/lib"
env = {k: v for k, v in os.environ.items() if k != "LD_PRELOAD"}
env.setdefault("HOME", "/data/data/com.termux/files/home")
env.setdefault("PATH", "/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:/data/data/com.termux/files/usr/glibc/bin")
env.setdefault("TERM", "xterm-256color")
env.setdefault("LANG", "en_US.UTF-8")
...x86_64 用户执行这一段:
cat > $PREFIX/bin/kiro-cli << 'PYEOF'
#!/data/data/com.termux/files/usr/bin/python3
import ctypes, os, sys
libc = ctypes.CDLL(None, use_errno=True)
LD = "/data/data/com.termux/files/usr/glibc/lib/ld-linux-x86-64.so.2"
KIRO = os.path.expanduser("~/.local/bin/kiro-cli")
LIB = "/data/data/com.termux/files/usr/glibc/lib"
env = {k: v for k, v in os.environ.items() if k != "LD_PRELOAD"}
env.setdefault("HOME", "/data/data/com.termux/files/home")
env.setdefault("PATH", "/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:/data/data/com.termux/files/usr/glibc/bin")
env.setdefault("TERM", "xterm-256color")
env.setdefault("LANG", "en_US.UTF-8")
...5.3 设置权限
chmod 755 $PREFIX/bin/kiro-cli5.4 验证
kiro-cli --version看到版本号就成功了。
kiro-cli --help首次运行需要登录:
kiro-cli会显示登录链接和一次性验证码,用手机浏览器打开链接完成登录即可。
6. 方案四:Kilo Code
如果你想用 Kilo Code(最流行的开源 AI 编程助手之一,OpenCode 的上游),按这个方案。 通用依赖(Node.js、Python、glibc)已经在第 2 节装好了,这里直接开始。
6.1 下载并安装二进制
ARCH=$(uname -m)[ "$ARCH" = "x86_64" ] && GHARCH=x64 || GHARCH=arm64curl -fsSL -o /tmp/kilo.tar.gz "https://github.com/Kilo-Org/kilocode/releases/latest/download/kilo-linux-${GHARCH}.tar.gz"mkdir -p /tmp/kilo-extract ~/.local/bintar -xzf /tmp/kilo.tar.gz -C /tmp/kilo-extractcp /tmp/kilo-extract/kilo ~/.local/bin/kilo 2>/dev/null || \
find /tmp/kilo-extract -name "kilo" -type f -exec cp {} ~/.local/bin/kilo \;chmod +x ~/.local/bin/kilorm -rf /tmp/kilo.tar.gz /tmp/kilo-extract6.2 创建 Python 启动器
ARM64 用户执行这一段:
cat > $PREFIX/bin/kilo << 'PYEOF'
#!/data/data/com.termux/files/usr/bin/python3
import ctypes, os, sys
libc = ctypes.CDLL(None, use_errno=True)
LD = "/data/data/com.termux/files/usr/glibc/lib/ld-linux-aarch64.so.1"
KILO = os.path.expanduser("~/.local/bin/kilo")
LIB = "/data/data/com.termux/files/usr/glibc/lib"
env = {k: v for k, v in os.environ.items() if k != "LD_PRELOAD"}
env.setdefault("HOME", "/data/data/com.termux/files/home")
env.setdefault("PATH", "/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:/data/data/com.termux/files/usr/glibc/bin")
env.setdefault("TERM", "xterm-256color")
env.setdefault("LANG", "en_US.UTF-8")
...x86_64 用户执行这一段:
cat > $PREFIX/bin/kilo << 'PYEOF'
#!/data/data/com.termux/files/usr/bin/python3
import ctypes, os, sys
libc = ctypes.CDLL(None, use_errno=True)
LD = "/data/data/com.termux/files/usr/glibc/lib/ld-linux-x86-64.so.2"
KILO = os.path.expanduser("~/.local/bin/kilo")
LIB = "/data/data/com.termux/files/usr/glibc/lib"
env = {k: v for k, v in os.environ.items() if k != "LD_PRELOAD"}
env.setdefault("HOME", "/data/data/com.termux/files/home")
env.setdefault("PATH", "/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:/data/data/com.termux/files/usr/glibc/bin")
env.setdefault("TERM", "xterm-256color")
env.setdefault("LANG", "en_US.UTF-8")
...6.3 设置权限
chmod 755 $PREFIX/bin/kilo6.4 验证
kilo --version看到版本号就成功了。
kilo --help首次运行:
kilo会提示登录,输入 kilo auth login 按提示完成验证即可。
7. 一键脚本(懒人专用)
6.1 Claude Code 一键安装
复制下面全部内容,在 Termux 里长按粘贴,然后按回车:
set -e
echo "=== 1/6 安装通用依赖 ==="
pkg install -y nodejs-lts python3 glibc-repo && pkg install -y glibc
echo "=== 2/6 安装 Claude Code ==="
npm install -g @anthropic-ai/claude-code
ARCH=$(uname -m)
if [ "$ARCH" = "aarch64" ]; then
npm install -g --force @anthropic-ai/claude-code-linux-arm64
elif [ "$ARCH" = "x86_64" ]; then
npm install -g --force @anthropic-ai/claude-code-linux-x64
else
echo "不支持的架构: $ARCH"; exit 1
...6.2 OpenCode 一键安装
set -e
echo "=== 1/3 安装通用依赖 ==="
pkg install -y nodejs-lts python3 glibc-repo && pkg install -y glibc
echo "=== 2/3 下载 OpenCode ==="
curl -fsSL https://opencode.ai/install | bash
echo "=== 3/3 创建 Python 启动器 ==="
ARCH=$(uname -m)
if [ "$ARCH" = "aarch64" ]; then
SYS=221; LDS=ld-linux-aarch64.so.1
elif [ "$ARCH" = "x86_64" ]; then
SYS=59; LDS=ld-linux-x86-64.so.2
else
...6.3 Kiro CLI 一键安装
set -e
echo "=== 1/3 安装通用依赖 ==="
pkg install -y nodejs-lts python3 glibc-repo && pkg install -y glibc
echo "=== 2/3 下载 Kiro CLI ==="
ARCH=$(uname -m)
[ "$ARCH" = "x86_64" ] && DARCH=x86_64 || DARCH=aarch64
curl -fsSL -o /tmp/kirocli.zip "https://prod.download.cli.kiro.dev/stable/latest/kirocli-${DARCH}-linux.zip"
unzip -q /tmp/kirocli.zip -d /tmp/kirocli
mkdir -p ~/.local/bin
cp /tmp/kirocli/kirocli/kiro-cli ~/.local/bin/kiro-cli
chmod +x ~/.local/bin/kiro-cli
rm -rf /tmp/kirocli.zip /tmp/kirocli
...6.4 Kilo Code 一键安装
set -e
echo "=== 1/3 安装通用依赖 ==="
pkg install -y nodejs-lts python3 glibc-repo && pkg install -y glibc
echo "=== 2/3 下载 Kilo Code ==="
ARCH=$(uname -m)
[ "$ARCH" = "x86_64" ] && GHARCH=x64 || GHARCH=arm64
curl -fsSL -o /tmp/kilo.tar.gz "https://github.com/Kilo-Org/kilocode/releases/latest/download/kilo-linux-${GHARCH}.tar.gz"
mkdir -p /tmp/kilo-extract ~/.local/bin
tar -xzf /tmp/kilo.tar.gz -C /tmp/kilo-extract
cp /tmp/kilo-extract/kilo ~/.local/bin/kilo 2>/dev/null || \
find /tmp/kilo-extract -name "kilo" -type f -exec cp {} ~/.local/bin/kilo \;
chmod +x ~/.local/bin/kilo
...8. 常见错误
8.1 通用
Could not find a PHDR: broken executable?
原因:没用 Python 启动器,libtermux-exec.so 拦截了进程创建。
解决:
ls -la $PREFIX/bin/claude $PREFIX/bin/opencode $PREFIX/bin/kiro-cli $PREFIX/bin/kilo确认指向对应的 Python 启动器(.py 文件),而不是直接指向二进制。
CANNOT LINK EXECUTABLE: libc.so.6 not found
原因:glibc 没安装或路径不对。
解决:
ls /data/data/com.termux/files/usr/glibc/lib/libc.so.6
ls /data/data/com.termux/files/usr/glibc/lib/ld-linux-*command not found
原因:$PREFIX/bin 不在 PATH 中,或启动器没创建成功。
解决:
echo $PATH | grep -q usr/bin && echo "PATH OK"
ls -la $PREFIX/bin/claude $PREFIX/bin/opencode $PREFIX/bin/kiro-cli $PREFIX/bin/kilo8.2 Claude Code 专属
npm ERR! code EBADPLATFORM
原因:npm 拒绝在 Android 上安装 Linux 包。
解决:加 --force。
更新后 claude 失效
node /data/data/com.termux/files/usr/lib/node_modules/@anthropic-ai/claude-code/install.cjs重新执行 3.5 ~ 3.6 步骤。
8.3 OpenCode 专属
无法执行二进制文件
~/.opencode/bin/opencode: cannot execute: required file not found原因:OpenCode 是 Linux 原生二进制,依赖 glibc,不能直接在 Termux 中执行。
解决:确认已创建 Python 启动器:
ls -la $PREFIX/bin/opencode
opencode --version更新 OpenCode
curl -fsSL https://opencode.ai/install | bash重新下载最新版二进制后,Python 启动器不需要修改,直接就能用。
8.4 Kiro CLI 专属
下载失败或 404
原因:架构名转换错误。
解决:
uname -m确认是 aarch64 或 x86_64。
登录后无法使用
首次运行 kiro-cli 会显示登录链接。用手机浏览器打开并按提示完成验证即可。如果登录页面不显示,尝试:
kiro-cli login更新 Kiro CLI
ARCH=$(uname -m)
[ "$ARCH" = "x86_64" ] && DARCH=x86_64 || DARCH=aarch64
curl -fsSL -o /tmp/kirocli.zip "https://prod.download.cli.kiro.dev/stable/latest/kirocli-${DARCH}-linux.zip"
unzip -q /tmp/kirocli.zip -d /tmp/kirocli
cp /tmp/kirocli/kirocli/kiro-cli ~/.local/bin/kiro-cli
chmod +x ~/.local/bin/kiro-cli
rm -rf /tmp/kirocli.zip /tmp/kirocli重新下载后,Python 启动器不需要修改。
8.5 Kilo Code 专属
文件解压后找不到 kilo 二进制
tar -xzf /tmp/kilo.tar.gz -C /tmp/kilo-extract
ls -la /tmp/kilo-extract
find /tmp/kilo-extract -name "kilo" -type f如果找到的路径不同,手动复制到 ~/.local/bin/kilo。
下载 GitHub 文件太慢
可以在手机浏览器打开:
https://github.com/Kilo-Org/kilocode/releases/latest手动下载对应的 kilo-linux-arm64.tar.gz 或 kilo-linux-x64.tar.gz,然后用 Termux 复制:
cp ~/storage/downloads/kilo-linux-*.tar.gz /tmp/kilo.tar.gz登录问题
首次运行:
kilo auth login会显示登录链接和验证码,用手机浏览器打开即可。
更新 Kilo Code
ARCH=$(uname -m)
[ "$ARCH" = "x86_64" ] && GHARCH=x64 || GHARCH=arm64
curl -fsSL -o /tmp/kilo.tar.gz "https://github.com/Kilo-Org/kilocode/releases/latest/download/kilo-linux-${GHARCH}.tar.gz"
mkdir -p /tmp/kilo-extract ~/.local/bin
tar -xzf /tmp/kilo.tar.gz -C /tmp/kilo-extract
cp /tmp/kilo-extract/kilo ~/.local/bin/kilo 2>/dev/null || \
find /tmp/kilo-extract -name "kilo" -type f -exec cp {} ~/.local/bin/kilo \;
chmod +x ~/.local/bin/kilo
rm -rf /tmp/kilo.tar.gz /tmp/kilo-extract重新下载后,Python 启动器不需要修改。
9. 多 API 配置(Claude Code)
创建 claude1 命令使用 DeepSeek:
cat > $PREFIX/bin/claude1 << 'EOF'
#!/data/data/com.termux/files/usr/bin/sh
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=sk-你的密钥
export ANTHROPIC_MODEL=deepseek-v4-pro
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash
export CLAUDE_CODE_EFFORT_LEVEL=max
exec claude "$@"
EOFchmod +x $PREFIX/bin/claude1之后直接用 claude1 启动。
10. 架构参数对照
| 参数 | ARM64(手机) | x86_64(模拟器) |
|---|---|---|
uname -m | aarch64 | x86_64 |
| glibc 链接器 | ld-linux-aarch64.so.1 | ld-linux-x86-64.so.2 |
| syscall 号码 | 221 | 59 |
| Claude 原生包 | claude-code-linux-arm64 | claude-code-linux-x64 |
| OpenCode 安装 | curl ... | bash(自动识别) | curl ... | bash(自动识别) |
| Kiro 下载 URL | kirocli-aarch64-linux.zip | kirocli-x86_64-linux.zip |
| Kilo 下载 URL | kilo-linux-arm64.tar.gz | kilo-linux-x64.tar.gz |