Article summary — original

基于 Termux 的 Android 手机开发服务器实操与 AI Agent 配置指南 本文介绍了在未 Root 的 Android 手机上利用 Termux 搭建随身开发服务器的方法,重点讲解了终端 AI Agent 的本地部署、开发工具链配置以及通过音频焦点机制实现的后台保活方案。 在 Termux 本地运行终端 AI Agent,可直接执行脚本、管理文件并结合 termux-api 调取手机硬件能力,无需上传大文件即可在本地预处理。 安装 Termux 及插件需通过 GitHub Releases 避免签名冲突,完成存储授权和国内换源后可通过 Hermes Agent 自动补齐常用开发环境。 不同终端 AI 工具在 Termux 上的兼容性各异,Hermes 和 Pi CLI 支持原生安装,其他部分工具需依赖社区版修补或容器环境。 针对 Android 息屏杀后台问题,可通过后台循环播放静音音频获取媒体豁免,并结合蓝牙状态检测避免抢占耳机音频通道。 终端 AI Agent 与本地环境优势 相较于网页端聊天框,在 Termux 环境运行 Hermes 等终端 AI Agent 能直接获得本地 Shell 权限。Agent 编写的代码可在手机后台直接执行并生成结构化文件,同时便于调用 unzip、grep 等工具在本地预先解包和过滤日志或数据集,无需全量上传。配合 termux-api 还能实现通知栏弹窗等手机特有能力。 Termux 与 Hermes Agent 安装配置 由于 Google Play 版本停更且各渠道签名不一致,建议统一从 GitHub Releases 获取 Termux 本体及 API、Boot 插件。初始化存储权限并更换国内镜像后,可安装 Python 等依赖并以针对 Termux 适配的模式安装 Hermes Agent。完成首次模型配置后,还可直接通过对话让 Agent 自动化安装 nodejs、rust、tmux 等整套日常开发依赖。 系统后台保活与音频避让方案 为防止 Android 息屏冻结导致 SSH 掉线或脚本中断,可利用系统对媒体音频的后台豁免机制。方案采用 ffmpeg 生成 1 分钟静音 WAV 文件并在后台循环播放以维持音频焦点;同时脚本需加入蓝牙连接状态判断,在用户佩戴蓝牙耳机时主动暂停静音播放,避免抢占 A2DP 通道引发设备音频冲突。

Article summary — zh

基于 Termux 的 Android 手机开发服务器实操与 AI Agent 配置指南 本文介绍了在未 Root 的 Android 手机上利用 Termux 搭建随身开发服务器的方法,重点讲解了终端 AI Agent 的本地部署、开发工具链配置以及通过音频焦点机制实现的后台保活方案。 在 Termux 本地运行终端 AI Agent,可直接执行脚本、管理文件并结合 termux-api 调取手机硬件能力,无需上传大文件即可在本地预处理。 安装 Termux 及插件需通过 GitHub Releases 避免签名冲突,完成存储授权和国内换源后可通过 Hermes Agent 自动补齐常用开发环境。 不同终端 AI 工具在 Termux 上的兼容性各异,Hermes 和 Pi CLI 支持原生安装,其他部分工具需依赖社区版修补或容器环境。 针对 Android 息屏杀后台问题,可通过后台循环播放静音音频获取媒体豁免,并结合蓝牙状态检测避免抢占耳机音频通道。 终端 AI Agent 与本地环境优势 相较于网页端聊天框,在 Termux 环境运行 Hermes 等终端 AI Agent 能直接获得本地 Shell 权限。Agent 编写的代码可在手机后台直接执行并生成结构化文件,同时便于调用 unzip、grep 等工具在本地预先解包和过滤日志或数据集,无需全量上传。配合 termux-api 还能实现通知栏弹窗等手机特有能力。 Termux 与 Hermes Agent 安装配置 由于 Google Play 版本停更且各渠道签名不一致,建议统一从 GitHub Releases 获取 Termux 本体及 API、Boot 插件。初始化存储权限并更换国内镜像后,可安装 Python 等依赖并以针对 Termux 适配的模式安装 Hermes Agent。完成首次模型配置后,还可直接通过对话让 Agent 自动化安装 nodejs、rust、tmux 等整套日常开发依赖。 系统后台保活与音频避让方案 为防止 Android 息屏冻结导致 SSH 掉线或脚本中断,可利用系统对媒体音频的后台豁免机制。方案采用 ffmpeg 生成 1 分钟静音 WAV 文件并在后台循环播放以维持音频焦点;同时脚本需加入蓝牙连接状态判断,在用户佩戴蓝牙耳机时主动暂停静音播放,避免抢占 A2DP 通道引发设备音频冲突。

Saved original article

最近在折腾 Hermes、Pi 这类终端 AI Agent,和网页上的聊天框不同,这类工具最大的特点是能直接在命令行里跑脚本、改代码、自动排错,能当个真正的干活助手。 如果想让这类 Agent 随时可用,最顺手的设备其实就是每天带在身上的手机:电脑不可能时时刻刻带在身边,租云服务器又要多付一份钱,而手头的 Android 手机随时有网有电,性能也完全带得动现代的 Linux 命令行环境。比如在 Termux 里把 Agent 跑起来之后,顺手配好后台保活和内网穿透,手机本身就能变成一台随身小服务器,无论用笔记本,还是在外面用平板,敲一行 SSH 就能直接连进去测试或改代码。 当然,在 Android 上折腾这些,主要麻烦在两点:一是系统杀后台,二是某些命令行工具在 Android 上的底层兼容问题。本文记录基于小米 15 Ultra,不 root、不刷机,把整个环境配置、后台防杀以及连通穿透的方案,分享给同样想用手机跑 Agent 和轻量开发环境的朋友。 平时在手机上用常规 AI,基本停留在打字问答。但真要让它处理点具体事情,往往就会卡壳。而在 Termux 里跑 Agent,它就拥有了手机本地 Shell 权限和文件环境。 举个例子,在手机上用普通对话框,最别扭的地方在于偶尔想让它做个数据格式转换、写个排错脚本或清洗工具,它往往只输出一段 Python 代码。在电脑上还能拷出来跑,但在手机里没有运行环境。 但如果终端 Agent 本身跑在 Linux 环境里,写完脚本就可以后台直接运行,生成好的结构化文件(比如格式化好的 Markdown、JSON 或处理后的文件)也可以直接存到本地目录。我们最终拿到的是跑完的结果,而不是一段只能干瞪眼的代码。 另外,虽然调用 API 依然要走网络,但几十、上百兆的原始归档或数据集也不需要往网页上传了。尤其是代码包、日志归档和开源测试集这类文件,在手机小屏幕上解包、翻找既费事又容易中断,而在 Termux 里,Agent 可以在本地跑 Python 脚本、调用 `unzip`、`tar` 或 `grep` 工具,先把大文件在本地解包、过滤,只提取出需要分析的核心片段再去调模型。 最后,对于本文的使用场景,配合 Termux 官方的 `termux-api` 插件,它还能接通一些手机特有的能力: `termux-notification`,手机震动并在通知栏弹窗提醒 安装 Termux 的唯一注意事项是:不要从应用商店下载。Google Play 商店的版本早已停止维护,F-Droid 上的版本虽然新,但签名私钥和 GitHub Releases 不一样。如果后续想装 `Termux:API`、`Termux:Boot` 等插件,会因为混装的系统签名冲突,导致无法成功安装。 所以这里推荐直接去 [Termux GitHub Releases](https://github.com/termux/termux-app/releases) 下载,顺便也可以把常用的几个插件一起装好: `termux-app`(终端本体)`termux-api`(调用手机通知、剪贴板等硬件功能)`termux-boot`(开机自动拉起后台服务) 安装后打开 Termux,这里也建议先给存储权限并换个国内镜像源,避免后续下载太慢: ``` # 1. 申请存储权限(允许终端访问手机本地文件) termux-setup-storage # 2. 更换国内源(按空格选中 Mirrors by USTC 或清华源,回车确认) termux-change-repo # 3. 升级基础系统组件 pkg update && pkg upgrade -y ``` 在手机端敲命令配环境比较繁琐,更省事的做法是先装好核心 Agent,后续的工具链直接让它在终端里帮你装。 这里我用的是 Hermes Agent(Nous Research 开源的 CLI Agent),自带终端执行、任务规划和文件读写能力,并且针对 Termux 环境做了单独适配。 我们先装好 Python 和编译依赖,然后拉取源码: ``` # 安装基础依赖 pkg install -y python clang cmake rust git # 拉取源码并安装 git clone https://github.com/NousResearch/hermes-agent ~/.hermes/hermes-agent cd ~/.hermes/hermes-agent # 注意:使用 [termux] 特性安装,避免拉取不兼容的桌面依赖 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 几个系统包。 Hermes 会在后台自动执行 `pkg install`,然后把环境配齐。 附 2026 年主流 CLI AI 工具在 Termux 上的兼容情况: | 工具 | Termux 支持情况 | 方案 / 说明 | | |---|---|---|---| | **Hermes Agent** | ✅ 原生支持 | `pip install -e .[termux]`,主力全能选手 | | | **Pi CLI** | ✅ 原生支持 | `curl -fsSL https://pi.dev/install.sh \` | `bash`,极简轻量,适合单次快速提问 | | **OpenCode** | ⚠️ 需社区版 | [guysoft/opencode-termux](https://github.com/guysoft/opencode-termux)(修复了 Go CGO 在 Android 上的底层兼容问题) | | | **Codex CLI** | ⚠️ 需社区版 | [DioNanos/codex-termux](https://github.com/DioNanos/codex-termux)(社区打补丁修复了 glibc 依赖) | | | **Grok Build** | ⚠️ 可源码编译 | 开源 Rust 架构,在 Termux 里装好 rust 后可通过 `cargo build` 编译 | | | **Cursor CLI** | ⚠️ 需 Linux 容器 | 需通过 `proot-distro install ubuntu` 进轻量 Ubuntu 容器后跑官方二进制 | | | **Claude Code** | ❌ 暂无稳定方案 | 深度绑定 Node 桌面构建链,移动端底层依赖经常断裂 | | 让 Android 手机充当服务器,最烦人的是系统本身的进程查杀机制,表现为手机一息屏,后台几分钟就被冻结,最终 SSH 掉线、跑一半的脚本直接被掐断。 想要让 Termux 全天候稳定在线,至少需要做好三层配置: 如果你在完成上述操作后依然遇到后台留存问题,还可以利用 Android 系统对媒体音频应用的天然后台豁免,让 Termux 在后台循环播放一段 1 分钟的静音 WAV 文件,换取系统的音频焦点。需要注意的是,如果无脑循环播放,当你戴着蓝牙耳机听歌或看视频时,这段静音音频可能会抢占耳机的 A2DP 蓝牙通道,导致耳机突然没声或出现跳音频设备的 bug。 不妨脚本里需要加入蓝牙状态判断:检测到当前连着蓝牙耳机,就主动暂停播放避让通道;耳机断开后再恢复静音保活。具体操作如下: 先用 ffmpeg 生成 1 分钟的静音音频: `ffmpeg -f lavfi -i anullsrc=r=44100:cl=mono -t 60 -q:a 9 -acodec pcm_s16le ~/.termux/quiet_1min.wav` 编写保活脚本 `~/.termux/scripts/keepalive.sh`: