ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

安卓手机跑AI编程Agent:Termux+Codex+Claude Code实战指南

安卓手机跑AI编程Agent:Termux+Codex+Claude Code实战指南

最近在通勤路上用安卓手机修好了一个生产环境的正则表达式Bug,工具链是Termux + Codex CLI + cc-switch,全程没开电脑。放在两年前我根本不敢想——那时候Claude Code和Cursor这类AI编程Agent基本都绑死在桌面端,而今天这篇,我就分享怎么在安卓手机上把CC(Claude Code)、Codex和Cursor的实用性拉到最高,以及这一路上值得记录的环境搭建、踩坑和取舍。

先说结论:手机跑Agent不是伪需求,它真正解决了“电脑不在身边,但活儿不能停”的痛点。下面所有操作我都实测过,命令和配置可以直接抄。

1. 想清楚再动手:手机跑Agent到底能干什么

1.1 不是装酷,这些场景真的需要移动端Agent

很多朋友一听到“安卓手机跑Agent”就觉得是在折腾,但我的实际体会是,程序员的时间并不总发生在电脑前。通勤、排队、差旅、陪家人,这些碎片时间过去只能刷新闻,现在可以让一个AI编程Agent替你先干活。比如让Claude Code检查某个Python脚本的编码问题,或者让Codex自动补一批单元测试,这些任务的算力消耗不大,但能节省大量“回到电脑前再说”的等待。

另一个高频场景是远程管理。我在云端保留了几个开发容器,手机Termux通过SSH连上去,让Agent执行代码审查、依赖升级、日志分析和自动化测试。手机屏幕和键盘确实小,但Agent的输出是流式文本,阅读起来没有障碍。更关键的是,Agent可以代替我敲大量命令,手机输入短板被AI天然缓解了。

1.2 三条路线怎么选:原生Termux、Proot容器、远程桌面

选型之前先理清差别,我用一张表总结了市面上几种主流方案:

方案优点缺点最适合
Termux原生环境启动快、省电、包管理器方便部分Linux系统组件缺失运行CLI型Agent(Codex、Claude Code)
Termux + Proot可安装完整Linux发行版,兼容性更好模拟层有性能损耗,占用存储需要完整Linux包且不想带电脑
安卓虚拟机能在平板上运行完整桌面IDE资源开销大、发热严重、操作别扭偶尔体验桌面软件
远程桌面完整体验Cursor等图形IDE需要有一台常开电脑或云主机需要图形界面且不介意延迟

我的选择策略是:优先用原生Termux跑Agent,遇到必须完整Linux内核的场景就切Proot,碰到需要图形IDE远程操作时直接远程桌面。这套组合能覆盖90%的需求,而且不会把手机变成暖手宝。

2. 环境搭建:让 Termux 变成 Agent 驾驶舱

2.1 基础安装和权限配置

Termux的生命线是包管理器。请务必从F-Droid官网下载最新的Termux安装包,不要用应用商店里的旧版本。安装完成后,执行:

pkg update && pkg upgrade -y pkg install nodejs-lts git python openssh termux-api -y

接着授权存储访问:

termux-setup-storage

这里解释一下每个包的作用:nodejs-lts是Codex CLI和Claude Code的运行时环境,git用来操作代码仓库,python负责运行被Agent控制的脚本,openssh用于远程连接或本机SSH服务,termux-api则提供手机传感器和系统交互能力。存储权限必须开,否则Agent只能访问Termux的私有数据目录,访问不到你手机里的项目文件。

最后启动唤醒锁:

termux-wake-lock

这一行是保证Agent长时间运行时,屏幕锁定后进程不被系统杀掉的第一个关键动作。

2.2 安装Codex CLI,并让它接入不同模型

Codex CLI是OpenAI出的编程Agent命令行工具,安装命令很直接:

npm install -g @openai/codex

第一次运行codex会生成配置文件~/.codex/config.toml,默认连接OpenAI官方服务。但如果你想把它接到DeepSeek或其他兼容接口,改配置文件就行。我自己目前更常用DeepSeek做日常任务,响应速度和成本都更友好。配置方法如下:

[model_providers.deepseek] name = "deepseek" base_url = "https://api.deepseek.com" env_key = "DEEPSEEK_API_KEY"

然后在配置里选择模型:

model = "deepseek-chat" model_provider = "deepseek"

这就是热词里“codex接入deepseek”的正确姿势。设置好环境变量DEEPSEEK_API_KEY之后,执行codex "查看当前目录代码并写一份测试计划"就能工作。Codex CLI的交互界面是TUI,手机上用起来不算难受,但最好配合折叠键盘或外接蓝牙键盘。

2.3 cc-switch:解决“多个Agent多套配置”的痛点

如果你同时使用Codex、Claude Code,甚至本地跑的一些AI脚本,会发现每个工具都有自己的配置文件、密钥、模型参数,来回切换极其繁琐。cc-switch就是来解决这个的:它把多种AI客户端的API配置集中管理,并提供一个本地转发网关,让不同工具统一指向这个网关,再按当前选择把请求转给对应后端供应商。

安装cc-switch,我推荐去它的GitHub Releases页面下载对应手机架构的二进制,或者看项目文档选择Node版本安装。启动之后,它会在本地监听一个端口,比如12121。然后在Codex或Claude Code的配置里,把base_url指向http://127.0.0.1:12121/对应的前缀。切换模型供应商时,只需要在cc-switch的控制台操作,不用再改客户端配置文件。

有个容易被忽略的点:cc-switch不是神仙工具,它会把请求原样转发。如果你的某个供应商接口路径和Codex标准不兼容,这个转发层也会报错。这个坑后面第4章会详细说,先记住。

2.4 密钥安全与多环境变量管理

手机是很容易丢失的设备,密钥管理比在PC上更值得认真对待。我强烈建议所有API Key统一放在Termux的~/.bashrc或~/.profile里,而不是直接写进Agent的对话历史。例如:

export OPENAI_API_KEY="sk-xxx" export ANTHROPIC_API_KEY="sk-xxx" export DEEPSEEK_API_KEY="sk-xxx"

然后让cc-switch从这些环境变量里读取对应供应商的Key。这样有三点好处:一是不同工具共享一套密钥配置,改一处就全局生效;二是密钥不会出现在Agent和模型的对话上下文中,降低泄露风险;三是换手机时只要备份这几个文件,迁移成本极低。

3. 实操落地:手机上用CC、Codex和Cursor的正确姿势

3.1 把Claude Code(CC)跑起来

在Termux终端执行:

npm install -g @anthropic-ai/claude-code export ANTHROPIC_API_KEY="你的密钥"

然后输入claude,Claude Code就会进入交互式Agent会话。给你看一个我实际跑过的例子:项目目录下有个Python脚本,打开是乱码。我对Claude Code说:

修复当前目录下所有Python脚本的编码问题,统一转换成UTF-8,然后运行pytest确认通过。

Claude Code会先列出文件,修改编码头,执行测试,把失败结果抓回来迭代修复。整个过程在手机屏幕上就能看到。第一次跑的时候我最大的感慨是:它真的在Termux里使用我的环境变量、文件权限和git身份,和桌面端没有本质区别。

注意几个细节:Claude Code需要Node.js 18+版本;Termux默认的bash缺少某些交互能力,建议执行pkg install zsh,或者在保持默认终端时注意处理编码;如果脚本需要执行权限,Termux不会自动给你加chmod +x,这些都要在提示词里要求Agent自己检查。

3.2 想在手机上用Cursor?两条可行路径

先说结论:Cursor目前没有官方安卓版,网上流传的“安卓版Cursor安装包”大都是套壳或割韭菜,不建议安装。但这不代表你不能在手机上体验Cursor级别的AI编程能力。

路径一是远程桌面。在常开的电脑或云主机上安装RustDesk或ToDesk,然后用手机客户端连接。这台机器上正常安装Cursor,登录自己的账号和插件。手机屏幕上会出现完整的IDE界面,你可以用触控板模式模拟鼠标,也可以外接蓝牙键盘。好处是体验原汁原味,坏处是延迟和流量消耗。

路径二是“AI IDE重构”。在Termux或Proot里安装code-server(VS Code的网页版),再安装Continue这类AI插件。这样访问手机本地端口,就能在浏览器里得到一个带AI聊天、代码补全的编辑器。虽然它不叫Cursor,但Agent体验的核心——让AI理解项目、改写代码、执行命令——已经完整覆盖。我个人更喜欢路径二,尤其配合云主机时,相当于随身带了一个“伪Cursor”。

3.3 中文化设置和终端体验优化

这里分享三个非常实用的小点。

第一,远程桌面里的Cursor设置中文:打开命令面板(手机端模拟快捷键Ctrl+Shift+P,或通过菜单进入),输入“Configure Display Language”,选择中文。如果没有中文条目,先到扩展市场搜索“Chinese Language Pack”安装,重启即可。

第二,Codex CLI和Claude Code虽然没有中文界面,但你可以直接要求它们用中文回复。比如在会话中说“请全程使用中文,包括变量命名建议和注释”,比改任何语言配置都有效。如果遇到中文显示乱码,先检查有没有中文字体:

pkg install which fontconfig fc-list :lang=zh

如果没有中文字体,安装fonts-noto或在Termux设置里切换Nerd Fonts字体。顺便把编码强制为UTF-8,能解决大部分终端显示问题。

4. 踩坑实录:常见问题与排查速查表

4.1 cc-switch 本地转发失败,Codex 请求中断

这是cc-switch用户最常遇到的问题,症状是Codex发出请求后,终端报出类似“local转发失败 while handling codex endpoint /responses”的错。注意,这里的“local转发失败”指的就是本地转发网关没能把请求正确送到后端。

我从日志里总结出三个高频原因:第一,cc-switch里选中的后端供应商地址写错,比如漏了https://协议头;第二,API Key过期或没有权限,网关透传后被对方拒收;第三,本地端口被其他应用占用,Codex的请求根本没送到cc-switch。

排查方法很朴素:

# 检查监听端口 ss -tlnp | grep 12121 # 手动模拟一次请求,看后端是否返回200 curl -i http://127.0.0.1:12121/codex/responses

如果curl返回401,说明密钥或认证头有问题,回cc-switch控制台重新选择供应商并更新Key;如果连接失败,检查后端地址和网络联通性。我印象最深的一次故障就是用了过期的DeepSeek Key,日志里清清楚楚写着401,换掉Key秒好。

4.2 401 Unauthorized风暴

不管是Codex还是Claude Code,频繁出现401本质上都是认证没过。在Termux环境下,有几个容易踩的情况:环境变量没有应用到当前Shell,比如你在一个终端窗口里export了Key,但Agent是在另开的会话里运行的;cc-switch没有透传自定义认证头;以及你配置了多个Key,但实际用的是旧的那个。

我建议统一在~/.bashrc里加载Key,并且让cc-switch的配置使用同一个环境变量名。测试密钥有效性时不要依赖Agent日志,直接手动请求:

curl -i https://api.deepseek.com/models -H "Authorization: Bearer $DEEPSEEK_API_KEY"

Key有效再回头检查转发层,能省下大量排查时间。

4.3 安卓系统杀后台,Agent任务消失

这是手机跑Agent最影响体验的问题。即使设置了termux-wake-lock,如果系统开启了激进省电模式,Termux进程依然可能被后台清理。解决办法分三步。

第一,在系统设置里把Termux加入“不受电池优化限制”的应用白名单。不同品牌设置入口不同,可以在系统设置搜索“电池优化”找到对应项。第二,在最近任务列表里给Termux卡片下拉锁定。第三,打开Termux的通知栏常驻服务,让系统识别为前台应用。

我实测过,这三步做完,一个需要跑十分钟的Agent任务基本能稳定执行完。如果仍然被中断,说明手机系统限制太激进,这个时候把重任务丢到云主机上,手机Termux只做SSH客户端,让Agent在云端跑,手机只看日志,是最务实的解法。

4.4 虚拟机或Proot连不上网

有人问“安卓虚拟机怎么联网”,这里分两种情况说。如果你用的是Termux + Proot,容器默认共享宿主机网络,不需要额外设置,但偶尔需要手动配置DNS:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

如果你用的是安卓虚拟机类应用,关键在网络模式选择。选择“NAT”通常就能正常上网,需要和宿主机局域网互访时则选“桥接模式”。需要提醒的是,不要在Proot里折腾systemd网络管理,Termux的Proot不是完整内核,跑不起来很正常。用curl和ping这类命令行工具排查网络就够了。

4.5 Agent 在 Termux 中意外终止

有时你会在终端里看到agent execution terminated due to error。这个错误信息很大,但本质不外乎几类原因:一是内存不足,Termux默认有内存上限,Agent处理超大仓库时容易崩。解决方法是减少同时加载的文件数量,或者分阶段让Agent处理。二是命令执行权限问题,Termux的非root环境限制了很多系统调用,遇到权限类错误,要么切换Proot以获得更完整的环境,要么在提示词里明确要求Agent使用用户目录下的工具链。三是API超时,如果你的网络到后端供应商延迟太大,模型会在长时间等待后中断响应,此时可以调大Codex或Claude Code的超时时间配置。

我自己用得比较顺手的一个习惯是:给Agent设定“心跳文件”。让Agent每完成一个步骤,就在Git仓库或临时目录的某个标记文件里写入时间戳。这样即使手机锁屏导致任务中断,我回来也能通过时间戳判断它是在哪个阶段挂掉的,避免从头再来。这个小习惯帮我节省了不知道多少排查时间。

5. 经验小结:手机跑Agent的边界与更多玩法

用了几个月的移动端Agent,我的核心感受是:这不是为了“替代电脑”,而是为了“抢占碎片时间”。手机的性能和屏幕决定了它不适合做大规模架构重构,但非常适合做AI能自动完成的细碎任务——改Bug、写测试、整理代码、提交PR、看日志。只要网络稳定,Agent的实时反馈就能让手机变成一块高效的任务面板。

几个很实用的扩展方向供你参考:

把Termux命令接入Tasker,设定定时触发。比如每天早上8点,让Claude Code自动更新某个项目的依赖并运行测试,再把结果推送到钉钉或微信机器人。这样手机直接变成一个无人值守的自动化工作节点。

如果你正在做Agent开发,可以把手机当成一个轻量级Agent运行时。很多Agent框架支持在移动端运行轻量化智能体,配合cc-switch统一管理接口,能省下大量配置成本。

最后,外接一个蓝牙键盘。Termux的快捷键体系完整之后,输入效率会提升非常多。我已经用这套组合在高铁上完成过两次小型线上修复,体验出乎意料地稳定。

返回列表