据少数派2026年9月28日发布的文章,一名用户在不 root、不刷机的小米15 Ultra上,用 Termux 搭建了一套可运行 Hermes 等终端 AI Agent 的 Android 手机开发服务器,并配置后台保活和内网穿透,使手机在息屏后仍可作为服务器,供笔记本或平板通过 SSH 连接测试和改代码。

文章称,选择手机跑 Agent 的原因在于电脑无法随时携带,租云服务器需要额外付费,而 Android 手机通常随时有网有电,性能足以支撑现代 Linux 命令行环境。与网页聊天框不同,终端 Agent 拥有本地 Shell 权限和文件环境,可以直接运行脚本、处理本地文件,并把格式化后的 Markdown、JSON 或处理结果存入本地目录。对于代码包、日志归档和开源测试集,Agent 还能在本地调用 Python、unzip、tar 或 grep,先解包过滤再调模型,减少上传大文件的麻烦。配合 Termux:API,Agent 还可调用手机通知和剪贴板,例如任务完成后弹通知,或读取剪贴板内容处理后再写回。

安装 Termux 时,文章提醒不要从应用商店下载。Google Play 版本早已停止维护,F-Droid 版本虽然较新,但签名私钥与 GitHub Releases 不一致,后续安装 Termux:API、Termux:Boot 等插件可能因签名冲突失败。推荐直接从 Termux GitHub Releases 下载 termux-app、termux-api 和 termux-boot。安装后先执行 termux-setup-storage 申请存储权限,再用 termux-change-repo 更换国内镜像源,随后通过 pkg update 和 pkg upgrade 升级基础组件。

在 Agent 选择上,文章使用 Nous Research 开源的 Hermes Agent,称其自带终端执行、任务规划和文件读写能力,并针对 Termux 做了适配。安装流程包括用 pkg 安装 python、clang、cmake、rust 和 git,拉取 Hermes 源码,再用 pip install -e .[termux] -c constraints-termux.txt 安装,以避免拉取不兼容的桌面依赖。首次运行 hermes 会进入交互式引导,用户可选择 DeepSeek 等模型提供商、输入 API Key 并选择模型,之后通过 /config 或 /model 修改。配置完成后,可让 Hermes 自动安装 nodejs、rust、uv、git、jq、ripgrep、yazi、tmux、neovim,以及 openssh、termux-services、termux-api 等系统包。

文章还列出 2026 年主流 CLI AI 工具在 Termux 上的兼容情况。Hermes Agent 和 Pi CLI 原生支持;OpenCode 需使用社区版 guysoft/opencode-termux,以修复 Go CGO 在 Android 上的底层兼容问题;Codex CLI 需使用社区版 DioNanos/codex-termux,该版本修补了 glibc 依赖;Grok Build 为开源 Rust 架构,装好 rust 后可通过 cargo build 编译;Cursor CLI 需通过 proot-distro 安装 Ubuntu 容器后运行官方二进制;Claude Code 暂无稳定方案,原因是深度绑定 Node 桌面构建链,移动端底层依赖经常断裂。

后台保活是手机充当服务器的关键问题。文章称,Android 系统会在息屏后冻结后台进程,导致 SSH 掉线或脚本中断。要让 Termux 全天候稳定在线,至少需要三层配置:将 Termux 的省电策略设为无限制,在系统手机管家或电池设置中关闭锁屏后清理内存,并在开发者选项中打开停用子进程限制,也就是 Disable child process restrictions,对应底层的 Phantom Process Killer。若仍遇到后台留存问题,还可利用 Android 对媒体音频应用的后台豁免,让 Termux 循环播放一段 1 分钟的静音 WAV 文件以换取音频焦点。

文章提醒,无脑循环播放静音音频可能抢占蓝牙耳机的 A2DP 通道,导致耳机突然没声或跳音频设备。保活脚本应加入蓝牙状态判断:检测到连接蓝牙耳机时暂停播放,耳机断开后再恢复。文章给出了用 ffmpeg 生成 1 分钟静音音频的命令,并开始编写位于 ~/.termux/scripts/keepalive.sh 的保活脚本。